Jump to content

dev botao

Erro Nfce Em Contingencia Nfce Monitor


Go to solution Solved by Jeanbiazon,
  • Este tópico foi criado há 3781 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde....

Na hora de gerar um NFce com justificativa e validar o arquivo esta dando esse erro...

Alertas:TAG:<ide> ID:B28/dhCont(Data e Hora de entrada em contingencia) - Tamanho maior que o máximo permitido [2013-10-15T14:25:00-04:00]...

Porem no arquivo esta certo...

<dhCont>2013-10-15T14:20:00-04:00</dhCont><xJust>teste de justificativa de envio em modo de contingencia</xJust>

Link to comment
Share on other sites

Bom dia Jean,

 

da uma conferida se você informou corretamente a propriedade "acbr.Configuracoes.Geral.ModeloDF := moNFCe", e no grupo Ide do acbr  schema := TsPL006 e Versao := 3 e você deve ter em sua posse os schemas XML correspondente com a versão (PL 006)

Roberto bom dia.... infelizmente estou utilizando o acbrnfemonitor ja compilado, sou programador em vb, e não tenho como recompilar os fontes, então fico aguardando a colaboração dos colegas programadores em Delphi... então não tenho como responder sobre esse configuração.... porém o schema esta 3.0, transmito e recebo normalmente, somente o modo contingencia que esta dando esse problema....

 

Muito obrigado....

Link to comment
Share on other sites

aaaahhhh lembrei, tive este problema com o campo dhEmi se não me engano, fui verificar o fonte e esta incorreto a forma como é gerado a TAG, por isso esta retornando o erro. Está sendo informado tamanho 19 ao gerar o campo, como é o tipo tcStr o tamanho deve ser 25 que corresponde ao tamanho total da tag. (2013-10-15T14:20:00-04:00)

 

como está:

  if (nfe.Ide.dhCont > 0) or (nfe.Ide.xJust <> '') then
   begin
    if nfe.infNFe.Versao >= 3 then
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 19, 19, 1, DateTimeTodh(nfe.ide.dhCont) + GetUTC(CodigoParaUF(nfe.ide.cUF), nfe.ide.dhCont), DSC_DHCONT)
    else
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 19, 19, 1, DateTimeTodh(nfe.Ide.dhCont), DSC_DHCONT);

    Gerador.wCampo(tcStr, 'B29', 'xJust  ', 01,256, 1, nfe.ide.xJust, DSC_XJUSTCONT);
   end;

como deve ser:

  if (nfe.Ide.dhCont > 0) or (nfe.Ide.xJust <> '') then
   begin
    if nfe.infNFe.Versao >= 3 then
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 25, 25, 1, DateTimeTodh(nfe.ide.dhCont) + GetUTC(CodigoParaUF(nfe.ide.cUF), nfe.ide.dhCont), DSC_DHCONT)
    else
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 19, 19, 1, DateTimeTodh(nfe.Ide.dhCont), DSC_DHCONT);

    Gerador.wCampo(tcStr, 'B29', 'xJust  ', 01,256, 1, nfe.ide.xJust, DSC_XJUSTCONT);
   end;

Alterei os fontes e anexei ao post, se alguém puder subir para o SVN seria ótimo.

 

pcnNFeW.pas

Link to comment
Share on other sites

  • Solution

aaaahhhh lembrei, tive este problema com o campo dhEmi se não me engano, fui verificar o fonte e esta incorreto a forma como é gerado a TAG, por isso esta retornando o erro. Está sendo informado tamanho 19 ao gerar o campo, como é o tipo tcStr o tamanho deve ser 25 que corresponde ao tamanho total da tag. (2013-10-15T14:20:00-04:00)

 

como está:

  if (nfe.Ide.dhCont > 0) or (nfe.Ide.xJust <> '') then
   begin
    if nfe.infNFe.Versao >= 3 then
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 19, 19, 1, DateTimeTodh(nfe.ide.dhCont) + GetUTC(CodigoParaUF(nfe.ide.cUF), nfe.ide.dhCont), DSC_DHCONT)
    else
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 19, 19, 1, DateTimeTodh(nfe.Ide.dhCont), DSC_DHCONT);

    Gerador.wCampo(tcStr, 'B29', 'xJust  ', 01,256, 1, nfe.ide.xJust, DSC_XJUSTCONT);
   end;

