Jump to content

dev botao

ACBrSpedUtils: funChecaIE gerando AV


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

Recommended Posts

  • Membros Pro

Estou tendo dificuldades na geração do PIS/COFINS devido a um erro de Violação de Acesso que ocorre sempre na linha 760 da unit UCBBrSpedUtils.pas

>>> Base_3 := Copy(('0000000000000000' + Trim(Base_2)), Length(('0000000000000000' + Trim(Base_2))) - 13, 14);

O erro ocorre em momentos diferentes, na validação de CNPJ ou CPF. Já percebi inclusive que valida um determinado CPF e em chamadas posteriores para validar novamente o mesmo CPF gera o AV. Não consegui achar nada de errado nos meus fontes, gero todos os blocos normalmente e quando chamo a gravação do bloco zero no qual todos os "participantes" do registro 0150 passam pela validação do CPF/CNPJ ocorre o problema.

Alguém pode me dar alguma dica?? Já passou por isso?? Seria bug do ACBr?

Estou com o ACBr 100% atualizado.

Desde já agradeço.

Link to comment
Share on other sites

  • Consultores

Nunca vi esse erro. Você não conseguiu descobrir exatamente onde acontece o erro? Ou o motivo dele?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Membros Pro

Olá Elton,

Isolei as chamadas à rotina de validação de CPF/CNPJ e peguei o erro novamente em:

function TACBrTXTClass.DFill(Value: Double;

Decimal: Integer = 2;

Nulo: Boolean = false): String;

begin

/// Se o parametro Nulo = true e Value = 0, será retornado '|'

if (Nulo) and (Value = 0) then << breakpoint aqui mas não executou o código do if...

begin

Result := FDelimitador;

Exit;

end;

Result := FDelimitador + FormatCurr('#0.' + StringOfChar('0', Decimal), Value); << após executar esta linha com F8, ao dar F8 nalinha abaixo (end;) a aplicação trava

end;

>>> executei o código FDelimitador + FormatCurr('#0.' + StringOfChar('0', Decimal), Value) com CTRL+F7 antes de executar a linha com F8 e o reultado foi '|10,00000' que é o correto porém, o valor de Result após a execução da linha pode ser visto na imagem em anexo.

Já esgotei minhas possibilidades e nada...

Mais uma vez agradeço a vc. e a quem puder dar alguma dica.

post-282-13548987682695.jpg

Link to comment
Share on other sites

Olá Elton,

Isolei as chamadas à rotina de validação de CPF/CNPJ e peguei o erro novamente em:

function TACBrTXTClass.DFill(Value: Double;

Decimal: Integer = 2;

Nulo: Boolean = false): String;

begin

/// Se o parametro Nulo = true e Value = 0, será retornado '|'

if (Nulo) and (Value = 0) then

begin

Result := FDelimitador;

Exit;

end;

Result := FDelimitador + FormatCurr('#0.' + StringOfChar('0', Decimal), Value);

end;

>>> executei o código FDelimitador + FormatCurr('#0.' + StringOfChar('0', Decimal), Value) com CTRL+F7 antes de executar a linha com F8 e o reultado foi '|10,00000' que é o correto porém, o valor de Result após a execução da linha pode ser visto na imagem em anexo.

Já esgotei minhas possibilidades e nada...

Mais uma vez agradeço a vc. e a quem puder dar alguma dica.

Tente mudar o tipo do retorno para AnsiString assim:


function TACBrTXTClass.DFill(Value: Double; Decimal: Integer = 2; Nulo: Boolean = false): AnsiString;

...

function TACBrTXTClass.DFill(Value: Double;
Decimal: Integer = 2;
Nulo: Boolean = false): AnsiString;
begin
...
end;
[/code]

E nos de um retorno se funcionou ou não.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link to comment
Share on other sites

  • Membros Pro

Isaque, obrigado pela sua atenção...

Acabei de descobrir o problema, não tem nada a ver com o ACBr... acho que já torrei muitos neurônios com o SPED... o que ocorreu foi que precisei alterar o tamanho de um campo no banco de 2 para 6 caracteres e possuia um objeto DataSet com um campo pesistente o qual não havia sido alterado. O AV ocorria em pontos aleatórios da minha rotina de geração do PIS/COFINS, algo meio fantasmagórico.. rsrs.. mas parece que era esta a fonte do problema, ajustei o dito cujo e sumiu o AV :-D

De qualquer forma obrigado, tenho o PVA pela frente ainda...

Abraço

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.