Ir para conteúdo
  • Cadastre-se

dev botao

erro ao gerar TXT padrao sefaz


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

Recommended Posts

  • Membros Pro

Ola Sr do Acbr, ao tentar gerar o TXT, com ACBR ultima versao,
no padrao sefaz houve o erro abaixo, no codigo tenta converter para UTF8 o TXT e ainda some com a primeira linha

arquivo gerado com  erro:

<?xml version="1.0" encoding="UTF-8"?>A|3.10|NFe35170921798000000159550010000012101000012108
B|35|00001210|VENDA DE MERC. P/ FORA DO ESTADO AD TERC|0|55|1|1210|2017-09-18T21:15:30-03:00|2017-09-18T21:15:30-03:00|1|2|3550308|1|1|8|2|1|1|9|0|3.10.3||
C|
.
.

arquivo como deveria ser:

NOTA FISCAL|1
A|3.10|NFe35170921798000000159550010000012101000012108
B|35|00001210|VENDA DE MERC. P/ FORA DO ESTADO AD TERC|0|55|1|1210|2017-09-18T21:15:30-03:00|2017-09-18T21:15:30-03:00|1|2|3550308|1|1|8|2|1|1|9|0|3.10.3||
C|
.
.

a pergunta é, voceis não farão mais correções disso?

ou faltou eu setar alguma variavel....para sair correto...


 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Olá André, da forma que esta no demo da NFE do ACBR funciona, mas eu usei outra forma,  quando é GerarTXTSimultaneamente..e aí estava com erro...

fiz umas mudanças no componente e agora esta funcionado ok...

segue como fiz , nao sei se esta certo..por aqui resolveu

function NotaFiscal.GravarTXT(NomeArquivo: String; PathArquivo: String): Boolean;
var
  ATXT: String;
  i : integer;
begin
  FNomeArq := CalcularNomeArquivoCompleto(NomeArquivo, PathArquivo);
  ATXT := GerarTXT;
//alterado aqui em 20-09-2017 por Geanjesus, para acrescentar a 1 linha
  i := self.Collection.Count;
  ATXT := 'NOTA FISCAL|' + inttostr(i) + #13#10 + ATXT;
  Result := TACBrNFe(TNotasFiscais(Collection).ACBrNFe).Gravar(
    ChangeFileExt(FNomeArq, '.txt'),ATXT,'', False);  //estou passando false aqui para controlar o UTF8 do TXT
end;


function TACBrDFe.Gravar(NomeArquivo: String; ConteudoXML: String;
  aPath: String; ConteudoEhUTF8: Boolean): Boolean;
var
  UTF8Str, SoNome, SoPath: String;
begin
  Result := False;
  try
    SoNome := ExtractFileName(NomeArquivo);
    if EstaVazio(SoNome) then
      raise EACBrDFeException.Create('Nome de arquivo não informado');

    SoPath := ExtractFilePath(NomeArquivo);
    if EstaVazio(SoPath) then
      SoPath := aPath;
    if EstaVazio(SoPath) then
      SoPath := FPConfiguracoes.Arquivos.PathSalvar;

    SoPath := PathWithDelim(SoPath);

    ConteudoXML := StringReplace(ConteudoXML, '<-><->', '', [rfReplaceAll]);
    { Sempre salva o Arquivo em UTF8, independente de qual seja a IDE...
      FPC já trabalha com UTF8 de forma nativa }
    if ConteudoEhUTF8 and (not XmlEhUTF8(ConteudoXML)) then
      UTF8Str := '<' + ENCODING_UTF8 + '>' + ConteudoXML
    else
// Alterado aqui em 19-09-2017 por Geanjesus, pois ConteudoEhUTF8 = False somente quando TXT e
//     nao pode acrescentar TAG UTF8 de XML...estava gerando errado...
      if not ConteudoEhUTF8  then
         UTF8Str := NativeStringtoUTF8(ConteudoXML)
      else
         UTF8Str := ConverteXMLtoUTF8(ConteudoXML);

    if not DirectoryExists(SoPath) then
      ForceDirectories(SoPath);

    NomeArquivo := SoPath + SoNome;

    WriteToTXT(NomeArquivo, UTF8Str, False, False);
    Result := True;
  except
    on E: Exception do
      GerarException('Erro ao salvar.', E);
  end;
end;

 

Link para o comentário
Compartilhar em outros sites

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