Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa Tarde.

 

Estou gerando a Nota Fiscal gaúcha com uma elgin K e ocorre o seguinte erro:
Erro ao executar Elgin_GeraArquivoATO17Binario.  Cod.: 16393
 
Baixei a dll "elgin.dll" atualizada do próprio site da ELGIN, mas mesmo assim o erro persiste.
Utilizo a seguinte chamada:
ACBrECF.PafMF_GerarCAT52(FramePeriodo.DataInicial, FramePeriodo.DataFinal, edtCaminho.Text);
 
PS: O caminho do arquivo é apenas o diretório, não informo o nome do mesmo.
 
O que pode ser?
  • Moderadores
Postado

 

Boa Tarde.

 

Estou gerando a Nota Fiscal gaúcha com uma elgin K e ocorre o seguinte erro:
Erro ao executar Elgin_GeraArquivoATO17Binario.  Cod.: 16393
 
Baixei a dll "elgin.dll" atualizada do próprio site da ELGIN, mas mesmo assim o erro persiste.
Utilizo a seguinte chamada:
ACBrECF.PafMF_GerarCAT52(FramePeriodo.DataInicial, FramePeriodo.DataFinal, edtCaminho.Text);
 
PS: O caminho do arquivo é apenas o diretório, não informo o nome do mesmo.
 
O que pode ser?

 

Favor utilizar a dll que está no svn do acbr para testar

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado (editado)

Juliomar,

 

Mesma coisa, o erro é o mesmo. Peguei todas as dll's no svn do ACBR, mesmo assim o erro persiste!

O estranho é que fiz o teste com duas impressoras. Uma elgin fit e uma elgin k. Na elgin fit gerou o arquivo certo e na elgin k ocorreu o erro relatado acima.

Editado por jocimar
  • Fundadores
Postado

No momento da execução desse método o controle está sobre a DLL do fabricante...

 

O que o manual do fabricante diz sobre o erro: Cod.: 16393, quando executando o método da DLL, Elgin_GeraArquivoATO17Binario ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Daniel,

 

No manual diz o seguinte a respeito do erro:

 

16393: 0x4009  DLLErroCriaArquivo  Não foi possível criar o arquivo com o nome
especificado.
  • Moderadores
Postado

 

Daniel,

 

No manual diz o seguinte a respeito do erro:

 

16393: 0x4009  DLLErroCriaArquivo  Não foi possível criar o arquivo com o nome
especificado.

 

Achou o problema! confere se está passando o nome com o caminho completo para o componente!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Fundadores
Postado

Se você não der mais informações não dá pra tentar ajudar...

 

Que método você chamou ?

Como ficou no Log ?

Que nome de arquivo você tentou gerar ?

 

( lembrando que o windows não permite gravar no C:\ )

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)

Veja a imagem:

 

Foi exatamente o que eu fiz, claro antes ativei a impressora é claro.

 

Método utilizado:

ACBrECF.PafMF_GerarCAT52(FramePeriodo.DataInicial, FramePeriodo.DataFinal,
        IncludeTrailingPathDelimiter(edtCaminho.Text));
 
PS: Esta chamada é no meu sistema, mas é a mesma do demo.

post-4117-0-87541000-1381940244_thumb.pn

Editado por jocimar
Postado

Descobri, porque que gera certo na Elgin Fit e da erro na Elgin K, veja a procedure abaixo:

 

procedure TACBrECFFiscNET.ArquivoMFD_DLL(DataInicial, DataFinal: TDateTime;
  NomeArquivo: AnsiString; Documentos: TACBrECFTipoDocumentoSet;
  Finalidade: TACBrECFFinalizaArqMFD);
Var
  iRet : Integer;
  PortaSerial, ModeloECF, NumFab, ArqTmp, Prop : AnsiString;
  DiaIni, DiaFim : AnsiString;
  OldAtivo  : Boolean;
  cFinalidade:AnsiString;
