Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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>

Postado

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)

  • Curtir 1
Postado

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

Postado

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

  • Solution
Postado (editado)

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

Editado por Jeanbiazon
  • 5 meses depois ...
Postado

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 ?

Postado

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'.

Postado

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.

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • 3 semanas depois ...
Postado

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.

  • Consultores
Postado

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.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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?

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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

  • Curtir 1
  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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.

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Boa Noite Icaro.

 

Achei a falha que causava o erro 219 no Qr code , eu não estava informando corretamente o numero do token, agora no envio da Nfc-e o Qr code esta correto.

 

Mais uma Vez agradeço a sua atenção.

 

[email protected]

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