Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa noite amigos!

 

Estou na fase do MenuFiscal e ao chamar a função PafMF_LMFC_Espelho, observo que tudo transcorre bem, porém o ACBrECF não gera o arquivo com o nome passado como parâmetro. E retorna erro.

 

Os testes foram feitos com Win7 + Bematech MP-4000 + ECFTeste.exe

 

- apaguei as DLLs da System32;

- copiei as DLLs da pasta do ACBr para a pasta do executável;

-  fiz alterações no BemaFI32.ini.

 

e o interessante é que o arquivo é gerado com um nome segundo as regras do atocotepe, que não fui eu quem passei via parametro.

 

Segue o erro:

 

No ECFTeste.exe

- + - + - + - + - + - + - + - + - + - + - + -

Erro na execução de xBematech_FI_ArquivoMFD.

Arquivo: "c:\temp\teste.txt" não gerado

BE090910100010030727#0#0#0#0

- + - + - + - + - + - + - + - + - + - + - + -

 

Na minha aplicação

post-626-0-31547200-1359068117.png

 

Resumo da ópera: O ECFTeste.exe consegue desativar o ACBrECF, executa a função AbrePortaSerial da DLL, a impressora pisca um tempo, depois de alguns instantes retorna o erro em anexo.

 

Alguém ?

 

 

Atte,

Lucas Belkys

 

post-626-0-31547200-1359068117.png

Postado

Verifique se você tem as últimas versões da DLL da Bematech... Houve mudança na nomenclatura dos nomes dos arquivos gerados pela DLL

Não acho que o problema seja na esfera das DLL's, porque o arquivo é gerado normalmente, acredito que o componente tá gerando uma exception por engano. Veja o Log abaixo:

 

                TX -> [sTX][ENQ][NUL][FS]#(g[NUL]

   11:51:13:111 RX <- BE090910100010030727[NUL][NUL][NUL][NUL]

   Desativando ACBrECF

   Verificando arquivo: C:\ACBR\Exemplos\ACBrECF\Delphi\BemaFi32.INI, Porta:COM4, Path:C:\ACBR\Exemplos\ACBrECF\Delphi\

   xBematech_FI_AbrePortaSerial

   xBematech_FI_FechaPortaSerial

   Ativar ACBr: SIM

--------------------------------------------------------------------------------

ATIVAR - 25/01/13 11:53:05:629 - Modelo: Bematech - Porta: COM4 - TimeOut: 3

         Device: BAUD=9600 DATA=8 PARITY=N STOP=1 HANDSHAKE=RTS/CTS HARDFLOW MAXBANDWIDTH=0

--------------------------------------------------------------------------------

-- 11:53:05:632

                TX -> [sTX][4][NUL][FS][19]/[NUL]

   11:53:05:777 RX <- [NUL][NUL][NUL][NUL]

-- 11:53:05:781

                TX -> [sTX][ENQ][NUL][FS]#)h[NUL]

   11:53:05:912 RX <- [sOH][NUL][sOH][NUL][NUL][NUL][NUL]

-- 11:53:05:916

                TX -> [sTX][ENQ][NUL][FS]#<{[NUL]

   11:53:06:091 RX <- BEMATECH       MP-4000 TH FI       ECF-IF [NUL][NUL][NUL][NUL]

-- 11:53:06:094

                TX -> [sTX][ENQ][NUL][FS]#(g[NUL]

   11:53:06:242 RX <- BE090910100010030727[NUL][NUL][NUL][NUL]

 

 

Ou seja, o problema tá no momento em que o método termina, na verificação se o arquivo foi gerado. Vou dar uma olhada no código em questão.

Postado

Outras funções integradas com as DLL's dos fabricantes estão funcionando normalmente, o que me leva a crer que realmente o problema está isoladamente no método Pafmf_Lmfc_Espelho.

Postado

Então, vi que o problema está no método ArquivoMFD_DLL da classe TACBrECFBematech. Tem um objeto TStringList chamado "Arquivo" que é instanciado e não é atribuído nenhum dado. Então como a propriedade "Count" será sempre 0, daí ele gera a exception com o arquivo sendo gerado ou não. Vejam o código abaixo:

 

if Arquivos.Count < 1 then
  raise EACBrECFErro.Create( ACBrStr( 'Erro na execução de xBematech_FI_ArquivoMFD.'+sLineBreak+
                                'Arquivo: "'+NomeArquivo + '" não gerado' )) ;

Postado (editado)

Mudei aqui e resolveu:

 

 FileMask := FilePath + {Prefixo + }Trim(NumSerie)+'*.TXT';// + '_' +
//              FormatDateTime('yyyymmdd',Now ) + '_*.TXT';

 

 

Em -> procedure TACBrECFBematech.ArquivoMFD_DLL(DataInicial, DataFinal: TDateTime;
  NomeArquivo: AnsiString; Documentos: TACBrECFTipoDocumentoSet;
  Finalidade: TACBrECFFinalizaArqMFD);

 

Como era:

 

FileMask := FilePath + Prefixo + Trim(NumSerie) + '_' +
              FormatDateTime('yyyymmdd',Now ) + '_*.TXT';

 

Como ficou:
  FileMask := FilePath + Trim(NumSerie) + '*.TXT';

Editado por lucasbelkys
  • Fundadores
Postado

Por favor confirme...

 

Você atualizou as DLLs do fabricante ?

 

Se estou solicitando isso desde o inicio é porque isso é importante...

 

O Fabricante modificou a maneira de criação desses arquivos, e as mudanças no SVN já estão ajustadas para isso...

 

   

 

*** versão 6.1.1.0 ***

. Ajustes no layout do Minas Legal.
. Melhorias na função Bematech_FI_FlagsFiscais3MFD.
. Melhorias na identificação da impressora desligada.
. Ajustes no layout do Cupom Mania.
. Melhorias na função Bematech_FI_GeraRegistrosCAT52MFDEX com relação ao parâmetro Path.
. Atualização da nomenclatura do arquivo gerados pela função Bematech_FI_ArquivoMFD.
. Melhorias no layout da CAT52 (SP).
. Melhorias na função Bematech_FI_LeituraChequeMFD.
. Melhorias na função Bematech_FI_RelatorioSintegraMFD
. Melhorias nas funções de geração do SPED.
. Melhorias na função Bematech_FI_ArquivoMFD na geração dos arquivos do Ato Cotepe 17/04.
. Ajustes no layout do SPED.
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.

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