Ir para conteúdo
  • Cadastre-se

dev botao

Correções Na Geração Do Arquivo Layout Txt 3.10


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

Recommended Posts

Uma forma simples de testar o problema que estou tendo é fazer o seguinte:

 

No edt1.Text tendo o path e nome de um xml de NFe

 

if edt1.Text <> EmptyStr then
begin
  if ACBrNFe1.NotasFiscais.LoadFromFile(edt1.Text, True) then
  begin
    ACBrNFe1.NotasFiscais.SaveToTXT(ChangeFileExt(edt1.Text, '.TXT'));
  end;
end;

 

o resultado será um TXT com as informações da NFe do xml, mais sem a tag <A>.

 

P.S.: Entendido Tiago Ravache, eu deveria ter editado o primeiro post e não gerado 3, certo ?

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

Sim para o P.S. poderia ter feito os 3 posts num, apenas editando :)

 

estou vendo a questão da importação calma lá que logo vejo isso ;)

 

 

{EDITADO}

Realmente a function SaveToTXT está gerando o TXT sem o Registro A| as informações do registro são simplesmente

 

A|versão do Schema|ID

 

Estou vendo isso por aqui qualquer coisa posto

Editado por Tiago Ravache
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bem, creio que entendi o problema e achei uma solução de contorno por hora.

No layout 2.00 a versão está fixa:

 

LoadLayout('<B01>     A|2.00|^id^');

 

Já na 3.10 era para fazer a substituição da tag pelo seu respectivo valor:

 

LoadLayout('<B01>     A|versao¨|^id^');

 

Como não é feita em nenhum momento, a rotina que limpa os campos não substituídos remove toda a linha.

 

Se trocar por:

 

LoadLayout('<B01>     A|3.10|^id^');

 

A linha é gerada, mais não é a melhor solução, creio eu...

Link para o comentário
Compartilhar em outros sites

No arquivo \PCN2\pcnLayoutTXT.pas alterei a linha 272

 

    De ===>>>  LoadLayout('<B01>     A|versao¨|^id^');   Para ===>>> LoadLayout('<B01>     A|3.10|^id^');

 

Isso resolve a geração do TXT a partir de um XML.

 

 

No arquivo \PCN2\pcnNFeRTXT.pas alterei a linha 285

 

    De ===>>>  if (ID = 'B13') or (ID = 'BA') or (ID = 'BA02') then       Para ===>>>   if (ID = 'B13') or (ID = 'BA02') then

 

Isso resolve a importação de notas fiscais de devolução, pois a TAG "BA" não tem informação, mais mesmo assim estava sendo gerado um registro em branco.

Editado por dantemartins
Link para o comentário
Compartilhar em outros sites

Bem que imaginei que não era o correto, mais agora creio que acertei.

isso está errado:

 

"No arquivo \PCN2\pcnLayoutTXT.pas alterei a linha 272

 

    De ===>>>  LoadLayout('<B01>     A|versao¨|^id^');   Para ===>>> LoadLayout('<B01>     A|3.10|^id^');

 

Isso resolve a geração do TXT a partir de um XML."

 

Vamos deixar como estava e incluir uma linha em outro local.

 

Na unit pcnNFeW.pas linha 351, 352 e 353 deixar assim:

  Gerador.wGrupo('ide', 'B01');
  Gerador.wCampo(tcDe2, 'A', 'versao', 4, 4, 1, NFe.infNFe.Versao, DSC_VERPROC);
  Gerador.wCampo(tcInt, 'B02', 'cUF    ', 02, 02, 1, nfe.ide.cUF, DSC_CUF);
Link para o comentário
Compartilhar em outros sites

Colegas Dante e Tiago, vejam o primeiro post deste tópico. Nele eu falo sobre essas e outras correções necessárias ao ACBr para gerar um txt que o emissor da NFe importe. Tem também 3 arquivos anexos com todas as correções que eu identifiquei.

 

Essas correções entrarão no repositório oficial assim que a receita soltar o manual do TXT corrigido (www.emissornfe.fazenda.sp.gov.br/manuais_v310.html).

 

Abraços,

Gabriel.

Editado por Gabriel Frones
Link para o comentário
Compartilhar em outros sites

Colegas Dante e Tiago, vejam o primeiro post deste tópico. Nele eu falo sobre essas e outras correções necessárias ao ACBr para gerar um txt que o emissor da NFe importe. Tem também 3 arquivos anexos com todas as correções que eu identifiquei.

 

