Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 08-02-2019 em todas as áreas
-
Bom dia Confirme dito pelo Juliomar, o contador obrigatoriamente deve saber lhe orientar, porém já adianto que conforme as regras da EFD o registro 0200 sempre deverá estar presente quando outros registros fizerem referencia ao mesmo, assim como o 0150 e outros do bloco 0. Att.5 pontos
-
Boa tarde a todos, Para quem esta iniciando na emissão da NFC-e, lembre-se: É necessário um certificado digital para poder assinar o XML antes do seu envio. No XML da NFC-e contem uma tag chamada <qrCode>. Para ser gerado o conteúdo da tag <qrCode> entre outras informações é necessário o idCSC = identificador do Código de Segurança do Contribuinte (numérico) e o CSC = Código de Segurança do Contribuinte (alfanumérico). Para obter o idCSC e CSC, algumas UF disponibilizaram um webservice outras é via site. Outro detalhe importante, devemos solicitar o idCSC e CSC para o ambiente de homologação e depois outro para o ambiente de produção.3 pontos
-
Muito obrigado pelas respostas, vou estudar mais o assunto para solucionar o problema. Descobri que existia alguns Timers na aplicação em uma função antiga, que criava querys e não destruía elas depois de utilizar, obviamente depois de dias rodando a aplicação iria criar muitos componentes. Estou revendo todo do projeto mas muito provavelmente o problema seja esse. Acredito que até segunda consiga bater o martelo e retorno aqui como solucionei.3 pontos
-
Bom dia. Veja estes tópicos relacionados a sua dúvida Att.3 pontos
-
Ahh sim. Mas você deve saber que executar um número de threads maiores que o número de núcleos do processador (virtuais ou não) ao mesmo tempo não causa nenhuma melhora do desempenho, pelo contrário. Isso pode causar lentidão e até mesmo escassez de recursos, o que pode gerar um erro "Out of memory". Digo isso principalmente porque você fez essa pergunta: Não existe um limite inerente no Windows. Mas você deve levar em conta a quantidade de memória e outros recursos (como "address space") que uma thread consome. Por isso você notou o seguinte: A pergunta certa a ser feita nesse caso não é "quantas threads você pode criar?" e sim, "Por que você quer criar tantas threads a ponto de isso ser um problema?". Se você tem realmente essa necessidade, talvez seja melhor você criar um sistema de thread pool /thread queue/thread worker. Assim você limita o número de threads a serem executadas ao mesmo tempo, mas permite criar um número praticamente ilimitado de threads. EDIT: Quero dizer, limita o número de threads criadas e executadas, mas permite um número praticamente ilimitado de tarefas a serem executadas. Se quiser ler mais eu recomendo esse artigo que fala especificamente sobre essa pergunta: O Windows tem um limite de 2000 threads por processo? (em Inglês) Agora vou tentar responder as outras perguntas. Não é possível responder essa pergunta de modo correto sem ver o código. Mas entenda que "FreeAndNil(Objeto)" simplesmente não é melhor do que "Objeto.Free". Se você usa FreeAndNil no seu código sem entender o motivo pode ser que isso esteja escondendo alguns problemas futuros. Tivemos um tópico sobre o assunto aqui no fórum com boas explicações. Sugiro a leitura dele: Há muitos artigos sobre esse assunto também na internet. Recomendo estudar os seguintes: http://tech.turbu-rpg.com/106/delphi-memory-management-made-simple https://stackoverflow.com/q/3159376/460775 Essa pergunta tem basicamente a mesma resposta da anterior: "Por que você quer criar tantos componentes simultâneos a ponto de isso ser um problema?". Pode até ser que isso não seja o seu real problema. Não tem. Quem disse isso provavelmente repetiu o que já ouviu de outros ou não entende o real processo. Contudo o que precisa acontecer é você criar e destruir completamente os componentes. Se isso não acontecer, haverá o que o Daniel mencionou acima: "memory leaks". No Delphi, uma boa ferramenta gratuita pra detectar "vazamentos de memória" ou Memory Leaks é o fastMM. Ele já vem embutido desde o Delphi 2007. Mas o seu verdadeiro poder está no modo FullDebugMode que só é conseguido com a versão completa disponível do GitHub. Experimente verificar seu projeto usando o FastMM. Talvez queira estudar esse artigo e os que ele menciona: https://wiert.me/2009/07/29/delphi-fastmm-using-fastmm4-for-debugging-your-memory-allocations-part-1-introduction/#comment-34073 pontos
-
Atualização da homologação - Rev. 1: O ACBr é um projeto vivo que recebe atualizações diárias. Essas atualizações, normalmente, envolvem correções e novas funcionalidades. Para acompanhar esta realidade, adição de novos testes e revisão dos existentes são frequentes em novas homologações. Fica evidente também, que homologações antigas necessitam de revisões. Por conta disso, adicionamos nesta postagem, informações adicionais e novos testes comumente encontrado em homologações recentes. Quando houver novas funcionalidades nos componentes ocasionando a necessidade de novos testes, serão feitas novas postagem, no mesmo tópico, informando novos testes realizados com o acréscimo da revisão. Ex.: Rev. 2, Rev. 3 … Rev X. Ambiente: Computador Desktop Sistema Operacional Windows 10 64Bit atualizado (31/01/2019) Processador Intel Core 2 Duo E5400 2.20GHz Memória 2 GB USB 2.0 Dip-Switches: Apenas para complementar, achamos válido descrever a funcionalidade de cada chave nesta postagem, baseando no manual do fabricante: Dip-Switch 1 (SW1) Chave Função Ligada(on) Desligada Padrão de Fábrica Porta serial física 1 Handshaking XON/XOFF DTR/DSR DTR/DSR Baudrate Chave 5 Chave 6 Chave 7 2 Comprimento 7 Bits 8 Bits 8 Bits 115200 desligada desligada desligada 3 Verificação de paridade Sim Não Não 57600 desligada desligada ligada 4 Seleção de paridade Par Ímpar Ímpar 38400 (padrão) desligada ligada desligada 8 Modo USB VCOM USB USB 19200 desligada ligada ligada 14400 ligada desligada desligada 9600 ligada desligada ligada 4800 ligada ligada desligada 2400 ligada ligada ligada Dip-Switch 2 (SW2) Chave Função Ligada(on) Desligada Padrão de Fábrica Densidade Chave 5 Chave 6 1 Seleção de modo STAR EPSON EPSON 1 (claro) ligada ligada 2 Kitchen bell (opcional) Habilitado Desabilitado Desabilitado 2 (padrão) desligada desligada 3 Cortador automático Desabilitado Habilitado Habilitado 3 ligada desligada 4 Autoteste Hex dump Modo autoteste Modo autoteste 4 (escuro) desligada ligada 7 Modo download Cartão de memória Interface Interface 8 Autoajuste do cortador Habilitado Desabilitado Desabilitado Testes usando os componentes e Demos do ACBr Utilizamos a versão 3.1.2 do PosPrinterTeste.exe, demo do ACBrPosPrinter, parte do projeto ACBr, para efetuar testes na impressora. A ultima versão do PosPrinterTestes.exe está disponível neste link: Durante os testes deixamos as configurações desta forma: Modelo: ppEscPosEpson; Porta: COM9; Colunas: 42; Espaços: 40; Linhas Pular: 5; Pag. codigo: pc860; KC1: 1; KC2: 0; FatorX: 1; FatorY: 1; Demais configurações não alteramos; Resultados: Page Mode: Funcionou, com pequenas limitações, de forma satisfatória. Contudo foi preciso adaptá-la ao tamanho de colunas da impressora, ou seja, 42 colunas: Observações: 1- O risco logo abaixo o descrito MODO PAGINA DESLIGADO é uma “sujeira” que a impressora imprimiu. Não conseguimos tirá-lo. 2- O texto EXPANDIDO, impresso de cabeça para baixo, ficou cortado por falta de espaço; Suporte a impressão de imagens e gravação de logotipos: Realizamos os testes de impressão de imagens e gravação de logotipo na impressora, através de comandos Esc/Pos. Maiores detalhes destas funcionalidades podem ser conferidos neste link: Abaixo, o resultado das funcionalidades testadas: ok Impressão de imagem; ok Gravar logotipo na memória da impressora; ok Apagar logotipo na memória da impressora; ok Imprimir logotipo gravado na memória da impressora; Teste de acentuação: Atualizamos o teste de acentuação para demonstrar o suporte da impressora com fontes do Tipo B. Esta funcionalidade está presente na ultima versão do PosPrinterTeste.exe: Resultados: pc473: Alguns acentos circunflexos, crases e todos os til foram ignorados; pc850: Todos os acentos foram impressos corretamente; pc852: Alguns acentos circunflexos, todas as crases e os til foram ignorados; pc860: Todos os acentos foram impressos corretamente; pc1252: Todos os acentos foram impressos corretamente; Impressão de extratos do SAT com QRCode e Logotipo lateral: A impressora suportou os comandos enviados. Contudo, não imprimiu corretamente o cupom. Acreditamos que o problema esteja no limite de 42 colunas, utilizada pela impressora. Os testes foram realizados com o uso do SATTeste na versão 2.2. Ele é um demo do ACBrSAT, parte do projeto ACBr. Ele está disponível neste link:3 pontos
-
3 pontos
-
Bom dia, Amarildo de Matos. Tente fazer da seguinte forma: [reboque01] com dois dígitos.3 pontos
-
Se eu ouvir um morto enquanto programo, juro que mudo de profissão na mesma hora.?3 pontos
-
Existe sim, e funciona. Já realizei em produção (2.5) fechamento com este tipo de parametrização e funcionou corretamente. Evento S-1200 TEvtRemun.dmDev.Items[0].infoPerApur.ideEstabLot.Items[0].remunPerApur.items[0].infoAgNocivo.grauExp Evento S-2299 TInfoDeslig.VerbasResc.dmDev.Items[0].infoPerApur.ideEstabLot.Items[0].infoAgNocivo.grauExp2 pontos
-
2 pontos
-
Boa tarde As alterações sugeridas já estão presentes nos fontes... Aparentemente seu arquivo não tem a tag indSimples, por isso por default vai informar... Informe a tag da seguinte forma: [remunPerApur010011] matricula=00070020456 indSimples=02 pontos
-
Fiz um teste em produção mesmo e verifiquei que deu certo pode deixar, obrigado. Pode fechar o post.2 pontos
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.2 pontos
-
Era isso mesmo, é que tinha colocado Wtih para Componente e os campos eram identidicos2 pontos
-
O gerente mudou o layout pra 400 sem o cliente solicitar. Putz! E a remessa é 240. Já pedi pra alterar la. Resolvido..2 pontos
-
Juliana... alterei no cliente, ele parou de reclamar... creio q resolveu.. muito grato !!!2 pontos
-
Felipe, Creio que seja isso mesmo, vou enviar para o banco e retorno com o resultado Muito Obrigado2 pontos
-
Precisa se credenciar para obter o CSC mesmo em homologação, ou usar o CSC+certificado de um cliente que já seja credenciado.2 pontos
-
Então, falei com o suporte da CEF, segundo eles, o ultimo layout publico é de julho/2018, nesse layout não tem como especificar uma data para começar os juros, somente para multa, segundo o mesmo atendente, tem um layout novo, de janeiro/2019, mas é somente de uso interno por enquanto, nesse layout novo teria esse campo. portanto as dicas acima não se aplicam a remessa cef, cnab400, pois o sistema deles não respeita o campo datamorajuros.2 pontos
-
Bom dia Balena, Favor atualizar os seus fontes primeiro, faça novos testes e se necessário for faça as devidas correções e anexe a unit aqui no fórum. Peço isso pelo simples fato dos seus fontes estarem desatualizados.2 pontos
-
2 pontos
-
Mas no help, esta [reboque001] cInt=1 Mas vou testar, e retorno.2 pontos
-
Bom dia.. Sim é obrigatorio pois é a informações de seus produtos. Estou lhe mandando um exemplo Gerado. sped_Exemplo.txt2 pontos
-
Bom dia, Pela mensagem de erro, indica que o campo cnpjPrestador esta vazio, portanto não foi informado nada.2 pontos
-
Bom dia, Diego Dualbox. Sugiro que ao chamar a função GerarRemessa(), você deverá passar como parâmetro o número da respectiva remessa. Segue o exemplo abaixo: "BOLETO.GerarRemessa BOLETO.GerarRemessa(cDirArqRemessa,nNumeroArquivo[,nNomeArquivo]) Parâmetros: cDirArqRemessa - Diretório onde deverá ser gravado o arquivo de Remessa. nNumeroArquivo - Numero do arquivo que deve ser gerado, utilizado pelo Bradesco, funciona como um contador de arquivos remessa já enviados. nNomeArquivo - nome do arquivo. Parâmetro opcional, caso não seja informado o ACBrMonitor irá calcular o nome do arquivo. Exemplos: BOLETO.GerarRemessa("c:\remessa\",1,000001.rem ) – Irá gerar o arquivo de remessa no diretório "C:\Remessa", com o nome formatado de acordo com o banco para o qual esta sendo feita a remessa .000001.rem ou BOLETO.GerarRemessa("c:\remessa\" ) – Irá gerar o arquivo de remessa no diretório "C:\Remessa", com o nome formatado de acordo com o banco para o qual esta sendo feita a remessa . No caso do Bradesco cb00002.rem, considerando que já exista o arquivo cb00001.rem em C:\Remessa." https://acbr.sourceforge.io/ACBrMonitor/BOLETOGerarRemessa.html2 pontos
-
Obrigado pela dica Amarildo; farei conforme sua sugestão; muito obrigado.2 pontos
-
Fiz alguns testes (Fedora 28) e as libs estão dispostas da seguinte forma: ls -sal /usr/lib64/libssl* /usr/lib64/libssl3.so /usr/lib64/libssl.so -> libssl.so.1.1.0i /usr/lib64/libssl.so.10 -> libssl.so.1.0.2o /usr/lib64/libssl.so.1.0.2o /usr/lib64/libssl.so.1.1 -> libssl.so.1.1.0i /usr/lib64/libssl.so.1.1.0i ls -sal /usr/lib64/libcrypto* /usr/lib64/libcrypto.so -> libcrypto.so.1.1.0i /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.2o /usr/lib64/libcrypto.so.1.0.2o /usr/lib64/libcrypto.so.1.1 -> libcrypto.so.1.1.0i /usr/lib64/libcrypto.so.1.1.0i A função LoadLibHack que é responsável por encontrar as libs, procura primeiro pela lib sem versão nenhuma, então bastou ajustar para que ele procure primeiro pelo '.10' para que fosse realizado o carregamento da lib correta OpenSSLExt DE: DLLVersions: array[1..16] of string = ('', '.1.0.6', '.1.0.5', '.1.0.4', '.1.0.3', '.1.0.2', '.1.0.1','.1.0.0','.0.9.8', '.0.9.7', '.0.9.6', '.0.9.5', '.0.9.4', '.0.9.3', '.0.9.2', '.0.9.1'); PARA: DLLVersions: array[1..17] of string = ('.10','', '.1.0.6', '.1.0.5', '.1.0.4', '.1.0.3', '.1.0.2', '.1.0.1','.1.0.0','.0.9.8', '.0.9.7', '.0.9.6', '.0.9.5', '.0.9.4', '.0.9.3', '.0.9.2', '.0.9.1'); Usando a lib da série 1.0 a assinatura ocorreu corretamente tanto usando xsLibXml2 como xsXmlSec e a conexão com o webservice também funcionou normalmente Fiz alguns testes em C com as duas versões da lib série 1.0.2 e 1.1.0 para o método EVP_DigestInit, que é onde esta ocorrendo o erro usando a versão 1.1 da lib ao tentar assinar usando xsLibXml2. Foi preciso fazer várias pequenas modificações no código em C para funcionar na versão nova. Atualmente estou usando a versão 1.1 da lib OpenSSL para emissão de NFe e esta rodando corretamente, as exceções ficam por conta da xsLibXml2 que pode ser substituída pela xsXmlSec e o bug do tópico em questão no método GetNotAfter, verificando no site https://www.openssl.org/source/ o suporte a versão da série 1.0.2 (LTS) terminará em 31/12/2019 e eles recomendam que todos migrem para a próxima versão LTS 1.1.1 que tem suporte até setembro de 20232 pontos
-
Sim... Todos os componentes devem ser migrados para o ACBrLib (mas isso deve demorar vários meses) O Framework tinha mais o foco em C#, o ACBrLib está sendo escrito para ser compatível com todas e qualquer linguagem que conseguir carregar uma DLL... o ACBrLib será multiplataforma (Linux)2 pontos
-
Boa noite Uma sugestão, dependendo do caso, se o problema for no provedor de internet tentar abrir/registrar um chamado junto a empresa, ou um BO se for o caso, registrando assim o início e fim do problema... Att Ricardo2 pontos
-
Boa tarde a todos, Alessandro, fiz um merge das suas alterações e algumas correções. Joffas, implementei o método Download. Novos métodos implementados no componente ACBreSocial function ConsultaIdentificadoresEventosEmpregador(const CnpjEstab: String; tpEvt: TTipoEvento; PerApur: TDateTime): boolean; function DownloadEventos(const CnpjEmpr, PorID, PorNrRecibo: String): boolean; O primeiro como podem ver é especifico para Eventos do Empregador, tem ainda do Trabalhador e Tabelas que precisam ser implementados. O de Download devemos informar o CNPJ e o ID ou CNPJ e o Numero do Recibo. Exemplo: ACBreSocial.DownloadEventos(xCNPJ, xID, ''); ou ACBreSocial.DownloadEventos(xCNPJ, '', xRecibo); É preciso melhorar, sendo assim preciso que façam testes. Essas alterações já estão disponíveis no repositório. Se faz necessário agora alterar o programa exemplo, ou seja criar novos botões exemplificando esses novos métodos. Desde já o meu muito obrigado a todos.2 pontos
-
Consegui fazer o cancelamento de uma nota. Em anexo estão os arquivos que precisei alterar para conseguir fazer o cancelamento. ACBrNFSeWebServices.pas Publica.ini2 pontos
-
Boa tarde Balena, Muito obrigado pela colaboração, ainda hoje estarei enviando para o repositório.1 ponto
-
O total do desconto o sinal negativo esta sendo duplicado na impressão do CFe. Seguem anexo: Imagem do problema, imagem do problema solucionado e unit's modificadas para solucionar o problema. Grato. ACBrSATExtratoESCPOS.pas ACBrSATExtratoFortesFr.pas1 ponto
-
1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
1 ponto
-
1 ponto
-
Bom dia Carlos, Esses provedores vão começar a criar mecanismos de segurança para provar a muitas prefeituras que os seus sistemas de recepção de notas é mil vezes melhor comparado a nova NFS-e Padrão Nacional. Isso esta cheirando desespero e muita maracutaia.1 ponto
-
Bom dia, Como dito antes: Se você carrega o XML assinado com o LoadFromFile e depois executa o método Consultar, se o MDF-e foi autorizado o componente atualiza o XML deixando-o completo, ou seja, assinado e com o protocolo de autorização. Para que isso ocorra, o XML tem que estar assinado, tem que estar autorizado na SEFAZ e o DigestValue que consta na assinatura do XML ser igual ao DigestValue que consta no retorno ao consultar. Você anexou o retorno, favor anexar o XML assinado bem como o seu retorno. Sugiro também que refaça a sua rotina: ACBrMDFe.Manifestos.Clear; GerarMDFe(codigo, serie, dsSIMDFEREG.DataSet.FieldByName('CHAVE_MDFE').AsString); ACBrMDFe.Manifestos.Assinar; ACBrMDFe.Manifestos.Validar; ACBrMDFe.Consultar; Devemos primeiro Assinar e depois Validar, pois o método Validar exige que o XML esteja assinado. Segundo o método Assinar se encarrega de salvar o XML em Disco. Terceiro não se faz necessário carregar o XML novamente pois o mesmo já esta na memória do componente, se for carregar novamente é preciso executar o Clear, caso contrario você terá na memória do componente dois MDF-e.1 ponto
-
Bom dia Juliano, Todos os provedores que seguem a versão 1 do layout da ABRASF só tem um único método de envio chamado: Enviar. No programa exemplo do componente é o botão a esquerda. Já os provedores que seguem a versão 2 do layout da ABRASF a principio tem 3 métodos: Enviar, Gerar e EnviarSincrono. Que no programa exemplo são os 3 primeiros botões. Veja bem a principio, pois conheço provedor que segue a versão 2, mas em seu webservice disponibilizou somente o método: Gerar.1 ponto
-
Bom dia.. que otimo que resolveu. na proxima vez, para facilitar nossas vidas, em vez de escrever mande em anexo o Xml, e o xml de retorno tambem. blz..1 ponto
-
Bom dia.. Para resolvermos esse problema, fizemos no Sistema Erpmatos, todo e qualquer xml, fica no banco de dados tambem.. faça isso e voce nao tera mais dor de cabeça. Verifique com o seu contador, pois como ele tem a parte fiscal, ele tera esses numero de notas. Valeu1 ponto
-
Humm.. boa pegada... Pode enviar os arquivos modificados ?1 ponto
-
Boa tarde, Favor atualizar os fontes, já inclui no programa exemplo do Reinf um novo botão.1 ponto
-
Pela descrição, parece ser Memory Leak... Pode até mesmo ser causado por alguma outra biblioteca ou componente que você usa em seus projetos... No Lazarus/FPC usamos o HeapTrace para detectar onde está ocorrendo o vazamento.. (qual rotina criou algum objeto que não foi liberado) No Delphi deve haver boas ferramentas para detectar isso... Veja esse post: https://stackoverflow.com/questions/416046/what-is-the-best-tool-to-detect-memory-leaks-in-delphi1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
Se está se referindo a imagem que o Daniel postou você pode instalar o pacote "anchordockingdsgn", se eu não me engano, ele já vem com lazarus, basta acessar, no lazarus, Pacotes -> Instalar/Desinstalar e procurar esse pacote na lista "Disponíveis para Instalação".1 ponto