Ir para conteúdo
  • Cadastre-se

dev botao

Erro 502: Chave De Acesso Não Muda


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 3731 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

 
Seguinte, enviei uma NFe mas a receita não aceitou a numeração , Logo , eu carreguei o XML na aplicação aumentei o Ide.nNF , validei , salvei o xml novamente , e enviei porém ocorre o erro.
 
Código do Erro: 502
Mensagem: Rejeicao: Erro na Chave de Acesso - Campo ID nao corresponde a concatenacao dos campos correspondentes
 
Eu percebi que o Código da NFe muda , mas na chave de acesso Não...
 
Antes eu fazia da mesma forma e não tinha problemas, preciso executar algum metodo para atualizar a chave de acesso? ou simplismente gerar outro XML?
 
obs:Sei que é uma duvida bem abordada pelo fórum , olhei em muitos tópicos do gênero mas nenhum me retirou esta duvida.
Editado por WilliamMattos
Link para o comentário
Compartilhar em outros sites

Opa , fiz como você falou , mas ainda não deu certo..

 

1 - Carreguei o XML

2 - Mudei o cNF e nNF(Coloquei ambos receberem o mesmo codigo para teste)

3 - Alterei os Dados que tinham que ser alterados na nota.

4 - chamei o comando ACBrNFe1.NotasFiscais.GerarNFe;

5 - Depois chamei o procedimento para salvar o XML ACBr.NotasFiscais.Items[0].SaveToFile(XMLPath);

 

Segue o XML em Anexo.

 

O nNF mudou , mas chave de acesso e cNF(que também foi mudado) continuam os mesmos.

Editado por WilliamMattos
Link para o comentário
Compartilhar em outros sites

Não sei se isso ajuda, estive 'debugando' o código do ACBr

 

PCNNFeW.pas

 

Linha : 233

if (Trim(nfe.infNFe.ID) = '') or (not ValidarChave(nfe.infNFe.ID)) then
     nfe.infNFe.ID := chave
  else
   begin
     NFe.infNFe.ID := StringReplace( UpperCase(NFe.infNFe.ID), 'NFE', '', [rfReplaceAll] ) ;
     NFe.infNFe.ID := 'NFe' + NFe.infNFe.ID;
   end;

A Condição exige que ou nfe.infNFe.ID esteja vazio  ou a Função ValidarChave(...) retorne falso

 

percebi que esta variavel ( chave ) esta com o valor correto da chave!
 
Já a nfe.infNFe.ID esta com a chave antiga!
 
A Função ValidarChave(nfe.infNFe.ID) esta validando apenas o Digito,Codigo UF,AAMM e CNPJ ( ou seja , vai retornar true , pois estes dados permanecem do mesmo jeito )
 
logo , se a chave e diferente de vazio e a função retorna true, o código executado será o ELSE , que vai atribuir o valor da chave antiga.
 
Desculpem pelo Texto confuso , não sei se consegui passar oque eu qria dizer...
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia William,

 

Acredito eu que a intensão de mudar o valor nNF foi motivado por uma falha no sistema que acabou gerando duas notas com o mesmo numero correto?

 

Se sim, a intensão de carregar o XML com o numero errado e gera-lo novamente com o numero correto, visando agilizar o processo, fica a dica.

 

Ao alterar o valor de nNF e ou cNF devemos atribuir vazio ao campo ID, pois ao carregar o XML este campo contem a chave da NF-e e caso seja executado o GerarNFe, a chave não se altera.

 

Por outro lado se for executado: nfe.infNFe.ID := ''; o componente gera uma nova chave e a atribui ao campo ID. 

 

Posso estar errado, mas o André, Daniel, Isaque, ... podem me corrigir, o correto não seria carregar o XML e altear os campos (pricipalmente estes e outros que fazem parte da chave) e executar o GerarNFe e sim, alimentar o componente do ZERO com o dados agora corretos e mandar gerar.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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