Ir para conteúdo
  • Cadastre-se

dev botao

Rejeição Duplicidade De Nf-E


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

Recommended Posts

  • Membros Pro

Olá amigos !

Estou tendo constantemente erro na NF-e apresentando a REJEIÇÃO: DUPLICIDADE DE NF-E COM DIFERENÇA NA CHAVE DE ACESSO.

Pelo que tenho percebido isso ocorre quando a alguma falha de retorno do site da receita ou demora e o sistema não consegue pegar a chave de acesso.

 

Para solucionar posteriormente a manobra é grande, ou seja, tenho que verificar se existe na pasta onde salva a NF-e se existe algum XML não autorizado para aquela nota (as vezes se encontram 4..5 XML) e apago todos. Entrar no site da receita, baixar o XML e salvar dentro da pasta, renomea-lo pois não vem com a extensão nfe que o ACBRMonitor exige, etc

 

Resumindo, alguém tem alguma dica ? Isso ocorre com os amigos também ou é falha minha ? tem algum configuração no ACBRMonitor para contornar isso ? Existe alguma função para baixar do site da receita o XML automaticamente sem ter que tá orientando o cliente passo a passo ?

 

Grato
 

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
  • Membros Pro

Olá amigos !

Estou tendo constantemente erro na NF-e apresentando a REJEIÇÃO: DUPLICIDADE DE NF-E COM DIFERENÇA NA CHAVE DE ACESSO.

Pelo que tenho percebido isso ocorre quando a alguma falha de retorno do site da receita ou demora e o sistema não consegue pegar a chave de acesso.

 

Para solucionar posteriormente a manobra é grande, ou seja, tenho que verificar se existe na pasta onde salva a NF-e se existe algum XML não autorizado para aquela nota (as vezes se encontram 4..5 XML) e apago todos. Entrar no site da receita, baixar o XML e salvar dentro da pasta, renomea-lo pois não vem com a extensão nfe que o ACBRMonitor exige, etc

 

Resumindo, alguém tem alguma dica ? Isso ocorre com os amigos também ou é falha minha ? tem algum configuração no ACBRMonitor para contornar isso ? Existe alguma função para baixar do site da receita o XML automaticamente sem ter que tá orientando o cliente passo a passo ?

 

Grato
 

Bom dia, eu não uso o acbrMonitor, mais segue como trato o envio das NF-e, e sim, temos este tipo de problema também diariamente, mais trato tudo automaticamente pelo meu sistema, hoje rodamos no estado do Pará e Roraima, um usa SVAN e outro SVRS, nos dois ocorre este erro as vezes, segue minhas rotinas, caso lhe ajude:

 

procedure T_frmNotaFiscal._btnEnviarClick(Sender: TObject);
var
  aAutorizacao  : string;
