Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Saudações.

Perdão por recriar um tópico semelhante, mas não encontrei a resposta em outros tópicos abertos com o assunto desejado.

Estou gerando nfce normalmente. Funciona. Ok. Sem problemas.

Vou executar o cancelamento de uma nfce e ele me retorna erro de que o certificado digital não foi carregado.

Segue abaixo código fonte.

 
  if qvndvndEmitiuNfce.AsString = 'Sim' then
    begin
      ACBrNFe1.EventoNFe.Evento.Clear;
      ACBrNFe1.NotasFiscais.Clear;
      ACBrNFe1.NotasFiscais.LoadFromFile(qvndvndnomenfce.AsString);
 
      Danfenfce.FastFile := 'C:\Posirelo\relat\nfcesimples - modelo 2.fr3';
      Danfenfce.MostrarPreview := true;
      ACBrNFe1.Configuracoes.Geral.IdToken := cfgcfgidtoken.AsString;
      ACBrNFe1.Configuracoes.Geral.Token := cfgcfgtoken.AsString;
 
      // numero do lote de envio (somente um exemplo, pode-se utilizar seu proprio controle)
      NumeroLote := 0;
      Protocolo := qvndvndnprot.AsString;
 
      // carregar o xml da nota fiscal eletronica, pode ser omitido
      // showmessage(copy(qvndvndnomenfce.AsString, 28, 52));
      { if not ACBrNFe1.NotasFiscais.LoadFromString(qvndvndnomenfce.AsString) then
        raise Exception.Create('Não foi possível carregar o XML da Nota Fiscal Eletrônica correspondente!'); }
 
      // Criar o cancelamento
 
      ACBrNFe1.EventoNFe.idLote := NumeroLote;
 
      with ACBrNFe1.EventoNFe.Evento.Add do
      begin
        InfEvento.tpAmb := ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpAmb;
        InfEvento.chNFe := copy(qvndvndnomenfce.AsString, 27, 44);
        InfEvento.CNPJ := cfgcfgdoc1.AsString;
        InfEvento.cOrgao := ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.cUF;
        InfEvento.dhEvento := now;
        InfEvento.nSeqEvento := 1;
        InfEvento.tpEvento := teCancelamento;
        InfEvento.detEvento.nProt := Protocolo;
        InfEvento.detEvento.xJust := motivo;
        ACBrNFe1.EnviarEventoNFe(NumeroLote);
      end;
 
O erro ocorre no arquivo acbrnfeconfiguracoes, linha 458. fonte abaixo
 
  if (PCertCarregado <> nil) and (NumCertCarregado = FNumeroSerie) then
    Result := PCertCarregado
  else
  begin
    CoInitialize(nil); // PERMITE O USO DE THREAD
    try
      if DFeUtil.EstaVazio(FNumeroSerie) then
        raise EACBrNFeException.Create('Número de Série do Certificado Digital não especificado !');
 
      Result := nil;
 
A questão que me toca é: Se eu tenho funcionando a emissao do NFCE, o certificado não carregaria junto??
Ou devo carregar o certificado de forma diferente. Se sim, como ou onde??
 
Bem perdido por aqui.
 
No aguardo de uma resposta ou idéia,
 
Claudiomir 
 
Postado

Caro Juliomar.

Obrigado por vossa resposta. Vou procurar anexar o código e não mais colar.

Não, a única coisa que eu uso é (perdão por colar aqui) listado abaixo.

 ACBrNFe1.Configuracoes.Geral.IdToken := cfgcfgidtoken.AsString;
ACBrNFe1.Configuracoes.Geral.Token := cfgcfgtoken.AsString;
 
Quando eu seleciono o certificado, ele fica gravado aqui. É isso que eu estou errando? 
Nesse caso, como eu "carrego" o certificado? 
Desculpe as dúvidas de principiante, mas estou ficando sem idéias.
Grato por vossa resposta,
 
Claudiomir
Postado

Caro Juliomar.

Posso ter me expressado de forma errada.

Tenho uma tela de configurações, onde é feito a seleção do certificado. Ele fica arquivado lá. 

Desculpe postar código aqui.  a Linha de comando é abaixo.

DBEdit13.text := ACBrNFe1.Configuracoes.Certificados.SelecionarCertificado;

ele seleciona e salva nesse campo na base de dados.

abraços

Claudiomir

Postado

Caro Juliomar

Acho que pode ser isso que está faltando.

ACBrNFe1.Configuracoes.Certificados.SelecionarCertificado := cfgcfgnumserie.AsString;

 

Vou tentar aqui. 

Obrigado por vossa ajuda.

 

Claudiomir

Postado

Funcionou... mais ou menos. Err.... não, não funcionou. Ele envia sem erros, processa o lote e me retorna o erro 494.

Dados enviados estão corretos até onde posso ver. Vou anexar o arquivo de retorno. No código fonte, eu especifico que o evento é:

 
        InfEvento.tpEvento := teCancelamento; // erro aqui???
 
Tecnicamente ele deveria enviar 1, correto??
No arquivo de retorno ele acusa que recebeu: 
<cStat>494</cStat>
<xMotivo>Rejeicao: Chave de Acesso inexistente para o tpEvento que exige a existencia da NF-e</xMotivo>
<chNFe>51150411696196000117650010000017581000017584</chNFe>
<tpEvento>110111</tpEvento> // isso está correto???
<nSeqEvento>1</nSeqEvento

 

Bem perdido por aqui.

 

5115041169619600011765001000001758100001758411011101-procEventoNFe.xml

0-ped-evento.xml

0-eve.xml

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