Ir para conteúdo
  • Cadastre-se

dev botao

ACBrSpedUtils: funChecaIE gerando AV


JLuis
  • Este tópico foi criado há 4521 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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