Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Caros colegas, estou anexando os arquivos que alterei para fazer a geração dos arquivos TXT da NFe 3.10. Algumas notas importantes:

 

1) O manual do txt possui vários erros. Alguns deles:

  • Não traz as tags pai, como "BA|" e "GA|", mas sem elas o emissor recusa o arquivo.
  • Mostra o refCTe (B19) como filho do refNFP (B10), mas na verdade, ele é filho do NFref (B01).

 

2) Criei uma uma procedure gtEliminarRegistros no pcnGerador para eliminar os registros não utilizados (identica à rotina que já existia em gtAjustarRegistros) e alterei a wGrupo para realizar essa "limpeza" sempre que um grupo for fechado. Essa alteração é importante para evitar erros na geração de alguns registros (e.g., BA13/BA14, GA02/GA03). Apenas para deixar mais claro qual o erro que ocorre:

        With NFe.autXML.Add Do
            CNPJCPF := '00000000000000';
        With NFe.autXML.Add Do
            CNPJCPF := '11111111111111';
        With NFe.autXML.Add Do
            CNPJCPF := '11111111111';
        With NFe.autXML.Add Do
            CNPJCPF := '22222222222222';

Esse código gera no TXT os seguintes registros:

GA|
GA02|00000000000000
GA03|11111111111
GA|
GA02|11111111111111
GA03|11111111111
GA|
GA02|22222222222222
GA03|11111111111
GA|
GA02|22222222222222

3) Existem muitas situações que eu não testei. Eu mantive a convenção de comentar um //ok no final das linhas testadas.

 

4) A maior parte das correções aqui são consequência direta de erros no manual do TXT. A equipe do ACBr está dependendo de a receita liberar uma versão corrigida do manual para corrigir os fontes no SVN oficial. Além disso, como não sou da equipe, não posso garantir que os arquivos no SVN oficial serão exatamente esses que coloco aqui. Eles são apenas uma sugestão que funciona para mim e para alguns colegas que deram feedback.

pcnGerador.pas

pcnLayoutTXT.pas

pcnNFeW.pas

pcnNFeRTXT.pas

Editado por Gabriel Frones
  • Curtir 2
Postado

Ok... mas qual o procedimento correto? Estava na 3a página já. Agora que você respondeu eu sei que já foi visto por alguém da equipe, então com certeza não "bumpo" mais.

 

Me baseei no manual do layout TXT v3.1.0 (24/11/2014) e na NT 2013/005 v1.21 (Novembro 2014). Testei vários arquivos da versão 3.10 com o emissor gratuito da receita. Os campos que eu testei (que sairam corretamente no arquivo e foram lidos corretamente pelo emissor) estão marcados com //ok, conforme convenção já presente no arquivo. Alguns campos tive que ajustar em desacordo com o manual para que o emissor aceitasse o arquivo (veja no post inicial as observações).

 

Obrigado e abraços.

Postado

Eu segui o manual do layout TXT exatamente, exceto nestes 3 casos, onde o manual está incorreto - vi um post do André afirmando isso em algum lugar, dizendo que a RFB já reconheceu que há alguns erros mais ainda não corrigiu:

 


1) O manual do txt possui vários erros. Alguns deles:

  • Não traz as tags pai como "BA|" e "GA|", mas sem elas o emissor recusa o arquivo.
  • Mostra o refCTe (B19) como filho do refNFP (B10), mas na verdade, ele é filho do NFref (B01).
  • Mostra os campos XMun e UF do grupo X03 na ordem invertida (o emissor recusa).
Postado

O post do André:

 

Mas Juliomar, pra que serve o TXT se o emissor não vai importar? Digamos que a RFB leve meses para corrigir o manual. A NFe 3.10 já será obrigatória e o ACBr será incapaz de gerar um txt que funcione, mesmo que as correções já sejam conhecidas. Acho que não precisa engessar tanto. Pra mim já foi solicitado que sejam feitos testes com a 3.10, então no meu caso, não dá pra esperar a RFB corrigir (não estou cobrando nada, por favor não me entenda mal, mas veja a ótica dos usuários do ACBr... eu já alterei e estou usando).

  • 2 semanas depois ...
Postado

O post do André:

 

Mas Juliomar, pra que serve o TXT se o emissor não vai importar? Digamos que a RFB leve meses para corrigir o manual. A NFe 3.10 já será obrigatória e o ACBr será incapaz de gerar um txt que funcione, mesmo que as correções já sejam conhecidas. Acho que não precisa engessar tanto. Pra mim já foi solicitado que sejam feitos testes com a 3.10, então no meu caso, não dá pra esperar a RFB corrigir (não estou cobrando nada, por favor não me entenda mal, mas veja a ótica dos usuários do ACBr... eu já alterei e estou usando).

 

