Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Consultores
Postado

Bom dia Akai,

 

Isso é muito estranho uma vez que a classe TIdendificaRps faz parte da geração do XML.

 

Fiz uma alteração no destructor TACBrNFSe.Destroy;

 

Vamos ver se vai resolver o problema.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

entao...

 

se eu limpar o FWebservice primeiro ai da pau na hora de limpar o FNotasFiscais

 

como se já tive destruido o item...so que eu coloquei um

 if FIdentificacaoRps <> nil
 then FIdentificacaoRps.Free;
 
e ele diz que tem algo ainda e tenta destruir...dando o erro....

 

 

Massao Aihara

Postado

Akai e Italo, eu estou com problema parecido, em um luga diferente, até tinha aberto um tópico, mas depois li as mensagens aqui:

 

 

Olá pessoal. Estou com um problema, tanto no meu software como no Demo. Ao consultar uma NFSe por RPS pelo segunda vez, ocorre um acess violation  nas linhas:

if Assigned(NFSeRetorno)
then NFSeRetorno.Free;

 na função TNFSeConsultarNfseRPS.Executar, linha 3274. Trabalho com a prefeitura de Ponta Grossa, provedor FintelISS.

 

Obrigado.

 

Assim como no problema que o Akai relatou, é na hora de dar o Free tbem.

Postado (editado)

então,...

pelo que eu fui debugando, 

 

no Destroy do ACBrNFSe quando ele da o "FNotasFiscais.Free;"

ele limpa o TIdentificacaoRps do fonte pnfsNFSe no TNFSe.Destroy;

 

ai em seguida vai tentar o "FWebServices.Free;" no destroy do ACBrNFSe...

e passa no mesmo lugar, ele da o erro...

 

o estranho é que tem dados na 1º vez que limpa, e na segunda só aparece o tipo...

 

no FNotasFiscais.Free; o TIdentificacaoRPS esta dessa maneira: ('204', 'F', trRPS)

no FWebServices.Free; esta assim ('', '', trRPS)....

 

se passar o  FWebServices.Free; primeiro ele inverte a coisa...

dando erro sempre no segundo passo ...

Editado por Akai

Massao Aihara

Postado

Akai e Italo, no meus testes com o Demo, consegui eliminar o erro na segunda Consulta por RPS e o erro de ponteiro inválido qdo fechava o programa comentando a seguinte linha:

 

FCompNfse.Free;

 

na procedure TListaNfse.Destroy, no fonte pnfsConsNfseporRpsResposta.

 

Agora não sei o que isso pode influenciar no resto do componente.

 

Consegue fazer esse teste ai Akai, pra ver se resolve pra vc tbem?

Postado

continuei a debugar os destroys, e cheguei num ponto que o Akai comentou ali acima. No meu caso, qdo faço uma segunda consulta por RPS, o componente cai duas vezes no TNFSe.Destroy (fonte pnfsNFSe), a primeira vai ok, na segunda, dá o acess violation no FIdentificacaoRps.Free;

 

qdo comenta aquela linha, ele não passa a segunda vez pelo TNFSe.Destroy, mas é uma solução tosca, afinal ele chama mais coisas que podem ser importantes.

Postado

No outro tópico que tinha criado antes de ver que aqui já estava sendo discutido o assunto, tem mais um usuário que está com o mesmo problema:

 

 

Infelizmente me faltou conhecimento pra prosseguir e descobrir em que momento perde a referência para o FIdentificacaoRps.

Postado

Bom dia a todos,

 

Somente agora atualizei os fontes e estou a testar o provedor ISSNet, encontrei os seguintes problemas:

 

1 - O problema e a solução passada é necessária (ACBrNFSeWebServices.pas).

 

2 - O erro "Arquivo enviado fora da estrutura do arquivo XML de entrada." relatada também acontece, e deve ser incluída a condição "DFeUtil.SeSenao((VersaoXML = '2') or (AProvedor = proISSNet)," em todos os métodos e somente estava no Gera_DadosMsgEnviarLote (pnfsNFSeG.pas).

 

3 - Incluída a restrição para o ISSNet não consultar o RPS após o cancelamento (ACBrNFSeWebServices.pas).

 

Vou anexar minhas alterações.

 

  • 8 meses depois ...
Postado

Aconteceu um erro parecido comigo quando tentei gerar e enviar um lote pela segunda vez. No meu caso, na unit ACBrNFSeWebServices tem a função TNFSeConsultarLoteRPS.Executar e na linha 3334 existe o comando:

 

if Assigned(NFSeRetorno)

 then NFSeRetorno.Free; 

 

Quando executa o NFSeRetorno.Free, chama o TListaNfse.Destroy da unit pnfsConsLoteRpsResposta, e o erro ocorre quando cai na linha FCompNfse.Free;

Comentei essa linha e aparentemente tudo continuou normal, mesmo executando várias vezes seguidas.

 

Será que pode ocorrer algum problema?

  • Consultores
Postado

Boa tarde,

 

Alterei o Destroy:

 

destructor TListaNfse.Destroy;
begin
  if Assigned(FCompNfse)
   then FCompNfse.Free;
  FMsgRetorno.Free;
 
  inherited;
end;
 

Em vez de comentar inclui o if em negrito.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

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