Ir para conteúdo
  • Cadastre-se

NathanMgnet

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Tudo que NathanMgnet postou

  1. Boa tarde Grato pela resposta No servidor linux foram executados os comandos: sudo apt-get install libssl-dev libxml2-dev sudo apt-get install libxml2 No servidor existem arquivos da libxml2 (conforme anexo) O programa está executando em outra pasta onde existem apenas o programa em si e pasta Schemas
  2. No tópico abaixo é feita uma explicação por Daniel Simoes sobre como usar acbr no linux, porém com Lazarus https://www.projetoacbr.com.br/forum/topic/57844-acbr-linux-lazarus-console/#comment-379287 Existe alguma instrução semelhante para Delphi?
  3. O erro acontece em ACBrDFeXsLibXml2 no seguinte método: function TDFeSSLXmlSignLibXml2.TentaPegarMensagemErroDetalhada(const MsgErroAtual: string): String; var prtUltimoErroXml: xmlErrorPtr; begin Result := ''; prtUltimoErroXml := xmlGetLastError(); if (prtUltimoErroXml <> nil) then begin Result := MsgErroAtual + ' --> ' + IntToStr(prtUltimoErroXml^.code) + ' - ' + prtUltimoErroXml^.message; end else Result := MsgErroAtual; end; Quando eu removo "prtUltimoErroXml^.message" do retorno o programa funciona corretamente, retornando ao usuário o erro real presente no xml Mas se deixar "prtUltimoErroXml^.message" acontece o "Access Violation" Lembrando que isso acontece apenas no linux, pois no windows tudo funciona corretamente
  4. Schemas está na pasta correta Até pelo fato de que notas sem erro de XML são transmitidas perfeitamente O problema é apenas em notas com erro no XML Exemplo de erro que no linux aparece como access violation mas no windows não: Falha na validação dos dados da nota: 54 TAG:<det nItem="1"><imposto><ICMS><ICMSSN> ID:N12a/CSOSN(Código de Situação da Operação – Simples Nacional) - Nenhum valor informado.
  5. No tópico abaixo é feita uma explicação por Daniel Simoes sobre como usar acbr no linux, porém com Lazarus https://www.projetoacbr.com.br/forum/topic/57844-acbr-linux-lazarus-console/#comment-379287 Existe alguma instrução semelhante para Delphi?
  6. Isso é muito óbvio e já foi feito Na unit ACBrNFeNotasFiscais, método NotaFiscal.Validar, na seguinte linha de código: NotaEhValida := SSL.Validar(AXML, GerarNomeArqSchema(ALayout, VerServ), Erro); O depurador não entra neste método SSL.Validar Quando estou no windows a variável NotaEhValida receber o valor FALSE e o programa continua Quando estou no linux esse trecho dá bug de access violation
  7. Uma informação que talvez seja relevante A mensagem correta do erro é exibida no terminal, mas não consigo capturá-la com: try ... except on e: Exception do begin ... end; end;
  8. Eu adicionei essa diretiva no projeto e testei com o código: {$IFDEF NOGUI} writeln('NOGUI ATIVADO'); {$ENDIF} A mensagem "NOGUI ATIVADO" é exibida no terminal indicando que a diretiva está correta Mas o erro persiste Notas sem erro são autorizadas Notas com erro no XML retornam sempre ACCESS VIOLATION
  9. Agradeço a resposta Pelo oq entendi vc sugere o seguinte código: ACBrNFe.Configuracoes.Geral.SSLLib := libOpenSSL; ACBrNFe.SSL.SSLType := LT_TLSv1_2; Fiz essa alteração e o erro persiste Não tenho muita prática com ACBr, então não entendi o que vc quis dizer com NOGUI.
  10. Boa tarde Desenvolvemos uma aplicação para emissão de documentos fiscais em Delphi que atualmente está executando em um servidor UBUNTU Quando executo a aplicação em uma máquina windows tudo acontece corretamente, inclusive quando existe um erro em "ACBrNFe.NotasFiscais.Validar" consigo capturar a exceção e tratar para por exemplo exibir ao usuário O fato é que ao criar a mesma exceção executando em linux o retorno sempre é "access violation", assim não consigo exibir de maneira clara para o usuário a exceção que está acontecendo Uma nota sem erros é autorizada perfeitamente no linux, mas quando tem erros no xml a mensagem sempre é "access violation" O erro acontece em TDFeSSL.Validar Estou usando a seguinte configuração quando compilado para linux: ACBrNFe.Configuracoes.Geral.SSLCryptLib := cryOpenSSL; ACBrNFe.Configuracoes.Geral.SSLHttpLib := httpOpenSSL; ACBrNFe.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2; E como dito, no windows, a mesma situação resulta em uma mensagem de erro específica Existe alguma configuração que eu deva fazer para corrigir essa situação? Desde já agradeço
  11. Após ler diversos pontos do código do componente criei uma solução Como eu havia dito, TODAS as operações funcionam em qualquer timezone, mesmo no meu servidor hospedado fora do Brasil Isso porque o ACBr envia os dados com informação de timezone e a SEFAZ as reconhece O fato é que somente o cancelamento não aceitava timezone diferente (na SEFAZ MG) Para solucionar isso, no cancelamento mudei duas linhas de código: ACBrNFe.Configuracoes.WebServices.TimeZoneConf.ModoDeteccao := tzPCN with ACBrNFe.EventoNFe.Evento.New do begin (...) infEvento.dhEvento := DataHoraTimeZoneModoDeteccao(ACBrNFe); end; ModoDeteccao tzPCN: ajusta apenas o final do string que identifica o timezone dentro da tag dhEvento de acordo com o timezone da UF da operação (-03:00 no meu caso) A função DataHoraTimeZoneModoDeteccao retorna a data atual convertendo para o time zone indicado em ModoDeteccao Com isso a tag dhEvento é preenchida corretamente Fica aqui documentada uma solução mais prática para quem interessar
  12. Esta é a única solução? Não existe uma configuração no ACBr que ajuste a data/hora de acordo com um time zone específico? Reparei que a propriedade "ACBrNFe.Configuracoes.WebServices.TimeZoneConf.ModoDeteccao" altera o time zone mas não ajusta a hora conforme o time zone especificado, ou seja, a hora continua do time zone zero mas o string final fica como de MG "-03:00" O servidor está hospedado fora do Brasil
  13. Desculpe não entendi sua resposta O servidor está no timezone 0 O componente é alimentado com o código: infEvento.dhEvento := now; Existe algo que precise ser configurado? Por que outros eventos funcionam como a transmissão de um XML? Vi em um outro fórum pessoas discutindo que esse era um problema que acontecia somente na SEFAZ MG
  14. Boa tarde Gostaria de um auxílio para um erro no cancelamento de NFC-e Desenvolvemos uma API para emissão de NFC-e utilizando o ACBr e estamos fazendo testes com a SEFAZ MG Ao executá-la local, todas as operações funcionam perfeitamente (autorizar, inutilizar, cancelar) Ao executá-la no servidor que está hospedado em outro país o envio e inutilização funcionam, mas o cancelamento não aceita a data hora do evento <dhEvento>2024-01-26T12:46:59+00:00</dhEvento> Se eu alterar manualmente este valor para "2024-01-26T09:46:59-03:00" a operação é concluída com sucesso A alteração manual fiz em "ACBrDFeSSL.pas" no método "TDFeSSLHttpClass.Enviar" dando um Replace no valor apenas para teste Note que as outras operações, como envio de XML, funcionam perfeitamente quando a API está local ou no servidor Como posso resolver esta questão? Desde já agradeço
  15. Resolvi esta questão Os exemplos do ACBr não me ajudaram (exemplos em arquivos .pas). Consegui ao ver um arquivo .txt dentro da pasta de exemplo, esse sim me ajudou e consegui montar o que eu precisava
  16. Olá Gostaria de saber como posso listar as notas fiscais para fazer a manifestação do destinatário. Aqui no fórum vi sobre os métodos DistribuicaoDFe() e DistribuicaoDFePorUltNSU(), agora gostaria de saber como posso percorrer as notas fiscais e adicioná-las, por exemplo, em um GRID. Grato
×
×
  • 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.