como deve ser:

  if (nfe.Ide.dhCont > 0) or (nfe.Ide.xJust <> '') then
   begin
    if nfe.infNFe.Versao >= 3 then
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 25, 25, 1, DateTimeTodh(nfe.ide.dhCont) + GetUTC(CodigoParaUF(nfe.ide.cUF), nfe.ide.dhCont), DSC_DHCONT)
    else
       Gerador.wCampo(tcStr, 'B28', 'dhCont ', 19, 19, 1, DateTimeTodh(nfe.Ide.dhCont), DSC_DHCONT);

    Gerador.wCampo(tcStr, 'B29', 'xJust  ', 01,256, 1, nfe.ide.xJust, DSC_XJUSTCONT);
   end;

Alterei os fontes e anexei ao post, se alguém puder subir para o SVN seria ótimo.

Roberto, desculpe abusar, mas vc poderia compilar e enviar aqui no forum esse executavel ???

 

Não trabalho com Delphi apenas VB... e estou utilizando a troca de arquivos txt.... instalei o Delphi aqui mas ainda não tive tempo de dar uma olhada...

 

Muito obrigado se puder me ajudar....

Edited by Jeanbiazon
Link to comment
Share on other sites

  • 5 months later...

Eu fiz esta mudança a titulo de teste,  alterando de 19 para 25  e o que aconteceu foi que começou a aparecer a seguinte mensagem :

  Falha na validação dos dados na nota 29  (Numero atual da nota) 

 

Cancelei a mudança , atualizei o Acbr - e agora esta dando o "mesmo erro" ,  isso quando tento rodar  nota em contingência.

fui olhar os fontes e esta mudança foi feita no pcnNFeW.pas do acbr.

como se pode resolver isso e rodar notas em contingência ?

Link to comment
Share on other sites

O problema de contingência resolvido, com um try para simplesmente não colocar mensagem quando não tiver internet.

contudo após atualizar o Acbr monitor esta dando um erro:

 

na função enviar :          if acbrnfe1.NotasFiscais.Count = 1
                                       then acbrnfe1.Enviar(1, True, True)
                                       else acbrnfe1.Enviar(1, True, False);

 

da um erro e para e grava um xml  com estes dizeres Nome.

pro-rec.xml

 

A página XML não pode ser exibida

Não é possível exibir a entrada XML usando a folha de estilos . Corrija o erro e clique no botão Atualizar ou tente novamente mais tarde.

O documento XML deve ter um elemento de nível superior. Erro ao processar o recurso 'file:///C:/Nfce/Nfce/-pro-rec.xml'.

Link to comment
Share on other sites

Italo , o que tenho a acrescentar é o seguinte.

 

Estava fazendo normal na homologação , enviando , e informando no xml que o arquivo foi recebido, atualizei o acbr monitor e fiz a contingência, e coloquei o try ,

 

     try
        if ACBrNFe1.WebServices.StatusServico.Executar = true then
        begin
           vFuncionando := 'S';
           ShowMessage(ACBrNFe1.WebServices.StatusServico.Msg);
        end;
      except
         vFuncionando := 'N';
      end;

 

 e coloquei quando contingência

         if vFuncionando = 'N' then    // se normal ou contingência
         begin
         ide.dhCont:= now;     // para corrigir o erro que dava de data
         Ide.xJust := 'NOTA FISCAL EMITIDA EM CONTINGÊNCIA';
         end;

 

a contingência imprimiu certinho , mais passou a dar esse erro , na função enviar.

Link to comment
Share on other sites

  • Consultores

Boa tarde Elcyberg,

 