Concordo com você, mesmo que temporário, essas modificações facilitariam a vida do pessoal que está baixando do svn, pois quem esta atualizando ou baixando do svn, vai ter que fazer essas modificações se quiser exportar para o emissor do governo. Ai quando sair o manual basta adequar a ele.  :mrgreen:

Postado (editado)

E ai pessoal, como ficamos?

Estou pronto a fazer uma gambiarra, pois alguns clientes usam Emissor outros AcbrNFe e este Frete com ordem de UF invertida tá me quebrando. 

 

O que recomendam?

 

*sem estresse!

Editado por guilhermekm
Postado

Bom dia Guilherme

 

Então cara estou dando uma olhada aqui, pois bastou inverter os campos no arquivo pcnLayoutTXT.pas que resolver o problema no TXT,

LoadLayout('<X03>   X03|XNome¨|IE¨|XEnder¨|UF¨|XMun¨');

porém estou verificando o arquivo pcnNfeW para ver se essas alterações podem causar problemas ao gerar o Xml. Não tenho muito conhecimento de como funciona o componente internamente, pois precisei até hoje apenas do TXT (por motivos internos na empresa ¬¬). Se achar mais alguma coisa posto aqui.

 

Abraços

  • Curtir 2
Postado (editado)

Leandro,

 

Não há problemas para o gerador do XML ao se alterar o pcnLayoutTXT.pas. Só precisa tomar algum cuidado com as alterações em pcnNFeW. Essa sim pode influenciar na geração do XML. Eu tentei ter esse cuidado nas alterações que fiz, anexadas no post inicial.

 

E respondendo ao colega Guilherme, eu não olhei ainda as alterações que o Leandro fez, mas já fiz diversos testes com as alterações que anexei no post inicial. Estão funcionando em todos os casos que eu uso aqui na empresa. Tem apenas uma alteração que preciso fazer para gerar os campos BA13 e BA14, que já percebi que o problema que eu tinha levantado no item 2 do post inicial não é tão grave, já que o gerador só preenche campos no contexto do grupo que ele está trabalhando, então a alteração é simples.

 

Assim que tiver um tempo (acho que só amanhã =/) vou dar uma olhada nas alterações do Leandro, nas últimas alterações do SVN e atualizar meus anexos do post inicial.

Editado por Gabriel Frones
  • Curtir 1
Postado (editado)

Gabriel

 

Eu testei as alterações que fiz e esta gerando o xml normalmente. Nos arquivos que anexei no post eu corrigi a tag GA e inverti o município com o estado no cadastro do transportador. Ainda não corrigi o BA nem o refCTe, mas vou dar uma olhada neles. Eu fiz que nem você, tentei ser o menos invasivo possível nas alterações, assim que puder de uma olhadinha :mrgreen: .

 

Guilherme

 

Já implementou alguma alteração? Deu certo?

 

Att.

Editado por Leandro Caires
Postado

Colegas,

 

Atualizei todos os arquivos que tinha alterado e inclui um novo. Estão anexos no primeiro post. Uma observação importante: a receita corrigiu a validação do emissor de acordo com o manual no caso da inversão de UF e xMun na transportadora (X03).

 

 

Leandro, eu dei uma olhada nas suas alterações. Acho que todas elas estão contempladas agora nos arquivos que eu upei. Eu fiz alguns testes e me parece que a minha alteração não interfere nas demais versões da NFe, mas acho que a sua vai interferir sim, porque você altera a ID de alguns grupos no NFeW.pas (observe que sempre que uma ID mudou eu coloquei um IIF, para não quebrar as versões anteriores da NFe). Por favor, faça alguns testes com os arquivos que eu coloquei no primeiro post e me diga se está funcionando pra você. Acho que vamos conseguir colaborar melhor se mantivermos uma versão apenas das alterações (eu não marquei com comentários onde alterei, mas acho que isso pode ser suprido facilmente com uma ferramenta de diff - o próprio svn/git, provavelmente já serve).

 

Abraços,

Gabriel.

  • Curtir 1
Postado

Olá senhores, sou novo no uso do Acbr, e aqui na empresa onde estou agora.

 

Recebi a seguinte tarefa.

 

- receber o xml do fornecedor

- transformar esse xml em TXT

- alimentar o sistema legado da empresa com o TXT

 

Para NFe 2, já está tudo feito com uso de uma DLL comprada.

 

Cheguei agora na empresa e por conta dessa DLL não receber mais atualizações aconselhei os responsáveis de utilizarmos o Acbr.

 

Gostaria de saber se realmente posso utilizar  a geração de TXT a partir de um XML de um fornecedor, ou se existirá alguma observação ou ponto de atenção.

 

Pergunto isso pois pelo que vi estão mais acostumados com esses tramites de arquivos.

 

Vou utilizar os arquivos aqui disponibilizados, e fazer alguns testes, como foi dito, não podemos ficar parados, as demandas chegam e nos atropelam se ficarmos esperando a RFB.

 

