Ir para conteúdo
  • Cadastre-se

dev botao

Erro Criando ACBrNFe (Versão Cabecalho Não reconhecida)


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

Recommended Posts

Olá a Todos,

estou enfrentando o seguinte problema, já revisei meu código e não vejo outra forma de Corrigir o seguinte problema.

Já utilizo o ACBrNFe faz muito tempo, atualmente estou na versão 2.0

Estou reescrevendo meu programa e tenho o ACBrNFe criado da seguinte forma:

 private

    { Private declarations }

    FACBrNFeDANFEQuick: TACBrNFeDANFEQR;

    FACBrNFe: TACBrNFe;

  public

    { Public declarations }

    function ACBrNFe(const pCriar: Boolean): TACBrNFe;

  end;


function TFrm_Principal.ACBrNFe(const pCriar: Boolean): TACBrNFe;

begin

  if pCriar and not Assigned(FACBrNFe) then

  begin

    FACBrNFe := TACBrNFe.Create(Self);

    if not Assigned(FACBrNFeDANFEQuick) then

      FACBrNFeDANFEQuick := TACBrNFeDANFEQR.Create(Self);

    FACBrNFeDANFEQuick.ExpandirLogoMarca := False;

    FACBrNFeDANFEQuick.MostrarStatus := True;

    FACBrNFeDANFEQuick.Sistema := Caption;

    FACBrNFeDANFEQuick.Usuario := Usuario;

    FACBrNFeDANFEQuick.CasasDecimais._qCom := 2;

    FACBrNFeDANFEQuick.CasasDecimais._vUnCom := 2;

    FACBrNFeDANFEQuick.ImprimirDescPorc := False;

    FACBrNFe.DANFE := FACBrNFeDANFEQuick;

   TDtm_ConfiguracoesComp.ConfiguraNotaFiscalEletronica;

  end;

  Result := FACBrNFe;

end;


class function TDtm_ConfiguracoesComp.ConfiguraNotaFiscalEletronica: Boolean;

var

  lArqINI: String;

  lDtm_ConfiguracoesComp: TDtm_ConfiguracoesComp;

  lMsg: String;

  lIdx: Integer;

  lPortas: TStrings;

  lACBrNFe: TACBrNFe;