begin
  NumFab      := NumSerie;
  ModeloECF   := SubModeloECF;
  PortaSerial := fpDevice.Porta;
  Prop        := IntToStr( StrToIntDef( UsuarioAtual, 1) ) ;
 
  LoadDLLFunctions;
  OldAtivo := Ativo;
  try
     Ativo := False;
 
     if (Finalidade = finMF) then
        cFinalidade := 'MF'
     else if (Finalidade in [finTDM,finNFPTDM]) then
        cFinalidade := 'TDM'
     else
        cFinalidade := 'MFD';
 
     if pos(fsMarcaECF, 'dataregis|termoprinter') > 0 then
      begin
        DiaIni := FormatDateTime('dd/mm/yyyy', DataInicial);
        DiaFim := FormatDateTime('dd/mm/yyyy', DataFinal);
 
        if (Finalidade = finMF) then
          iRet := xGera_AtoCotepe1704_Periodo_MF( PortaSerial, ModeloECF,
                                                 NomeArquivo, DiaIni, DiaFim )
        else
          iRet := xGera_AtoCotepe1704_Periodo_MFD( PortaSerial, ModeloECF,
                                                 NomeArquivo, DiaIni, DiaFim );
 
        if iRet <> 0 then
           raise EACBrECFERRO.Create( ACBrStr( 'Erro ao executar Gera_AtoCotepe1704_Periodo_MFD.'+sLineBreak+
                                            'Cod.: '+IntToStr(iRet) + ' - ' +
                                            GetErroAtoCotepe1704(iRet) )) ;
 
        if not FileExists( NomeArquivo ) then
           raise EACBrECFERRO.Create( ACBrStr( 'Erro na execução de Gera_AtoCotepe1704_Periodo_MFD.'+sLineBreak+
                                            'Arquivo: "'+NomeArquivo + '" não gerado' ))
      end
     else if (fsMarcaECF = 'elgin') then //Quando estou gerando da elgin k entra neste if, porque a marca é elgin
      begin
        DiaIni := FormatDateTime('yyyymmdd', DataInicial);
        DiaFim := FormatDateTime('yyyymmdd', DataFinal);
 
        AbrePortaSerialDLL( PortaSerial, ExtractFilePath(NomeArquivo) );
 
        ArqTmp := ExtractFilePath( NomeArquivo ) + 'Memoria.tdm' ;
 
        iRet := xElgin_LeMemoriasBinario( ArqTmp, NumFab, true );
 
        if (iRet <> 1) then
           raise EACBrECFERRO.Create(ACBrStr('Erro ao executar Elgin_LeMemoriasBinario.'+sLineBreak+
                                          'Cod.: ' + IntToStr(iRet))) ;
 
        if not FilesExists( ArqTmp ) then
           raise EACBrECFERRO.Create(ACBrStr('Erro na execução de Elgin_LeMemoriasBinario.'+sLineBreak+
                                          'Arquivo binário não gerado!'));
 
        iRet := xElgin_GeraArquivoATO17Binario( ArqTmp, NomeArquivo, DiaIni,
                                                DiaFim, 'D', Prop, cFinalidade); //Erro na execução desta função
 
        if (iRet <> 1) then
           raise EACBrECFERRO.Create(ACBrStr('Erro ao executar Elgin_GeraArquivoATO17Binario.'+sLineBreak+
                                          'Cod.: ' + IntToStr(iRet))) ;
 
        xElgin_FechaPortaSerial();
      end
     else    // Urano e demais 
      begin
        if (Finalidade = finNFPTDM) then //Quando gero pela elgin fit cai aqui, porque o nome da ecf que vem é ZPM
        begin
           //TODO: gerar o "nome do arquivo" no padrão CAT-52
           //Geralmente as DLL's precisam somente do diretório, o nome do arquivo é gerado automaticamente.
           //No caso da Urano você deve especificar o nome do arquivo (ACBr tem alguma função pra gerar esse nome no padrão cat?)
           if Length(Trim(ExtractFileName(NomeArquivo))) = 0 then
              NomeArquivo := NomeArquivo + 'CAT52.txt';
        end;
 
        ArqTmp := ExtractFilePath( NomeArquivo ) + 'ACBr.TDM' ;
        if FileExists( NomeArquivo ) then
           DeleteFile( NomeArquivo ) ;
 
        DiaIni := FormatDateTime('yyyymmdd', DataInicial);
        DiaFim := FormatDateTime('yyyymmdd', DataFinal);
 
        iRet := xDLLReadLeMemorias( PortaSerial, ArqTmp, NumFab, '1');
 
        if iRet <> 0 then
           raise EACBrECFERRO.Create( ACBrStr( 'Erro ao executar DLLReadLeMemorias.' + sLineBreak +
                                            'Cod.: '+ IntToStr(iRet) + ' - ' +
                                            GetErroAtoCotepe1704(iRet) )) ;
 
        iRet := xDLLATO17GeraArquivo( ArqTmp, NomeArquivo, DiaIni, DiaFim,
                                      'M', '1', cFinalidade );
 
        if iRet <> 0 then
           raise EACBrECFERRO.Create( ACBrStr( 'Erro ao executar DLLATO17GeraArquivo.' + sLineBreak +
                                            'Cod.: '+ IntToStr(iRet) + ' - ' +
                                            GetErroAtoCotepe1704(iRet) )) ;
      end ;
  finally
     Ativo := OldAtivo ;
  end ;
