Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3668 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde a todos...

 

Estou a um tempo com um problema quando vou consultar a NFe pelo chnfe..

 

Da um acess violation....cfe a imagem em anexo

 

Esse erro só acontece em um windows 2008 x64, e no estado do Paraná ( 41 )

 

Abaixo segue uma imagem uma CHNFe pra consulta...isso a acontece no ambiente de produção, em vermelho está o trecho do código que acontece o problema...

 

41131233530486000714550010000067801351305475

 

(ACBrNFe1.WebServices.Consulta.Executar;)

 

 

    {$IFDEF ACBrNFeOpenSSL}
       HTTP.Document.LoadFromStream(Stream);
       ConfiguraHTTP(HTTP,'SOAPAction: "http://www.portalfiscal.inf.br/nfe/wsdl/NfeConsulta2"');
       HTTP.HTTPMethod('POST', FURL);
 
       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(HTTP.Document, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       FRetWS := SeparaDados( FRetornoWS,'nfeConsultaNF2Result');
       StrStream.Free;
    {$ELSE}
       ReqResp.Execute(Acao.Text, Stream);
       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(Stream, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       FRetWS := SeparaDados( FRetornoWS,'nfeConsultaNF2Result');
       StrStream.Free;
    {$ENDIF}

 

 

 

post-5474-0-64685600-1389290439_thumb.pn

Postado

Estou com o mesmo problema, roda normal em Windows 8, 8.1, 7, XP, Server 2003 32 e 64 mas no Win 2008 Server x64 CRASH, estava rodando normalmente e parou de funcionar sozinho, sei que não foi depois de um update pq no dia que parou de funcionar não foi aplicado nenhuma instalação nova.

Postado

Só com a ajuda do Criador mesmo para resolver um bug desses. Consegui achar a solução, graças a D'us. Aqui está:

 

-Entrar no Internet Explorer;
-Opções da internet;
-Entrar na aba "Avançadas";
-Em configurações na seção "Segurança" desmarcar as opções "Usar TLS 1.0", "Usar TLS 1.1", "Usar TLS 1.2";
 
Até mais
 
Samuel Monteiro
BrainSoft
  • 1 mês depois ...
  • 2 semanas depois ...
Postado

Ae pessoa...era o que o matheushcleite tinha mencionado.....

Problema resolvido

 

 

-Entrar no Internet Explorer;
-Opções da internet;
-Entrar na aba "Avançadas";
-Em configurações na seção "Segurança" desmarcar as opções "Usar TLS 1.0", "Usar TLS 1.1", "Usar TLS 1.2";

Alan Vieceli
Analista de Sistemas
e-mail: [email protected]
Porto Alegre-RS

 

logo-certificao-90x90.png

  • 2 meses depois ...
Postado

Alan bom dia.

 

Neste caso estou usando o Win7, porem nas configurações eu não tenho esse TLS 1.2 tem que fazer alguma instalação ou atualização. 

 

Agradeço desde já,

 

Rogério

  • 5 meses depois ...
Postado

Boa Tarde colegas,

 

Estou fazendo um teste com a versão 3.10 do layout.

Mesmo trocando as opções do IE,

no meu acontece a mesma coisa que o colega, retorna em branco, para PR(41);

 

ACBrWebServices.pas - TNFeConsulta.Executar

    {$IFDEF ACBrNFeOpenSSL}
       HTTP.Document.LoadFromStream(Stream);
       ConfiguraHTTP(HTTP,'SOAPAction: "http://www.portalfiscal.inf.br/nfe/wsdl/' + Metodo + '"');
       HTTP.HTTPMethod('POST', FURL);

       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(HTTP.Document, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       FRetWS := SeparaDados(FRetornoWS, TAGResult);
       StrStream.Free;
    {$ELSE}
       ReqResp.Execute(Acao.Text, Stream);
       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(Stream, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       FRetWS := SeparaDados(FRetornoWS, TAGResult);
       StrStream.Free;
    {$ENDIF}

O problema esta aqui:

       FRetWS := SeparaDados(FRetornoWS, TAGResult);

A TAGResult esta indo como NfeConsultaNF2Result, e no arquivo de retorno do WS esta nfeConsultaNFResult

<cUF>41</cUF><versaoDados>3.10</versaoDados></nfeCabecMsg></env:Header><env:Body xmlns:env='http://www.w3.org/2003/05/soap-envelope'><nfeConsultaNFResult 

Fiz o seguinte teste :

Mudei de:

 FRetWS := SeparaDados(FRetornoWS, TAGResult);

para:

 FRetWS := SeparaDados(FRetornoWS, 'NfeConsultaNFResult');

Dai retornou certo para a consulta da NFe na versão 3.10 para o PR(41).

 

Abraços,

Rodrigo ®¿®

Curitiba-PR

  • 2 semanas depois ...
Postado

Olá pessoal,

 

Tive que alterar no fonte do ACBr para o PR pois o retorno do ws, vem como "NfeConsultaNFResult" e não "NfeConsultaNF2Result".

Foi a forma que achei para resolver a consulta da NFe aqui.

Testei em homologação e produção e deu certo.

 

Então alterei o fonte ACBrNFeWebServices.pas

Na function TNFeConsulta.Executar: Boolean;

       ReqResp.Execute(Acao.Text, Stream);
       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(Stream, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       if (FConfiguracoes.WebServices.UFCodigo = 41) and (FConfiguracoes.Geral.VersaoDF = ve310) then // 41 = PR
         FRetWS := SeparaDados(FRetornoWS, 'NfeConsultaNFResult')
       else
         FRetWS := SeparaDados(FRetornoWS, TAGResult);
       StrStream.Free;

Abraços,

 

Rodrigo

Rodrigo ®¿®

Curitiba-PR

Postado

Completando fiz somente para o Capicom, segue código completo:

    {$IFDEF ACBrNFeOpenSSL}
       HTTP.Document.LoadFromStream(Stream);
       ConfiguraHTTP(HTTP,'SOAPAction: "http://www.portalfiscal.inf.br/nfe/wsdl/' + Metodo + '"');
       HTTP.HTTPMethod('POST', FURL);

       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(HTTP.Document, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       FRetWS := SeparaDados(FRetornoWS, TAGResult);
       StrStream.Free;
    {$ELSE}
       ReqResp.Execute(Acao.Text, Stream);
       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(Stream, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       if (FConfiguracoes.WebServices.UFCodigo = 41) and (FConfiguracoes.Geral.VersaoDF = ve310) then // 41 = PR
         FRetWS := SeparaDados(FRetornoWS, 'NfeConsultaNFResult')
       else
         FRetWS := SeparaDados(FRetornoWS, TAGResult);
       StrStream.Free;
    {$ENDIF}

Rodrigo ®¿®

Curitiba-PR

Postado

O mesmo aconteceu com a inutilização no ws do PR, vejam o retorno do SEFAZ:

 

'<env:Envelope xmlns:env='http://www.w3.org/2003/05/soap-envelope'><env:Headerxmlns:env='http://www.w3.org/2003/05/soap-envelope'><nfeCabecMsg xmlns='http://www.portalfiscal.inf.br/nfe'><cUF> 41</cUF><versaoDados>3.10</versaoDados></nfeCabecMsg></env:Header><env:Body xmlns:env='http://www.w3.org/2003/05/soap-envelope'><nfeInutilizacaoNFResult xmlns='http://www.portalfiscal.inf.br/nfe/wsdl/NfeInutilizacao3'><retInutNFeversao='3.10' xmlns='http://www.portalfiscal.inf.br/nfe'><infInut><tpAmb>2</tpAmb><verAplic>PR-v3_2_3</verAplic><cStat>563</cStat>.

 

Retornando nfeInutilizacaoNFResult no XML e não nfeInutilizacaoNF2Result.

 

Fiz a modificação:

       if (FConfiguracoes.WebServices.UFCodigo = 41) and (FConfiguracoes.Geral.VersaoDF = ve310) then // 41 = PR
         FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNFResult');
       else
         FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNF2Result');
    {$IFDEF ACBrNFeOpenSSL}
       HTTP.Document.LoadFromStream(Stream);
       ConfiguraHTTP(HTTP,'SOAPAction: "http://www.portalfiscal.inf.br/nfe/wsdl/NfeInutilizacao2"');
       HTTP.HTTPMethod('POST', FURL);

       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(HTTP.Document, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNF2Result');
       StrStream.Free;
    {$ELSE}
       ReqResp.Execute(Acao.Text, Stream);
       StrStream := TStringStream.Create('');
       StrStream.CopyFrom(Stream, 0);
       FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
       if (FConfiguracoes.WebServices.UFCodigo = 41) and (FConfiguracoes.Geral.VersaoDF = ve310) then // 41 = PR
         FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNFResult')
       else
         FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNF2Result');
       StrStream.Free;
    {$ENDIF}

Mas atualizei o fonte e vi que já atualizaram isso:

    FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNF2Result');
    if FRetWS = '' then
      FRetWS := SeparaDados( FRetornoWS,'nfeInutilizacaoNFResult');

Boa valeu !!!

Rodrigo ®¿®

Curitiba-PR

  • Este tópico foi criado há 3668 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.