Abra a unit ACBrNFeWebServices e procure pela linha:

 

  if ((FConfiguracoes.Geral.ModeloDF = moNFCe) or (FConfiguracoes.Geral.VersaoDF = ve310)) and not
     (FConfiguracoes.WebServices.UFCodigo in [23, 31])  then // CE, MG
 

altere acrescentando o código 13:

 

  if ((FConfiguracoes.Geral.ModeloDF = moNFCe) or (FConfiguracoes.Geral.VersaoDF = ve310)) and not
     (FConfiguracoes.WebServices.UFCodigo in [13, 23, 31])  then // CE, MG

 

Se não me falha a memória essa alteração é em 3 lugares.

 

Altere e teste novamente.
 

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 to comment
Share on other sites

  • 3 weeks later...

Bom dia Italo.

 

tenho a seguinte duvida , estou tentando fazer o envio de notas em contingência, as notas imprimem em contingencia sem problemas , gera o xml normalmente , e estou precisando enviar estas notas, a pergunta é a seguinte :

 a função ACBrNFe1.Consultar;  que esta no demo "adicionar nfeProc ao xml"  faz este envio completo, gerando as informações de envio e gerando o numero de protocolo , ou as contingências devem  serem enviados de outra maneira.

 

fico no aguardo de sua resposta.

Link to comment
Share on other sites

  • Consultores

Boa noite Elcyberg,

 

Quando o emitente esta com algum problema técnico que impede o envio do XML para a SEFAZ, o que deve ser feito?

 

1. Alterar o tpEmi de normal para contingência, informar a data e hora de contingência e mais o motivo, gerar novamente o XML;

2. Imprimir o DANFE;

3. Quando os problemas técnicos forem contornados o XML sem gerado com o tpEmi de contingência, etc deve ser enviado para a SEFAZ.

 

O comando de envio é o mesmo usado para o envio normal.

 

O Consultar é usado apenas para consultar a situação atual de uma nota previamente enviada.

 

O Enviar: Gera o XML, assina, valida, envia, se tudo OK acrescenta o protocolo de autorização e imprimi o DANFE.

 

O Consultar: Consulta a situação atual da Nota, se o componente estiver configurado para atualizar o XML o mesmo recebera o protocolo de autorização caso este não tenha.

  • Like 1
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 to comment
Share on other sites

Boa noite , Italo.

 

Conforme sua orientação , criei o modulo de envio de contingência , assim que concluir meus testes lhe informo do resultado.

contudo tem ocorrido o seguinte quando envio a Nfc-e.  No primeiro envio do dia , eu acredito quando vai verificar se tem internet.

não funciona , simplesmente para o programa, tenho que dar Ctrl+alt-del , entrar no sistema de novo , ai roda normal, rapido , uma nota após a outra.

 Somente a primeira do dia não sai , tem que fazer algo antes para isso não acontecer?

Link to comment
Share on other sites

  • Consultores

Boa tarde Elcyberg,

 

O Certificado é um A1 ou A3?

 

O meu cliente esta usando agora o A3, quando ele vai emitir a primeira nota ele clica no botão consultar status, aparece a tela solicitando o PIN e a consulta é feita e apresentada.

 

Feito isso ele envia, cancela, em fim  enquanto não sair da aplicação não aparece a tela pedindo o PIN e funciona 100%.

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 to comment
Share on other sites

Boa noite , Italo

 

Conforme sua orientação coloquei um botão para a verificação de status de serviço e acredito que resolverá o problema do primeiro envio do dia , mais não estou conseguindo fazer corretamente o envio da contingência , no item 1 de sua orientação tem :

1. Alterar o tpEmi de normal para contingência, informar a data e hora de contingência e mais o motivo, gerar novamente o XML;

 

Eu tenho que gerar novamente o xml , pois o quando faço em contingencia o xml grava normalmente com tpEmi,motivo , ficando somente sem a parte do protNFe que é colocado quando da atualização, fiquei na duvida.

 

