Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Prezados, desde sexta feira, após receber algumas atualizações ACBr, uma rotina de geração de um determinado item começou ocorrer o erro Argument out of Range,

debugando o código me parece que a Coleção não está sendo criada corretamente.

O código como está:

function TCTE.GerarCTE...

 var

  i, x, z: Integer;
  CTE: Conhecimento;
  DocNFe: TInfNFeCollectionItem;
  UndCarga: TinfUnidCargaCollectionItem;
begin
      ACBrCTe.Conhecimentos.Clear;
      CTE := ACBrCTe.Conhecimentos.Add;
      CTE.CTE.ide. ...varias rotinas de geração ... (para receber os dados...)
      CTE.CTE.ide.Toma.
      CTE.CTE.ide.Toma4.
      CTE.CTE.compl.xEmi := 'Emitente....'
      ... (até aqui está funcionando)....

       //aqui criando coleções para informar as chave NFe

       for i  := 0 to lista_inf_nfe.count -1 do
       begin
           DocNFe := CTE.CTE.infCTeNorm.infDoc.infNFe.Add;
           DocNFe.Chave := EntyCTE.cte_inf_nfe.Chave;   //:-oAQUI O ERRO
           DocNFe.PIN := EntyCTE.cte_inf_nfe.PIN;

           ..... codigo abaixo para add unidades
           for x := 0 to lista_inf_nfe.unidadesCarga.Count -1 do
          begin  ...codigo continua......

 

  • Moderadores
Postado
31 minutos atrás, Leonardo Quinino disse:

           DocNFe.Chave := EntyCTE.cte_inf_nfe.Chave;   //:-oAQUI O ERRO

Tentei simular o erro com o que posso replicar do seu trecho de código:

uses
  ACBrCTeConhecimentos, pcteCTe;

procedure TForm3.Button1Click(Sender: TObject);
var
  i, x, z: Integer;
  CTE: Conhecimento;
  DocNFe: TInfNFeCollectionItem;
  UndCarga: TinfUnidCargaCollectionItem;
begin
  ACBrCTe.Conhecimentos.Clear;
  CTE := ACBrCTe.Conhecimentos.Add;
  CTE.CTE.compl.xEmi := 'Emitente....';

  for i := 0 to 9 do
  begin
    DocNFe := CTE.CTE.infCTeNorm.infDoc.infNFe.Add;
    DocNFe.Chave := ''; //EntyCTE.cte_inf_nfe.Chave;
    DocNFe.PIN := ''; //EntyCTE.cte_inf_nfe.PIN;
  end;
end;

Executou normalmente.

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
16 minutos atrás, luisclaudio_jr disse:

Notei que aqui acontece o mesmo problema, porém é algo que ocorre esporadicamente e se tentar fazer o reenvio acaba indo.. Vou analisar essa função

Ate´ percebi que se fizer .

 DocNFe := CTE.CTE.infCTeNorm.infDoc.infNFe.Add;
 DocNFe := CTE.CTE.infCTeNorm.infDoc.infNFe.Add;

passa, porém ao montar o XML. o primeiro item (obviamente ficará vazio, porém não ocorre o erro de argument  ou of range).

Estou procurando solução, assim que vou resolver e certamente irei, posto aqui.

Postado

Conforme havia prometido.... resolvido o problema.

Quando o colega disse que no caso dele era esporadicamente, desconfiei que tinha outra coisa interferindo. 

O problema ocorria porque tentava enviar um CTE com InfNFe  e InfOutros..

Parece que pela regras,  só pode ser feito um ou outro.

Isolei o CTe, para fazer somente um tipo e não ocorreu mais.

 

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