Essas correções entrarão no repositório oficial assim que a receita soltar o manual do TXT corrigido (www.emissornfe.fazenda.sp.gov.br/manuais_v310.html).

 

Abraços,

Gabriel.

 

Olá Gabriel, sua versão dos fontes ainda tem um problema na hora de ler um TXT, com relação a versão, pois ao tentar procurar a TAG "versao" ela não é encontrada, pois foi substituída pelo literal "3.10" no pcnLayoutTXT.pas, fazendo com que o leitor txt assuma a 2.0 como default, carregando as datas de emissão e entrada/saída de "forma errada" e consequentemente deixando as properties "zeradas", que no meu caso deu erro ao gravar no DB, ficando como 30/12/1899 (data zero).

 

Se tira a TAG "versao" substituindo pelo literal "3.10" o TXT é GERADO corretamente, mais IMPORTADO de forma errada.

Se deixa a TAG "versao" ao GERAR o txt, gera sem a linha referente a TAG "A", mais importa corretamente.

Link para o comentário
Compartilhar em outros sites

Olá Gabriel, 

Baixei as Units que vc postou, só que ao gerar o TXT, usando a function <NotasFiscais.SaveToTXT> a primeira linha está aparecendo duplicada. 

Veja como ficou:

...

NOTA FISCAL|1
NOTA FISCAL|1
A|3.10|NFe42150301927520000298550010000040711000053780
B|42|00005378|VENDA|1|55|1|4071|2015-03-17T00:00:00-03:00|2015-03-17T00:00:00-03:00|1|1|4202404|1|1|0|1|1|0|0|3|2.2||
...
 
Em algumas versões antigas ocorria isto, mas foi resolvido. 
Ao fazer um DEBUG, percebi que logo após a geração do TXT, tem os seguintes procedimentos: 
...
    if loSTR.Count > 0 then
    begin
      loSTR.Insert(0,'NOTA FISCAL|'+IntToStr(Self.Count));
      J:=loSTR.Count;
..
 

Comentei estas linhas e resolveu. Alguém já passou por isto?

 

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link para o comentário
Compartilhar em outros sites

Complementando o Post anterior. Ao invez de alterar ACBrNFeNotasFiscais, preferi resolver o problema da duplicidade da primeira linha, alterando no pcnLayoutTXT

...

  else if versao = '3.10' then
  begin
    LoadLayout('<B>     NOTA FISCAL|1'); //ok
    LoadLayout('<B01>     A|versao¨|^id^'); //ok
...

 

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link para o comentário
Compartilhar em outros sites

Colegas,

 

Atualizei os anexos com a correção do Dante e algumas outras que identifiquei na leitura do TXT

Olá Gabriel, após atualizar os Fontes que vc postou, os XMLs gerados não validam mais.

 

Erro Completo: Falha na validação dos dados da nota 2451
Element '{http://www.portalfis....br/nfe}versao'is unexpected according to content model of parent element 
  • Curtir 1

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link para o comentário
Compartilhar em outros sites

João,

 

Obrigado pelo seu feedback. Eu atualizei os 4 arquivos no post inicial para corrigir o problema da geração do XML. A alteração que tinha sido feita e que quebrou a geração do XML tinha a ver com a leitura do TXT, então tive que alterar outros arquivos para conseguir fazer a leitura sem depender dessa alteração.

 

Quanto à sua primeira dificuldade, a da duplicação do cabeçalho quando se usa ACBrNFe, eu fiz um teste aqui usando a última versão do trunk e ela já ocorria. Então, como não tem relação com a NFe 3.10 em si, eu criei outro tópico:

 

Por favor, verifique se tudo está funcionando pra você agora.

 

Abraços,

Gabriel.

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

  • 4 meses depois ...
  • 2 meses depois ...

Bom dia, sei que este tópico já está parado a algum tempo, mas estamos com um problema semelhante com a tag BA, mas só que para ler estas tag.

Com relação a pergunta Italo, em porque não usar o ACBr para fazer todo o processo, é nós utilizamos ACBr para validar a nota, mas para enviá-la, utilizamos um serviço terceirizado que guarda os XML´s para nossos clientes, então seria bem interessante se estas correções fossem aplicadas mesmo antes de sair a correção do layout, pois já faz tempo que existe este problema e ainda não saiu a correção do mesmo.

 

Editado por Edson Viel
Erro de digitação
Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...