estou fazendo um loop para enviar todas as contingências assim

 

   while DmMovimento.SqlNotaVendaNfceC.RecordCount > 0 do
   begin

      DmMovimento.SqlNotaVendaNfceC.Close;
      DmMovimento.SqlNotaVendaNfceC.Sql.clear;
      DmMovimento.SqlNotaVendaNfceC.Sql.Add('SELECT VendaNfce.*');
      DmMovimento.SqlNotaVendaNfceC.Sql.Add('FROM VENDANFCE ');
      DmMovimento.SqlNotaVendaNfceC.SQL.Add('WHERE VendaNfce.Protocolo ="" ' );
      DmMovimento.SqlNotaVendaNfceC.Open;

 

      ACBrNfe1.NotasFiscais.Clear;
      ACBrNfe1.NotasFiscais.LoadFromFile('\Nfce\Nfce\'+DBGrid3.Fields[2].AsString+'-nfe.xml');                    

                         //campo 2 = chave de acesso  ex. 13140406950944000106650010000000479000000472

      if acbrNfe1.NotasFiscais.Count = 1
      then acbrNfe1.Enviar(1, True, True)
      else acbrNfe1.Enviar(1, True, False);

      DmMovimento.TbVendaNfce.Locate('Numerovenda',DBGrid3.Fields[1].AsString,[]); // campo 1 numero da venda

      vID:=ACBrNfe1.NotasFiscais.Items[0].NFe.procNFe.chNFe;
      vDigVal:=ACBrNfe1.NotasFiscais.Items[0].NFe.procNFe.digVal;
      vDhRecebimento:=DateTostr(ACBrNfe1.NotasFiscais.Items[0].NFe.procNFe.dhRecbto);
      vProtocolo:=ACBrNfe1.NotasFiscais.Items[0].NFe.procNFe.nProt;

 

      // gravo o protocolo e chave de acesso no meu  arquivo de controle
      DmMovimento.TbVendaNfce.Edit;
      DmMovimento.TbVendaNfceChaveAcesso.AsString:=ACBrNfe1.NotasFiscais.Items[0].NFe.procNFe.chNFe;
      DmMovimento.TbVendaNfceProtocolo.AsString:=ACBrNfe1.NotasFiscais.Items[0].NFe.procNFe.nProt;
      DmMovimento.TbVendaNfce.Post;
      DmMovimento.TbVendaNfce.Refresh;

 

     refaço o while acima e verifico ate o SqlNotaVendaNfceC.RecordCount  = 0 , ai acaba e sai

 

  end;

 

Peguei o exemplo do  ACBrNFe_demo

  • Like 1
Link to comment
Share on other sites

  • Consultores

Bom dia Elcyberg,

 

Lembre-se que em modo de contingência, temos:

 

1. O XML é gerado conforme já mencionado e o DANFE - NFC-e é impresso.

 

2. Quando a conexão com a SEFAZ se restabelecer os XMLs gerados no ( 1. ) são enviados para que os mesmos sejam validados e autorizados pela SEFAZ, e consequentemente recebam o protocolo de autorização fincando assim completos, ou seja, assinado e protocolado.

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 to comment
Share on other sites

Boa noite, Italo

 

Conforme suas orientações e após os testes realizados , o envio das  Nfc-e  em contingência esta concluído, processando e  enviando todas as notas sem problemas.

 

Agora tenho a seguinte situação , no envio da Nfc-e ainda persiste em dar o erro 219, ao que parece e que o qr code tem que  ter o mesmo horário do <dhEmi> informado igual ate nos segundos , essa informação esta correta ? 

 

Esse erro é o que falta corrigir para a Nfc-e ficar 100 %

 

e obrigado pela sua atenção. Suas orientações estão sendo fundamentais.

Link to comment
Share on other sites

  • Consultores

Bom dia Elcyberg,

 

O que vem a ser esse erro 219?

 

No XML da NFC-e como esta aparecendo o valor de dhEmi?

 

A dhEmi antes de ser convertida para HEX é preciso que ela seja exatamente igual ao conteúdo da TAG dhEmi que por sinal possui a Data, Hora e o UTC, exemplo: "2014-05-05T08:00:15-03:00"

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 to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.