Ir para conteúdo
  • Cadastre-se

dev botao

Chave de Acesso diferente no XML 3.10


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

Recommended Posts

Bom dia, amigos

Está acontecendo este problema somente em algumas notas e somente nas empresas em que atualizei recentemente o programa com os componentes e schemas atualizados. 

Ainda estou rodando a NFe 3.0.

A NFe valida e está tudo certo, porém a chave de acesso que o componente me informa para registrar no meu sistema fica com um numero trocado:

Exemplo:

chave correta:

43180691389460000109550000000517831117748480

chave errada:

43180691389460000109550000000517831177484810

Reparem que o dígito "1" , penúltimo digito da chave errada, está deslocado.

Na Sefaz e dentro do XML fica a chave correta, mas no meu sistema e no nome do arquivo XML que eu salvo com a chave fica a chave errada. 

Sou eu que gero o código numerico do final da chave e passo para o componente para sempre ficar com a mesma chave caso o usuário envie a NF mais de uma vez.

Alguém mais com este problema?

Estou fazendo algo errado?

 

 

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, RicardoVoigt disse:

Série 000?

Att

Ricardo

Sim. A maioria das empresas que atendo usam a série 0.

25 minutos atrás, André Ferreira de Moraes disse:

Quais os passos para reproduzir o problema?

Vou tentar reproduzir o o problema e posto aqui, mas ele é aleatório. Eu só fico sabendo quando o cliente me reclama que a NFe não existe na base da Sefaz porque ele consulta pela chave que está no sistema.

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, RicardoVoigt disse:

Outro detalhe pra vc cuidar eh o tamanho diferente nos campos nNf (9) e no cNf(8).

Att

Ricardo

Acho que você matou a charada. Não me atentei a este detalhe. Estava enviando o cNf com 9 posições. Sempre funcionou, mas com as últimas atualizações do acbr começou a acontecer o problema.

Corrigi o meu programa, fiz um teste e rodou normalmente. Vou atualizar no cliente e informo aqui se está resolvido.

Obrigado pela ajuda.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Ola Boa tarde pessoal, aproveitando esse assunto, após algumas atualizações do ACBR, eu percebi que cada vez que tento enviar uma NFe (é que o cliente tenta enviar e da algum erro de ncm por exemplo, ai ele vai e acerta e tenta enviar novamente ) a chave esta mudando o numero, e vai ficando salvo esses XMLs, ex: 

35180609121387000142550010000005691649558840-NFe.xml
35180609121387000142550010000005691789025542-NFe.xml
35180609121387000142550010000005691860375180-NFe.xml
35180609121387000142550010000005691243439183-NFe.xml

o numero da nota é o mesmo (569), porém o final muda gravando outro xml, mas antes isso não acontecia, ele gerava o xml com o mesmo numero e gravava em cima do xml anterior.

Esta acontecendo com alguém isso, foi mudado mesmo?

Desde já agradeço a atenção de todos.

Luciano

NFe 4.0

Editado por Luciano César Gimenez
Link para o comentário
Compartilhar em outros sites

 
Mudança na function GerarChaveAcesso
 
Se passa cNF := -1 antes voltava uma chave sempre com o mesmo número, agora volta randômica
 
ANTIGO
 
  // Se o usuario informar 0; o código numerico sera gerado de maneira aleatória //
    while codigoNumerico = 0 do
    begin
      Randomize;
      codigoNumerico := Random(99999999);
    end;
    // se o usuario informar -1 o código numerico será gerado atravéz da função
    // GerarCódigoNumerico baseado no numero do documento fiscal.
    if codigoNumerico = -1 then
      codigoNumerico := GerarCodigoNumerico(Numero)
    else if codigoNumerico = -2 then
      codigoNumerico := 0;
 
NOVO REVISÂO 14691
 
  // Se o usuario informar um código inferior a -2 a chave não será gerada //
  if ACodigo < -2 then
    raise EACBrDFeException.Create('Código Numérico inválido, Chave não Gerada');
  // Se o usuario informar 0 ou -1; o código numerico sera gerado de maneira aleatória //
  if ACodigo = -1 then
    ACodigo := 0;
 
  while ACodigo = 0 do
  begin
    ACodigo := Random(99999999);
  end;
Link para o comentário
Compartilhar em outros sites

Em 15/06/2018 at 18:13, JSantos disse:

Como vc está preenchendo o campo "cNf"?

Ola Amigo bom dia, estou preenchendo com -1.

Pelo que eu vi aqui, para gerar da maneira antiga não tem como mais, só se eu mover o numero da nota no campo cNf?

Luciano

Editado por Luciano César Gimenez
Link para o comentário
Compartilhar em outros sites

Preencher o cNf com a função:

function GerarCodigoNumerico(numero: integer): integer;
var
  s: string;
  i, j, k: integer;
begin
  // Essa função gera um código numerico atravéz de calculos realizados sobre o parametro numero
  s := intToStr(numero);
  for i := 1 to 9 do
    s := s + intToStr(numero);
  for i := 1 to 9 do
  begin
    k := 0;
    for j := 1 to 9 do
      k := k + StrToInt(s[j]) * (j + 1);
    s := IntToStr((k mod 11)) + s;
  end;
  Result := StrToInt(copy(s, 1, 8));
end;

Link para o comentário
Compartilhar em outros sites

Bom dia, amigos.


Eu uso uma função que gera um número randomico e preencho o cNF com este número.

Semelhante à função do amigo logo acima.

 

Sobre o erro que gerou este tópico, após corrigir o meu programa os clientes não reclamaram mais da chave trocada, então considero como resolvido.

Link para o comentário
Compartilhar em outros sites

Blz José Marcos, obrigado ai pela ajuda, na verdade acabei usando a função que tem no próprio ACBrDFeUtil,.

O problema de ficar gerando um xml com chaves aletatória a cada tentativa é que os clientes todos mês pegam a pasta com os xmls enviados e envia para o contador, e o contador importa isso para o sistemas Contabéis,  então já imaginei o contador pegando os xmls com o mesmo numero de nota. por isso que prefiro gerar o mesma chave para cada numero de nota.

Obrigado a todos...

Luciano...

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2129 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.