Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Boa tarde.

Estou com este problema e já vi que tem alguns posts sobre este erro e vendo as soluções tentei aplicar mas sem sucesso.

O problema é que este erro só ocorre em dois clientes, coincidência ou não, os dois da Paraíba. O mais estranho é que um deles trabalhou uns 10 ou 15 dias com  o programa sem problemas e depois começou a dar o erro e tiver que voltar a versão (a versão mais antiga tinha também um fonte mais antigo do acbr). Na minha máquina não consigo reproduzir o problema. Dá tudo certo. A parte do fonte que dá o erro é esta.

procedure TACBrDFe.LerServicoDeParams(const ModeloDFe, UF: String;
  const TipoAmbiente: TpcnTipoAmbiente; const NomeServico: String;
  var Versao: Double; var URL: String);
var
  Sessao, ListaSessoes, NomeSchema, ArqSchema: String;
  VersaoAchada, VersaoSchema: Double;
begin
  if EstaVazio(ModeloDFe) then
    raise EACBrDFeException.Create('ModeloDFe não pode ser vazio');

  if EstaVazio(UF) then
    raise EACBrDFeException.Create('UF não pode ser vazia');

  Sessao := ModeloDFe + '_' + UF + '_' + IfThen(TipoAmbiente = taProducao, 'P', 'H');
  VersaoAchada := Versao;

  LerServicoChaveDeParams( Sessao, NomeServico, VersaoAchada, URL);

Vou anexar um xml gerado na hora do erro. Me parece normal. Teria como eu alterar o fonte para caso a variável UF chegue vazia ela recarregar de algum lugar? Outra dúvida: pode o certificado interferir nessa passagem de valor para a variável UF?

Gostaria de uma luz, pois além de não conseguir reproduzir o erro temos vários clientes trabalhando normalmente.

Obrigado.

25170608602351000184650100000115831000115834-nfe.xml

  • Moderadores
Postado
58 minutos atrás, magnosystem disse:

Gostaria de uma luz, pois além de não conseguir reproduzir o erro temos vários clientes trabalhando normalmente.

Um erro comum que causa essa mensagem é chamar novamente o NotasFiscais.Add para preencher alguma tag específica, isso gera uma segunda nota no componente. O XML da primeira grava normal, mas ocorre erro de validação na segunda com essa mensagem.

Coloque antes de chamar o método Enviar:

ShowMessage(IntToStr(ACBrNFe1.NotasFiscais.Count));

Assim saberá quantas notas está tentando enviar.

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

Projeto ACBr

 

 

  • Membros Pro
Postado

Obrigado pela dica BigWins, mas eu trabalho com o componente TAcbrECFVirtualNFCe.

procedure TPDV.ECFVirtualNFCeQuandoFecharDocumento(NFe: TNFe);
Begin
With NFe do
Begin
   Ide.nNF := StrtoInt(UFuncoesECF.NumeroCOOECF);
   Ide.cNF := StrtoInt(UFuncoesECF.NumeroCOOECF);
   Ide.cUF := UFtoCUF(Datacliente.TBPadrao.FieldByName('ESTADO').AsString);
   Ide.natOp := 'Nota Fiscal Eletrônica ao Consumidor';
   Ide.cMunFG := Datacliente.TBPadrao.FieldByName('CODIGOMUNICIPIO').AsInteger;
   ...
End;
End;

E o estranho é que só em dois clientes ocorre isto.

  • Moderadores
Postado
6 minutos atrás, magnosystem disse:

Ide.cUF := UFtoCUF(Datacliente.TBPadrao.FieldByName('ESTADO').AsString);

Se essa tag não estiver preenchida corretamente vai gerar aquela mensagem.

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

Projeto ACBr

 

 

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