Ir para conteúdo
  • Cadastre-se

dev botao

PROBLEMA AO VALIDAR NFE


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

Recommended Posts

Bom dia, galera!

Estou com um problema ao validar o XML da NFe. Estava emitindo normalmente,

porém após uma atualização do sistema, começou a emitir o seguinte erro ao validar o XML da NFe.
---------------------------
Falha na validação dos dados da nota: 42

1871 - Element '{http://www.portalfiscal.inf.br/nfe}nFat': This element is not expected.

---------------------------
Penso que esse erro seja de schemas, já atualizei a pasta schemas, atualizei o ACBr, desinstalando e instalando novamente, mas o erro persiste.

Estou encaminhando o XML, na TAG de nFAT, percebi que se repete 3 vezes, porém no fonte ao debugar, está normal. Mas, no XML está se repetindo essa TAG.

if cdsFinalizadoracodfinalizadoranfe.AsString = '14' then
              begin
                tPag := fpDuplicataMercantil;
                vPag := cdsFinalizadoravalorfinalizadora.AsFloat;

                Cobr.Fat.nFat := inttostr(numero_nota);
                Cobr.Fat.vOrig := cdsFinalizadoravalorfinalizadora.AsFloat; //converte(sql_nota.fieldbyname('valor').asfloat, 2);
                Cobr.Fat.vDesc := 0.00;
                Cobr.Fat.vLiq := cdsFinalizadoravalorfinalizadora.AsFloat;//converte(sql_nota.fieldbyname('valor').asfloat, 2);

                //Grupo duplicata é somente para o tipo de pagamento vinculado com Duplicata Mercantil
                cdsVencimento.First;
                cont := 1;
                if not cdsVencimento.IsEmpty then
                begin
                  while not cdsVencimento.Eof do
                  begin
                    with Cobr.Dup.Add do
                    begin
                      nDup  := dupeString('0', 3-Length(IntToStr(cont)))+ inttostr(cont);
                      dVenc := cdsVencimentodatavencimento.AsDateTime; //sql_ana.fieldbyname('data_p').asdatetime;
                      vDup  :=  cdsVencimentovalorvencimento.AsFloat; //converte(sql_ana.fieldbyname('valor').asfloat, 2);
                      inc(cont);
                    end;
                    cdsVencimento.next;
                  end;

                end;

Segue também uma parte do código fonte. 

Alguém por aí passou por algum problema semelhante? Ou consegue me ajudar?

35180904908850000143550010000000421000000421-nfe.xml

Link para o comentário
Compartilhar em outros sites

  • Solution

Problema solucionado. 

Minha unit pcnNFeW, estava assim:

if (trim(nfe.Cobr.Fat.nFat) <> '') or
    (nfe.Cobr.Fat.vOrig > 0) or
    (nfe.Cobr.Fat.vDesc > 0) or
    (nfe.Cobr.Fat.vLiq > 0) then
  begin
    Gerador.wGrupo('fat', 'Y02');
//<<<<<<< .mine
    Gerador.wCampo(tcStr, 'Y03', 'nFat   ', 01, 60, 0, nfe.Cobr.Fat.nFat, DSC_NFAT);
    Gerador.wCampo(tcDe2, 'Y04', 'vOrig  ', 01, 15, 0, nfe.Cobr.Fat.vOrig, DSC_VORIG);
    Gerador.wCampo(tcDe2, 'Y05', 'vDesc  ', 01, 15, 0, nfe.Cobr.Fat.vDesc, DSC_VDESC);
    Gerador.wCampo(tcDe2, 'Y06', 'vLiq   ', 01, 15, 0, nfe.Cobr.Fat.vLiq, DSC_VLIQ);
//||||||| .r15437
    Gerador.wCampo(tcStr, 'Y03', 'nFat   ', 01, 60, 0, nfe.Cobr.Fat.nFat, DSC_NFAT);
    .wCampo(tcDe2, 'Y04', 'vOrig  ', 01, 15, 0, nfe.Cobr.Fat.vOrig, DSC_VORIG);
    .wCampo(tcDe2, 'Y05', 'vDesc  ', 01, 15, 0, nfe.Cobr.Fat.vDesc, DSC_VDESC);
    Gerador.wCampo(tcDe2, 'Y06', 'vLiq   ', 01, 15, 0, nfe.Cobr.Fat.vLiq, DSC_VLIQ);
//=======
    Gerador.wCampo(tcStr, 'Y03', 'nFat   ', 01, 60, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.nFat, DSC_NFAT);
    Gerador.wCampo(tcDe2, 'Y04', 'vOrig  ', 01, 15, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.vOrig, DSC_VORIG);
    Gerador.wCampo(tcDe2, 'Y05', 'vDesc  ', 01, 15, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.vDesc, DSC_VDESC);
    Gerador.wCampo(tcDe2, 'Y06', 'vLiq   ', 01, 15, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.vLiq, DSC_VLIQ);
//>>>>>>> .r15563
    Gerador.wGrupo('/fat');
  end;

Mesmo atualizando o ACBr, essa unit persistia, por isso estava repetindo os campos. Então, removi a unit e baixei novamente e ficou tudo correto.

NFe emitindo corretamente.

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

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