begin
  if not Permissao(Sessao, 'modificar') then
    Abort ;
   
  try
    _pclTopo.ActivePageIndex  := 0 ;
    MostrarPainelProgresso(_dbgProduto, _pnlProgresso, 'Enviando NF-e, aguarde...' );
    RemoveFileLog ;
   
    try
      with TabelaPai do
      begin
        Edit;
        FieldByName('LOTE').AsInteger  := _dmVenda.GeraCodigo('g_lotenf') ;
        ApplyUpdates(0);

        if not FileExists(PathNFe('Xml_Signed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml') then
          GerarNFe(true) ;

        with _dmVenda._acbrNFe do
        begin
          try
            Configuracoes.Geral.ModeloDF  := moNFe;           
            NotasFiscais.Clear ;
            NotasFiscais.LoadFromFile(PathNFe('Xml_Signed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml');
            DANFE := nil;

            if Enviar(FieldByName('LOTE').AsString, Assigned(DANFE), _dmVenda._ConfNota.FieldByName('SICRONO').AsString = 'SIM') then
            begin
              aAutorizacao  := NotasFiscais.Items[0].NFe.procNFe.nProt ;
              NotasFiscais.Items[0].GravarXML(TabelaPai.FieldByName('CHAVE').AsString + '.xml', PathNFe('Xml_Processed'));
              _dmDados.aLibrayNoturno.ImprimirNFe(_dmVenda._acbrNFe.NotasFiscais[0].NomeArq,
                _dmVenda._DanfeESCPOS.Logo);
            end;
          except
            raise;
          end;
        end;

        if aAutorizacao <> '' then
        begin         
          Edit ;
          FieldByName('SITUACAO').AsString    := 'ENVIADO' ;
          FieldByName('AUTORIZACAO').AsString := aAutorizacao ;

          //Atualiza o faturamento dos debitos.
          TabelaFilho3.First ;
          while not TabelaFilho3.Eof do
          begin
            TabelaFilho3.Edit ;
            TabelaFilho3.FieldByName('SITUACAO').AsString := FieldByName('SITUACAO').AsString ;
            TabelaFilho3.Post ;
            TabelaFilho3.Next ;
          end;

          ApplyUpdates(0) ;
          _dmDados.LogUsuario(TabelaPai, '', Sessao, _btnEnviar) ;

           //Envia o xml por email
          if FieldByName('EMAIL').AsString <> '' then
          begin
            with _dmVenda do
            begin
              if aExecuteSendXML then
                if Assigned(aSendXML) then
                  aSendXML.Terminate ;

              aSendXML := TSendXML.Create(
                                          false,
                                          TabelaPai.FieldByName('EMAIL').AsString,
                                          'Arquivo XML NF-e Nº ' + FormatFloat('000000000', FieldByName('CODIGONFE').AsInteger) +
                                            ' - [ ' + _dmSistema._Empresa.FieldByName('RAZAO').AsString + ' ]',
                                          'Em anexo arquivo XML referente a nota fiscal eletrônica(NF-e) Nº <b>' +
                                            FormatFloat('000000000', FieldByName('CODIGONFE').AsInteger) + '<\b>.',
                                          PathNFe('Xml_Processed') + TabelaPai.FieldByName ('CHAVE').AsString + '.xml'
                                          );
            end;
          end;

          //Envia o backup do XML.
          with _dmVenda do
          begin
            if aExecuteBackupXML then
              if Assigned(aBackupXML) then
                aBackupXML.Terminate ;

            aBackupXML := TBackupXML.Create(false);
          end;
        end;
      end;
    except
      on e : exception do
      begin
        TabelaPai.CancelUpdates ;

        if trim(TabelaPai.FieldByName('AUTORIZACAO').AsString) = '' then
          if FileExists(PathNFe('Xml_Processed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml') then
            DeleteFile(PathNFe('Xml_Processed')+ TabelaPai.FieldByName('CHAVE').AsString + '.xml') ;

        if pos('duplicidade', LowerCase(e.Message)) > 0 then
        begin
          _lblAutorizacaoClick(_lblAutorizacao);

         
          if TabelaPai.FieldByName('AUTORIZACAO').AsString <> '' then
            Exit;
        end;

        SendFileLogNF('Enviar NF-e.', _dmVenda._ConfNota.FieldByName('SICRONO').AsString) ;
        raise;
      end;
    end;
  finally
    _dmVenda._acbrNFe.NotasFiscais.Clear ;
    DesabilitarBotao(abSem, TabelaPai, 0) ;
    _pnlProgresso.Visible         := false ;
  end;
end;

Tenho está função para recuperar o xml num label:

procedure T_frmNotaFiscal._lblAutorizacaoClick(Sender: TObject);
begin
  if not Permissao(Sessao, 'modificar') then
    Abort ;

  MostrarPainelProgresso(_dbgProduto, _pnlProgresso, 'Obtendo protocolo, aguarde...');

  try
    RemoveFileLog ;
   
    with TabelaPai do
    begin
      try
        if not FileExists(PathNFe('Xml_Signed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml') then
          GerarNFe(true) ;

        with _dmVenda._acbrNFe do
        begin
          NotasFiscais.Clear;
          Configuracoes.Geral.ModeloDF := moNFe;
          NotasFiscais.LoadFromFile(PathNFe('Xml_Signed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml');

          if Consultar then
            if WebServices.Consulta.Protocolo <> '' then
            begin
              with TabelaPai do
              begin
                Edit ;
                FieldByName('AUTORIZACAO').AsString := _dmVenda._acbrNFe.WebServices.Consulta.Protocolo;
                FieldByName('SITUACAO').AsString    := IfThen(Trim(FieldByName('CANCELAMENTO').AsString) = '', 'ENVIADO', 'CANCELADO');
                ApplyUpdates(0);
              end;

              if FileExists(PathNFe('Xml_Processed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml') then
                DeleteFile(PathNFe('Xml_Processed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml') ;

              NotasFiscais.Items[0].GravarXML(TabelaPai.FieldByName('CHAVE').AsString + '.xml', PathNFe('Xml_Processed'));
            end

            else
              raise exception.Create(WebServices.Consulta.XMotivo);
        end;
      except
        on e : exception do
        begin
          SendFileLogNF('Obter Protocolo NF-e.');
          raise;
        end;
      end;
    end;
  finally
     _pnlProgresso.Visible := false ;
     DesabilitarBotao(abSem, TabelaPai, 0) ;
  end;

Em resumo a sua pergunta, para pegar um .xml eu uso:

 NotasFiscais.Clear;
Configuracoes.Geral.ModeloDF := moNFe;
NotasFiscais.LoadFromFile(PathNFe('Xml_Signed') + TabelaPai.FieldByName('CHAVE').AsString + '.xml');

if Consultar then

....

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Duarte,

Por favor quando postar fragmentos de código, coloque-o em um arquivo TXT e anexe o mesmo, sua postagem vai ficar curta e quem desejar ver a rotina basta baixar o arquivo.

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

  • Este tópico foi criado há 3223 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.