begin

  lDtm_ConfiguracoesComp := nil;

  TDtm_ConfiguracoesComp.CriaEntidadeConfiguracoesComp(nil, lDtm_ConfiguracoesComp);

  try

    lDtm_ConfiguracoesComp.AcionaFiltro(EmptyStr, True, TSistema.NomeComputador);

    Result := lDtm_ConfiguracoesComp.TemRegistros and (TSistema.NomeComputador = lDtm_ConfiguracoesComp.ClientDataSetNOME_COMPUTADOR.AsString);

    if Result then

    begin

      try

        lACBrNFe := Frm_Principal.ACBrNFe(True);


        lACBrNFe.Configuracoes.Certificados.NumeroSerie := lDtm_ConfiguracoesComp.ClientDataSetNRO_CERTIFICADO_NFE.AsString;

        if TSistema.StringEmBranco(lACBrNFe.Configuracoes.Certificados.NumeroSerie) then

          lACBrNFe.Configuracoes.Certificados.NumeroSerie := lACBrNFe.Configuracoes.Certificados.SelecionarCertificado;

      except on E: Exception do

        begin

          Frm_Principal.DestroiACBrNFe;

          Abort;

        end;

      end;


      lACBrNFe.Configuracoes.Certificados.Senha := lDtm_ConfiguracoesComp.ClientDataSetSENHA_NFE.AsString;


      if (lDtm_ConfiguracoesComp.ClientDataSetBASE_EMISSAO_NFE.AsString = 'HM') then

        lACBrNFe.Configuracoes.WebServices.Ambiente := taHomologacao

      else

      if (lDtm_ConfiguracoesComp.ClientDataSetBASE_EMISSAO_NFE.AsString = 'PR') then

        lACBrNFe.Configuracoes.WebServices.Ambiente := taProducao

      else

      if TSistema.StringEmBranco(lDtm_ConfiguracoesComp.ClientDataSetWEBSERVICE_NFE) then

        lACBrNFe.Configuracoes.WebServices.UF := lDtm_ConfiguracoesComp.ClientDataSetWEBSERVICE_NFE.AsString

      else

      begin

        Frm_Principal.DestroiACBrNFe;

        Abort;

      end;


      if TSistema.DiretorioExiste(lDtm_ConfiguracoesComp.ClientDataSetDIRETORIO_NFE.AsString) then

        lACBrNFe.Configuracoes.Geral.PathSalvar := lDtm_ConfiguracoesComp.ClientDataSetDIRETORIO_NFE.AsString

      else

        lACBrNFe.Configuracoes.Geral.PathSalvar := TSistema.CaminhoPrograma;


      if (lDtm_ConfiguracoesComp.ClientDataSetBASE_EMISSAO_NFE.AsString = 'PR') then

      begin

        if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE\') then

          if not TSistema.CriaDiretorio(lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE\') then

            raise Exception.Create('A emissão da nota fiscal eletrônica exige um diretório de reposição de arquivos.'+#13#10+'Não foi possível criar o diretório, Verifique ou entre em contato com o administrador do sitema.');

        lACBrNFe.Configuracoes.Geral.PathSalvar := lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE\';

      end

      else

      if (lDtm_ConfiguracoesComp.ClientDataSetBASE_EMISSAO_NFE.AsString = 'HM') then

      begin

        if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE_TESTE\') then

          if not TSistema.CriaDiretorio(lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE_TESTE\') then

            raise Exception.Create('A emissão da nota fiscal eletrônica exige um diretório de reposição de arquivos.'+#13#10+'Não foi possível criar o diretório, Verifique ou entre em contato com o administrador do sitema.');

        lACBrNFe.Configuracoes.Geral.PathSalvar := lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE_TESTE\';

      end;


      lACBrNFe.Configuracoes.Geral.PathSchemas := TSistema.CaminhoPrograma + 'Schemas\';


      if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Geral.PathSchemas) then

        raise Exception.Create('A emissão da nota fiscal eletrônica exige um diretório de schemas para geração de arquivos XML.'+#13#10+'Não foi possível criar o diretório, Verifique ou entre em contato com o administrador do sitema.');


      lACBrNFe.Configuracoes.Arquivos.PathNFe := lACBrNFe.Configuracoes.Geral.PathSalvar + 'NFE\';

      lACBrNFe.Configuracoes.Arquivos.PathCan := lACBrNFe.Configuracoes.Geral.PathSalvar + 'CAN\';

      lACBrNFe.Configuracoes.Arquivos.PathInu := lACBrNFe.Configuracoes.Geral.PathSalvar + 'INU\';


      if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Arquivos.PathNFe) then

        TSistema.CriaDiretorio(lACBrNFe.Configuracoes.Arquivos.PathNFe);

      if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Arquivos.PathCan) then

        TSistema.CriaDiretorio(lACBrNFe.Configuracoes.Arquivos.PathCan);

      if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Arquivos.PathInu) then

        TSistema.CriaDiretorio(lACBrNFe.Configuracoes.Arquivos.PathInu);


      if (lDtm_ConfiguracoesComp.ClientDataSetFORMA_EMISSAO_NFE.AsString = 'NR') then

        lACBrNFe.Configuracoes.Geral.FormaEmissao := teNormal

      else

      if (lDtm_ConfiguracoesComp.ClientDataSetFORMA_EMISSAO_NFE.AsString = 'CT') then

        lACBrNFe.Configuracoes.Geral.FormaEmissao := teContingencia

      else

      begin

        Frm_Principal.DestroiACBrNFe;

        Abort;

      end;        


      lACBrNFe.Configuracoes.WebServices.Visualizar := True;

      lACBrNFe.Configuracoes.Geral.Salvar := True;


      if not lDtm_ConfiguracoesComp.ClientDataSetLOGO_NFE.IsNull then

      begin

        lDtm_ConfiguracoesComp.ClientDataSetLOGO_NFE.SaveToFile(TSistema.CaminhoPrograma + 'LOGO.JPG');

        if TSistema.ArquivoExiste(TSistema.CaminhoPrograma + 'LOGO.JPG') then

          lACBrNFe.DANFE.Logo := TSistema.CaminhoPrograma + 'LOGO.JPG';

      end;


      if not TSistema.StringEmBranco(lDtm_ConfiguracoesComp.ClientDataSetWEBSERVICE_NFE) then

        lACBrNFe.Configuracoes.WebServices.UF := lDtm_ConfiguracoesComp.ClientDataSetWEBSERVICE_NFE.AsString

      else

      begin

        Frm_Principal.DestroiACBrNFe;

        Abort;

      end;


      lACBrNFe.Configuracoes.Geral.Salvar := True;

    end

    else

      Frm_Principal.DestroiACBrNFe;      

    lDtm_ConfiguracoesComp.FecharEntidade;

  finally

    FreeAndNil(lDtm_ConfiguracoesComp);

    Result := not (Frm_Principal.ACBrNFe(False) = nil);

  end;

end;

PROBLEMA: AO RODAR O PROGRAMA, TENTEI VERIFICAR O STATUS DO WEBSERVICE DA NOTA FISCAL 2.0. PORÉM ELE ESTÁ SEMPRE TENTADO BUSCAR PELA VERSÃO 1.0.

ALGUÉM SABE COMO FAÇO PARA APONTAR NAS CONFIGURAÇOES DO COMPONENTE QUAL VERSÃO QUERO UTILIZAR ???

ERRO RETORNADO PELO COMPONENTE:

COD: 239 - REJEICAO CABECALHO - VERSÃO DO ARQUIVO XML NÃO SUPORTADA.

Link para o comentário
Compartilhar em outros sites

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