Muito obrigado pela atenção e esforço na correção dos arquivos.

abs

  • Curtir 1
Postado

ACBrNFe.NotasFiscais.LoadFromFile(PathdoArquivoxml);

 

ACBrNFe.NotasFiscais.SaveToTXT(PathParaSalvarTXT); - o Txt é gerado no layout do emissor gratuito pelo que pude perceber, veja se isso te ajuda aí.

 

Porém,

 

A única opção para o seu sistema legado é ser alimentado por um txt? você não conseguiria alimentá-lo de outra forma?

Postado

ACBrNFe.NotasFiscais.LoadFromFile(PathdoArquivoxml);

 

ACBrNFe.NotasFiscais.SaveToTXT(PathParaSalvarTXT); - o Txt é gerado no layout do emissor gratuito pelo que pude perceber, veja se isso te ajuda aí.

 

Porém,

 

A única opção para o seu sistema legado é ser alimentado por um txt? você não conseguiria alimentá-lo de outra forma?

 

Olá Tiago,

 

Realmente preciso alimentar o legado com TXT.  :oops:

 

Estou usando a função ACBrNFe.NotasFiscais.LoadFromFile(PathdoArquivoxml); para ler o XML e está tudo bem até aqui.

 

Para gerar o TXT, não estava conseguindo, porém usando os arquivos desse tópico consegui gerar o TXT, farei um teste daqui a pouco quanto a exportação para o Legado. 

 

Fiquei na seguinte dúvida agora, devo utilizar qual função para exportar ? 

 

1-  ACBrNFe.NotasFiscais.SaveToTXT(PathParaSalvarTXT)

ou

2- ACBrNFe.NotasFiscais.Items[0].SaveToFile(PathParaSalvarTXT,True);

 

 

abs

Postado

Colegas,

 

Atualizei todos os arquivos que tinha alterado e inclui um novo. Estão anexos no primeiro post. Uma observação importante: a receita corrigiu a validação do emissor de acordo com o manual no caso da inversão de UF e xMun na transportadora (X03).

 

 

Leandro, eu dei uma olhada nas suas alterações. Acho que todas elas estão contempladas agora nos arquivos que eu upei. Eu fiz alguns testes e me parece que a minha alteração não interfere nas demais versões da NFe, mas acho que a sua vai interferir sim, porque você altera a ID de alguns grupos no NFeW.pas (observe que sempre que uma ID mudou eu coloquei um IIF, para não quebrar as versões anteriores da NFe). Por favor, faça alguns testes com os arquivos que eu coloquei no primeiro post e me diga se está funcionando pra você. Acho que vamos conseguir colaborar melhor se mantivermos uma versão apenas das alterações (eu não marquei com comentários onde alterei, mas acho que isso pode ser suprido facilmente com uma ferramenta de diff - o próprio svn/git, provavelmente já serve).

 

Abraços,

Gabriel.

 

Tragam um Oscar para esse homem!  :lol:

 

Baixei os seus arquivos e esta funcionando tudo certinho agora! Testei umas 14 notas e gerou um txt valido em todas.

Realmente as alterações que você fez são bem menos invasivas que as minhas. :)

 

Obrigado Gabriel!

  • Curtir 1
Postado

Olá Tiago,

 

Realmente preciso alimentar o legado com TXT.  :oops:

 

Estou usando a função ACBrNFe.NotasFiscais.LoadFromFile(PathdoArquivoxml); para ler o XML e está tudo bem até aqui.

 

Para gerar o TXT, não estava conseguindo, porém usando os arquivos desse tópico consegui gerar o TXT, farei um teste daqui a pouco quanto a exportação para o Legado. 

 

Fiquei na seguinte dúvida agora, devo utilizar qual função para exportar ? 

 

1-  ACBrNFe.NotasFiscais.SaveToTXT(PathParaSalvarTXT)

ou

2- ACBrNFe.NotasFiscais.Items[0].SaveToFile(PathParaSalvarTXT,True);

 

 

abs

 

Utilize ACBrNFe.NotasFiscais.Items[0].SaveToFile(PathParaSalvarTXT,True);

 

se utilizar a outra, se não me engano, gera o xml.

 

Att

  • Curtir 1
Postado

Também tenho que devolver para o sistema legado no formato TXT.

Com a versão anterior o TXT era gerado completo, agora está gerando sem a linha referente ao bloco "A".

Algum motivo para isso ?

Postado

É como se faltasse um wCampo para "VERSAO" no GeraIde <B01>

No final tem uma rotina que remove todos os campos que não foram substituídos, eliminado totalmente a linha "A".

Dei uma olhada em versões anteriores, mais não encontrei uma que esteja diferente o GeraIde...

 

unit pcnNFeW.pas

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