Ir para conteúdo
  • Cadastre-se

Próton Sistemas

Membros Pro
  • Total de ítens

    55
  • Registro em

  • Última visita

Tudo que Próton Sistemas postou

  1. Windows 7 SP1 e a DLL openSSL na versão 1.0 superior. Vou fazer o teste com CAPICOM, pois mesmo depois do Update do Windows nada resolveu. Mais uma coisa: a aplicação tem dois processos. Um na thread principal que faz as emissões das NFCe e cancelamentos e tem uma thread que faz inutilizações, cancelamentos por substituição.. Ou seja, pode haver concomitância entre esses processos. Vi que o usuário que iniciou essa thread chama o componente numa thread. Será que isso pode ter relação com o problema? Att. Rafael
  2. Estou com esse mesmo problema, porém a situação só ocorre em um cliente em específico. Lá ocorre em diferentes versões do Windows também e está usando openSSL, mas já fiz o teste com WinCrypt e o mesmo problema continua. Só não testei ainda usar CAPICOM, mas me sinto desestimulado em fazer esse teste, já que essa opção foi descontinuada. Houve algum avanço neste tópico? Rafael
  3. Obrigado pelo retorno Daniel! De fato, não há dificuldade nenhuma em fazer algo como você citou quando se trata de código. Porém, teríamos que reconfigurar todas as impressoras nos clientes tirando a opção de abrir gaveta depois da impressão que está no Driver. Solicitar ao suporte isso, vai me gerar muita dor de cabeça. Saudações, Rafael
  4. Ok, Victor! Realmente, tem essa possibilidade de desativar a configuração do SPOOLER, porém isso vai me gerar problema nos clientes. A quantidade de PDV que teria que configurar um a um é muito grande. Vou insistir um pouco em achar uma solução na qual: 1. Eu consiga imprimir QRCode e Logo lateral em qualquer impressora (MP-4200, i9, TM-20...); 2. Que eu consiga acionar a gaveta quando eu quero e não ao final de qualquer impressão sem precisar alterar configuração de Driver; 3. Se possível, que eu consiga obter o status da impressora para alertar ao usuário de seu funcionamento; Como eu disse, a opção por ESCPOS e imprimindo o DANFE como uma imagem (tag BMP) parecia muito boa, porém a qualidade da impressão da imagem comprometeu essa alternativa. Se eu usar as DLLs do fabricante (e.g. MP-2032) eu consigo uma boa qualidade de impressão de imagens. Porém, demora um pouco e fico preso em bibliotecas descontinuadas e obsoletas (DarumaFramework também descontinuou). Enfim, essa parte de impressão tem sido um problema bem chato por conta das limitações impostas ao produto. De qualquer forma, agradeço a atenção de todos nessa thread. Saudações, Rafael
  5. E porque em FORTES não abriria a gaveta, mas no FASTREPORT abre? .Rafael
  6. Essa parte do Driver Spooler ter o comando para abrir a gaveta depois da impressão eu já verifiquei e PROCEDE. Só tinha ficado curioso com o motivo de quando eu informo no componente ESCPOS que a porta é "RAW:Bematech MP-4200" qualquer coisa que eu imprimo NÃO abre a gaveta, mesmo com o DRIVER informando abrir depois da impressão. Imaginei que teria um jeito (sem precisar alterar configuração de Driver) de disparar a impressão do Fast Report sem abrir a gaveta e sem mudar a configuração do Driver. E porque não configurar o Driver?? Porque o default é abrir a gaveta e os clientes esqueceriam de fazer essa configuração e seria mais estresse. Infelizmente, preciso de uma solução com a menor possibilidade de configuração de INFRA possível. Se eu mandar a impressão da imagem RAW;Bematech MP-4200 não abre a gaveta, mas a impressão está apresentando linhas em branco e deixando-a ilegível. Se eu informar a porta COM, essas linhas não aparecem. Mas de qualquer forma, a qualidade continua ruim da impressão da imagem. Obrigado pelas respostas! .Rafael
  7. Não uso o ESCPOS pq na Bematech não consigo imprimir o QRCode lateral. A impressão usando FastReport permite fazer algumas "brincadeiras". Anteriormente, estava exportando o DANFE para uma imagem e usando ESCPOS para imprimir a imagem, porém as impressoras não suportam imagens de resolução alta (normalmente até 198 dpi pra Bematech e 200 pra Epson). Tinha que diminuir a qualidade da imagem para realizar a impressão e isso desagradou os clientes, principalmente quem já está com alguma impressora com cabeçote "cansado". Na real, essa parte de impressão tem se tornado um problema. Nenhuma das opções agrada a todos e estou tentando fazer uma coxa de retalhos para ver se consigo contornar cada situação. .Rafael
  8. Não creio que seja esse o problema, pois faço outras impressões no SPOOLER usando o Componente ACBrPosPrinter1 e porta RAW:BEMATECH MP-4200 e nestes casos a gaveta não é acionada. Por isso, desconfio que não seja algo somente no Driver Spooler como citado acima. .Rafael
  9. O método procedure TACBrNFeFRClass.ImprimirDANFE(ANFE: TNFe); sempre está abrindo a GAVETA quando a impressora é a MP-4200, embora isso não ocorra com a outra impressões. Também percebi que a impresso EPSON TM-20 não abre a gaveta. Como faço para que a impressão do DANFCe NÃO abra a gaveta com a Bematech?
  10. Esqueci de informar que são estações predominantemente com Windows 7 e 10.
  11. Prezades, Estou em busca da melhor configuração para o componente de emissão de NFCe de modo a evitar a quantidade notas em contingência emitidas nos clientes. Fiz uma parametrização padrão como mostrada abaixo: ACBrNFe1.Configuracoes.Certificados.URLPFX := ''; ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := ACBR_RES + ACBR_CERT_NAME; ACBrNFe1.Configuracoes.Certificados.Senha := '******'; ACBrNFe1.Configuracoes.Certificados.NumeroSerie := ''; ACBrNFe1.SSL.DescarregarCertificado; // with ACBrNFe1.Configuracoes.Geral do begin // SSLLib := TSSLLib.libOpenSSL; SSLCryptLib := TSSLCryptLib.cryOpenSSL; SSLHttpLib := TSSLHttpLib.httpOpenSSL; SSLXmlSignLib := TSSLXmlSignLib.xsLibXml2; // AtualizarXMLCancelado := True; Salvar := True; ExibirErroSchema := True; RetirarAcentos := True; FormatoAlerta := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.'; FormaEmissao := TpcnTipoEmissao.teNormal; ModeloDF := TpcnModeloDF.moNFCe; VersaoDF := TpcnVersaoDF.ve400; // IdCSC := '*****'; CSC := '*****'; VersaoQRCode := '*****'; end; with ACBrNFe1.Configuracoes.WebServices do begin UF := 'XX'; Ambiente := TpcnTipoAmbiente.taProducao; Visualizar := False; Salvar := True; AjustaAguardaConsultaRet := True; AguardarConsultaRet := 0; Tentativas := 5; IntervaloTentativas := 500; TimeOut := 15000; end; ACBrNFe1.SSL.SSLType := TSSLType.LT_all; A aplicação recebe diferentes erros nas emissões ao longo do dia e em seguida volta a operar normalmente. Abaixo seguem alguns dos erros mais frequentes: Result := (ACBrNFe1.WebServices.Enviar.cStat = SEM_RETORNO_SEFAZ) and // erros de conexão enviar em modo off-line ((pos('12007', motivoErro) > 0) or // erro de conexão (pos('12002', motivoErro) > 0) or // timeout (pos('12029', motivoErro) > 0) or // limite de tempo de conexão (pos('12157', motivoErro) > 0) or // erro no suporte a canais seguros (pos('10091', motivoErro) > 0) or // 500 - network subsystem is unusable (pos('11001', motivoErro) > 0) or // 500 - host not found (pos('10054', motivoErro) > 0) or // Connection reset by peer (pos('TIMED OUT', motivoErro.ToUpper) > 0) or // timeout (pos('ERRO NAO CATALOGADO', motivoErro.ToUpper) > 0) or // erros de tratamento do webservice (pos('SERVICO PARALISADO', motivoErro.ToUpper) > 0)) // Servico Paralisado Momentaneamente Hoje me deparei com mais esse que acabou por não emitir a nota, pois ainda não tratei para entrar em contingência (lista acima): Erro Interno: 11004 Erro HTTP: 500 URL: https://nfce.svrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao4.asmx Valid name, no data record of requested type Gostaria de saber se estou utilizando a configuração ideal, se tem alguma melhor. Por que esses problemas estão acontecendo em todos os clientes que estão colocando essa nova aplicação com ACBr. Ou seja, não é algo isolado. Mesmo no ambiente de testes e desenvolvimento também recebo diversos erros de emissão que fazem a aplicação entrar em contingência. Saudações, Rafael Glauber
  12. No recibo da rejeição tem a data/hora do recibo e o protocolo da inutilização. Qual o melhor caminho para "remontar" esse XML da inutilização de forma que a assinatura do XML não seja violada? <dhRecbto>2021-08-12T14:38:52-03:00</dhRecbto> <nProt>329210000051910</nProt> Obrigado, Rafael.
  13. Como faria isso? Tem consulta para inutilização? Só conheço para notas. Além disso, há algo no ACBr que pode facilitar essa "remontagem" do XML com o recibo de autorização da inutilização? Obrigado, Rafael.
  14. Prezades, Como obtenho o XML de inutilização (com o recibo de autorização da SEFAZ) depois de um erro de TIMEOUT? Quando tenho enviar novamente a mesma inutilização para a SEFAZ recebo a rejeição: Rejeicao: Ja existe pedido de Inutilizacao com a mesma faixa de inutilizacao Isso ocorre pq no primeiro envio recebi TIMEOUT e por isso, tento enviar novamente. No componente, quando envio pela segunda vez o XML fica com o seguinte recibo: <retInutNFe versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <infInut> <tpAmb>2</tpAmb> <verAplic>SVRSnfce201905151442</verAplic> <cStat>563</cStat> <xMotivo>Rejeicao: Ja existe pedido de Inutilizacao com a mesma faixa de inutilizacao</xMotivo> <cUF>29</cUF> <ano>21</ano> <CNPJ>04266874000146</CNPJ> <mod>65</mod> <serie>151</serie> <nNFIni>3486</nNFIni> <nNFFin>3486</nNFFin> <dhRecbto>2021-08-12T14:38:52-03:00</dhRecbto> <nProt>329210000051910</nProt> </infInut> </retInutNFe> Preciso recuperar o XML com a autorização. Isso é possível? Saudações, Rafael
  15. Alguma informação sobre esse tópico? Obrigado! Rafael
  16. Olá, Não se trata bem de uma contribuição, até pq o código é anterior ao refactoring que vocês fizeram nessas classes. Quero saber na verdade se essas balanças já são contempladas por algum modelo já implementado nestes últimos anos. Obrigado, Rafael Glauber
  17. Prezades, Qual é a opção atual do projeto para usar os equipamentos da toledo da série 2098? Em anexo tenho duas UNITs de um fork antigo do projeto. Ao atualizar novamente o repositório do projeto verifiquei que não tem esses modelos em específico. Saudações, Rafael ACBrBALToledo2098.pas ACBrBALToledo2098_59.pas
  18. Obrigado pelo apoio, Daniel! Estou mandando em blocos de 100k para deixar a impressão mais rápida e funcionou perfeitamente. No caso, não estou imprimindo a LOGO, mas o DANFCe completo por essa opção. Não quero usar spooler, porém em impressoras como a MP4200 não consigo imprimir logo lateral com ESCPOS. Estou gerando o danfe pelo FastReport, exportando para BMP e realizando a impressão dessa forma. Com isso consigo fazer as demais impressões da aplicação, acionamento de guilhotina, status do dispositivo usando a classe TACBrPosPrinter. Saudações, Rafael
  19. Prezados, Ao realizar a impressão de imagens com tamanho maior o método de impressão abaixo gera o erro mencionado. ACBrPosPrinter1.Ativar; ACBrPosPrinter1.Device.Baud := 115200; ACBrPosPrinter1.ImprimirImagemArquivo('danfe.bmp'); ACBrPosPrinter1.Desativar; Project yyyyy.exe raised exception class ESynaSerError with message 'Communication error 9997: Timeout during operation'. Ajustei linhas do buffer (o que me parece desnecessário) e configurei a porta (antes estava com o valor default), porém sem sucesso. Se o arquivo a ser impresso for menor, ou seja, com poucos itens, a impressão ocorre normalmente. No caso estou gerando um BMP com um DANFCe para impressão via PosPrinter. Agradeço a quem puder ajudar. .Rafael Tem um erro no código no qual ativei o componente antes de configurar a velocidade, mas mesmo corrigindo o problema persiste. Rafael
  20. OK. Entendo que utilizar ESCPOS teria algumas vantagens, principalmente em evitar usar o spooler de impressão. Vou tentar alguma alternativa dentro do ESCPOS e se não conseguir avançar vou pensar no Fortes como alternativa. Obrigado pelo retorno. Rafael
  21. Prezades, Conforme tópico acima não há suporte para Bematech no layout que foi criado, porém o mesmo é de 2018. Houve alguma tratativa sobre isso nesses anos? Se não, qual a melhor maneira de criar um DANFE neste layout (reduzido) para Bematech(MP4200) e Daruma (DR800) utilizando ESCPOS? Obrigado, Rafael
  22. Caro Juliomar, Implementei conforme seu exemplo e estou realizando mais testes. Obrigado mais uma vez! Saudações, Rafael
  23. Acredito que não fui claro, mas a questão é que foi um erro "forçado" de schema, logo, nem passou pelos eventos de transmit e transmitError. De qualquer forma, agradeço a atenção. Acredito que já sei como diferenciar esses erros "antes" e "depois" da tentativa de envio. Obrigado, Rafael
  24. Exatamente. Sei que não deve entrar em contingência, pois é um erro de validação do schema. Minha questão é justamente essa: Quais seriam as checagens a serem feitas para entrar em contingência? Minha dúvida é quais outros tipos de erros podem acabar sendo encobertos e o sistema entrar em contingência. De qualquer forma vou tentar algo como: se não passar pelo evento de erro de transmissão (e cStat = 0), então o tipo de erro não permite entrar em contingência offline. Saudações, Rafael
  25. Olá, Cheguei a assistir todo o vídeo, fiz a configuração do evento, mas não passa por ele quando o erro acima é disparado. Olhando rapidamente no código, não vi tratamento para o evento FOnTransmitError neste momento. O erro é disparado no método abaixo: procedure NotaFiscal.Validar; var Erro, AXML: String; NotaEhValida, ok: Boolean; ALayout: TLayOut; VerServ: Real; Modelo: TpcnModeloDF; cUF: Integer; begin AXML := FXMLAssinado; if AXML = '' then AXML := XMLOriginal; with TACBrNFe(TNotasFiscais(Collection).ACBrNFe) do begin VerServ := FNFe.infNFe.Versao; Modelo := StrToModeloDF(ok, IntToStr(FNFe.Ide.modelo)); cUF := FNFe.Ide.cUF; if EhAutorizacao( DblToVersaoDF(ok, VerServ), Modelo, cUF) then ALayout := LayNfeAutorizacao else ALayout := LayNfeRecepcao; // Extraindo apenas os dados da NFe (sem nfeProc) AXML := ObterDFeXML(AXML, 'NFe', ACBRNFE_NAMESPACE); if EstaVazio(AXML) then begin Erro := ACBrStr('NFe não encontrada no XML'); NotaEhValida := False; end else NotaEhValida := SSL.Validar(AXML, GerarNomeArqSchema(ALayout, VerServ), Erro); if not NotaEhValida then begin FErroValidacao := ACBrStr('Falha na validação dos dados da nota: ') + IntToStr(NFe.Ide.nNF) + sLineBreak + FAlertas; FErroValidacaoCompleto := FErroValidacao + sLineBreak + Erro; raise EACBrNFeException.CreateDef( IfThen(Configuracoes.Geral.ExibirErroSchema, ErroValidacaoCompleto, ErroValidacao)); end; end; end; Ou seja, ainda não foi realizada a transmissão da nota. Eu deveria tratar a variável FErroValidacao? Saudações, Rafael Glauber
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.