Ir para conteúdo
  • Cadastre-se

Jerson Seling

Membros
  • Total de ítens

    15
  • Registro em

  • Última visita

Posts postados por Jerson Seling

  1. Passei um tempo sem mexer no SPED ECD, e os fontes que eu tinha do ACBr eram esses que eu tinha alterado e usado o formatador, por isso não tinha feito até hoje as alterações sem usar o formatador. Porém hoje atualizei o ACBr para o trunk 2 e meu projeto ficou sem esses fontes alterados. Ai alterei eles de novo só que desta vez sem o formatador. Seguem em anexo eles.

    Também atualizei o Exemplo Delphi do ACBrSPEDContabil, ele não estava compilando por algumas chamadas de funções estarem desatualizadas (o método de salvar o arquivo e o preenchimento do reg I051). Adicionei também mais um registro 0150 e 0180 para visualizar melhor o problema que estava acontecendo neles e que com as alterações que fiz não ocorrem mais. Também ativei os ScrollBars dos memos do projeto para visualizar melhor os textos.

    Abraços e feliz ano novo!

    ACBrSPEDContabil.rar

    • Curtir 1
  2. Oi boa tarde,

    Eu alterei os fontes da ACBr para resolver esse problema.

    Alterei os arquivos ACBrECDBloco_0, ACBrECDBloco_0_Class e ACBrSpedContabil.

    Me baseei no código do I050 para fazer essa alteração: passar o registro 0180 que estava

    como "irmão" do 0150, para "filho". Os registros do bloco 9 (contadores) estão OK.

     

    Em anexo estão esses arquivos com as alterações. Passei o arquivo texto no validador e esse problema não ocorre mais.

    Alterados.rar

  3. Bom dia,

    Na criação do ECD estou tendo o erro de "Registro/Campo não informado ou inválido" no registro 0180: IDENTIFICAÇÃO DO RELACIONAMENTO COM O PARTICIPANTE

    Vendo o arquivo, parece que o ACBr não está tratando o 0180 como filho do 0150.

    Em vez de gerar isto por exemplo:

    |0150|5-OS2328-PFJ004|PFJ 004|00105|61064911000177||00000000000|SP|535054653118||3550308|1122|SUFRAMA|
    |0180|04|15022004||
    |0150|5-OS2328-PFJ005|PFJ 005|00105|||00000000000|SP|||3550308|1122|000000000|
    |0180|09|15022004||

    Ele está gerando isto:

    |0150|5-OS2328-PFJ004|PFJ 004|00105|61064911000177||00000000000|SP|535054653118||3550308|1122|SUFRAMA|
    |0150|5-OS2328-PFJ005|PFJ 005|00105|||00000000000|SP|||3550308|1122|000000000|
    |0180|04|15022004||
    |0180|09|15022004||

    Esses exemplos fiz com o demo que vem na ACBr para SPED Contábil.

    Alterando na geração do bloco 0 do exemplo para que ele crie mais um participante, assim:

        with Registro0150.New do
        begin
          COD_PART := '5-OS2328-PFJ004';
          NOME := 'PFJ 004';
          COD_PAIS := '00105';
          CNPJ := '61064911000177';
          UF := 'SP';
          IE := '535054653118';
          COD_MUN := 3550308;
          IM := '1122';
          SUFRAMA := 'SUFRAMA';
          with Registro0180.New do
          begin
            COD_REL := '04';
            DT_INI_REL := StrToDate('15/02/2004');
          end;
        end;
    
        with Registro0150.New do
        begin
          COD_PART := '5-OS2328-PFJ005';
          NOME := 'PFJ 005';
          COD_PAIS := '00105';
          CNPJ := '';
          UF := 'SP';
          IE := '';
          COD_MUN := 3550308;
          IM := '1122';
          SUFRAMA := '';
          with Registro0180.New do
          begin
            COD_REL := '09';
            DT_INI_REL := StrToDate('15/02/2004');
          end;
        end;

     

    O que é mais estranho ainda, é que o validador não acusa erro na estrutura do arquivo! Ele simplesmente ignora esses 0180 que ficaram soltos!

    Qualquer ajuda, agradeço.

     

     

     

     

  4. Mais uma duvida, vi na função WriteRegistroI050 que aparentemente as linhas do I053 não estão sendo contadas para ser salvas no registro 9900. 

    procedure TACBrSPEDContabil.WriteRegistroI050;
    begin
       Bloco_I.WriteRegistroI050;
       if Bloco_I.RegistroI050.Count > 0 then
       begin
          with Bloco_9.Registro9900.New do
          begin
             REG_BLC := 'I050';
             QTD_REG_BLC := Bloco_I.RegistroI050.Count;
          end;
       end;
       if Bloco_I.RegistroI051Count > 0 then
       begin
          with Bloco_9.Registro9900.New do
          begin
             REG_BLC := 'I051';
             QTD_REG_BLC := Bloco_I.RegistroI051Count;
          end;
       end;
       if Bloco_I.RegistroI052Count > 0 then
       begin
          with Bloco_9.Registro9900.New do
          begin
             REG_BLC := 'I052';
             QTD_REG_BLC := Bloco_I.RegistroI052Count;
          end;
       end;
    end;
    

    A função é assim mesmo ou está faltando o contador para o I053? 

  5. Tentei gerar o registro I053 e começou a ocorrer erro de violação de acesso, então vi no OnCreate do I050 que a lista do I053 não estava sendo criada.

     

    Sugiro alterar:

    
    constructor TRegistroI050.Create;
    begin
       FRegistroI051 := TRegistroI051List.Create;
       FRegistroI052 := TRegistroI052List.Create;
    end;
    
    destructor TRegistroI050.Destroy;
    begin
      FRegistroI051.Free;
      FRegistroI052.Free;
      inherited;
    end;
    

    Por:

    constructor TRegistroI050.Create;
    begin
       FRegistroI051 := TRegistroI051List.Create;
       FRegistroI052 := TRegistroI052List.Create;
       FRegistroI053 := TRegistroI053List.Create;
    end;
    
    destructor TRegistroI050.Destroy;
    begin
      FRegistroI051.Free;
      FRegistroI052.Free;
      FRegistroI053.Free;
      inherited;
    end;
    

    Abraços

  6. Outra consideração é que tanto o ECFTeste quanto as aplicações que fiz não funcionaram dentro de uma sessão de acesso remoto do windows server, dá um erro de "Communication error 5: Acesso Negado", embora eu consiga fazer todo o resto por essas sessões. Tive que testar essas funções com a aplicação que fiz rodando no meu note mesmo, e não no servidor. Se pudessem me dizer pq esse erro acontece, tmb agradeceria. ;)

  7. Conforme aconselhado, mudei o código para:

     

    procedure TForm1.Button1Click(Sender: TObject);
    var
      dtIni, dtFim: TDateTime;
      strCaminho: string;
    begin
     
      ACBrECF1.Modelo := ecfDaruma;
      ACBrECF1.Device.Porta := 'COM5';
      ACBrECF1.Device.Baud := 115200;
      ACBrECF1.Device.TimeOut := 10;
     
      dtIni := strtodate('22/09/2014');
      dtFim := strtodate('22/09/2014');
      //strCaminho := 'C:\tmp\';
      strCaminho := 'C:\tmp\ARQUIVO_NFG.txt';
     
      ACBrECF1.Ativar();
     
      ACBrECF1.PafMF_MFD_Cotepe1704(dtIni, dtFim, strCaminho);
     
      showmessage('Arquivo gerado com sucesso!');
     
      ACBrECF1.Desativar();
     
    end;
     
     

    O arquivo gerado validou perfeitamente, porém me restaram algumas dúvidas. Pq o CAT52 não funcionou e o Cotepe1704 funcionou? Pq o CAT52 do ECFTeste funciona e no meu programa não? 

     

    De qualquer forma, muito obrigado pela ajuda, desculpa o incômodo.

  8. Fiz uma aplicação só com o que precisava, não configurei em tempo de desenho nenhum componente, só arrastei para o form.

     

    procedure TForm1.Button1Click(Sender: TObject);
    var
      dtIni, dtFim: TDateTime;
      strCaminho: string;
    begin
     
      ACBrECF1.Modelo := ecfDaruma;
      ACBrECF1.Device.Porta := 'COM5';
      ACBrECF1.Device.Baud := 115200;
      ACBrECF1.Device.TimeOut := 10;
     
      dtIni := strtodate('22/09/2014');
      dtFim := strtodate('22/09/2014');
      strCaminho := 'C:\tmp\';
     
      ACBrECF1.Ativar();
     
      ACBrECF1.PafMF_GerarCAT52(dtIni, dtFim, strCaminho);
     
      showmessage('Arquivo gerado com sucesso!');
     
      ACBrECF1.Desativar();
     
    end;
     
    O arquivo segue não validando. Tem alguma propriedade do ACBrECF que eu deva alterar? Vi a das casas decimais (DecimaisPreco), coloquei 2, mas segue dando o mesmo erro (acho q ela é só serve na hora de emitir um cupom não é?).
  9. Oi, boa tarde.

     

    Estou com um problema, provavelmente alguma configuração que não fiz no ACBrECF. É o seguinte, quando gero o arquivo do CAT52 pelo exemplo ECFTeste ele valida no programinha Nota Fiscal Gaúcha Desktop, perfeitinho. Porém quando gero pela minha aplicação, ele não valida, inclusive o tamanho do arquivo fica menor. Na validação diz "Campo Numérico com Valor Inválido - '0' " Coloco os dois executáveis um do lado do outro, usando as mesmas DLLs, no caso da Daruma, e mesmo assim não deu. Coloquei em anexo o print do programa de validação e também os arquivinhos gerados pelo ECFTeste e pela minha aplicação.

     

    Alguém me ajuda?

    Desde já agradeço.

    post-10773-0-58846800-1411665398_thumb.p

    CAT52.rar

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