end;
 
Alguma ideia de como solucionar o problema?
  • Fundadores
Postado

Mas se a elgin tem uma DLL específica não devemos utiliza-la ?

 

Elgin, ZPM, Urano, Itautec, DataRegis, TermoPrinter é na verdade o mesmo Protocolo (FiscNET)

 

Então em teoria a DLL de um fabricante poderia funcionar para todos, porém as DLLs (algumas) tem travas, para só funcionar em algumas marcas...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado

Daniel,

   Talvez seja necessário analisar a marca e o modelo.

 

Jocimar,

  Qual o retorno completo das strings de marca e modelo para esse ECF que gera problema?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Fundadores
Postado

Ambos ECFs são da marca Elgin, porém um é identificado internamento como "ZPM"... e esse funciona...

 

O erro ocorre quando o ACBrECF detecta que o modelo é "elgin" e carrega as DLLs da Elgin... E funciona quando ele lê o nome como "ZPM" e por isso carrega as DLLs "Urano e demais"

 

Não pretendo mudar isso sem uma explicação lógica... Se o ECF é da Elgin, ele deveria usar a DLL da Elgin...

 

A não ser que a própria Elgin anuncie que está abandonando o desenvolvimento dessa DLL...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado

Faz sentido o que o Daniel falou.

 

Jocimar, você deveria entrar em contato com a Elgin e verificar como proceder. Qual deve ser a dll para utilizar para esse modelo específico que está dando erro (Elgin K). Com o posicionamento oficial deles a gente talvez poderia fazer algo.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado (editado)

Bom dia Juliomar,

 

Consegui fazer o teste?

O pessoal da elgin ainda não me respondeu o email, estou no aguardo!

Editado por jocimar
  • Moderadores
Postado

Bom dia Juliomar,

 

Consegui fazer o teste?

O pessoal da elgin ainda não me respondeu o email, estou no aguardo!

Bom dia 

cheguei em casa e tive que fazer outras coisas acabei me esquecendo

vou anotar pra não esquecer e hoje a noite sem falta testo e reporto 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado

Juliomar,

 

Consegui realizar os testes?

Sim fiz isso ontem a noite, deu certinho gerou o arquivo sem problema algum

utilizei as dll que estão no svn!

não conseguia achar o tópico para responder, utilizei meu notebook com um conversor usbxserial

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

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