none
Como gerar o arquivo da CAT-52 / Ato Cotepe 17/04 nas impressoras fiscais Bematech RRS feed

  • Discussão Geral

  • Caro parceiro,

    Ainda existem algumas dúvidas em relação à geração do arquivo da portaria CAT-52 e Ato Cotepe 17/04 para o estado de São Paulo nas impressoras fiscais modelo Bematech.

    Neste post, estarei detalhando todos os procedimentos de geração deste arquivo, através de nossas ferramentas de comunicação.

     

    DLL BEMAFI32 (ambiente Windows)

    A Bematech implementou em sua dll de alto-nível BemaFI32.dll, o controle e geração do arquivo da portaria CAT-52 (layout para as impressoras fiscais matriciais) e Ato Cotepe 17/04 (layout para as impressoras fiscais térmicas com MFD) automaticamente. A última versão disponível em nosso site é 5.8.0.0.

    Basta atualizar a BemaFI32.dll juntamente com as dlls BemaMFD.dll, BemaMFD2.dll e o arquivo de configuração BemaFI32.ini, no diretório de sistema de seu Windows (C:\Windows\System32, por exemplo).

    As chaves das seções [SoftwareHouse] e [ECF], no arquivo BemaFI32.ini, devem ser configuradas da seguinte forma:

     

    [SoftwareHouse]
    COO= Informe nesta chave o último COO da impressora, antes da atualização da nova dll, com o tamanho de 6 bytes. Ex: imprima uma Leitura X e coloque o COO desta Leitura X nesta chave.
    NumeroAplicativo= Informe nesta chave um Id para sua aplicação, com o tamanho de 2 bytes. Ex: 01
    CNPJ= Informe nesta chave o CNPJ/CPF da Software House ou desenvolvedor autônomo, com até 14 bytes. Sem máscara.
    IE= Informe nesta chave a Inscrição Estadual da Software House, com até 14 bytes. Sem máscara. Caso não possua pode deixar em branco.
    IM= Informe nesta chave a Inscrição Municipal da Software House, com até 14 bytes. Sem máscara. Caso não possua pode deixar em branco.
    RazaoSocial= Informe nesta chave a Razão Social da Software House, com até 40 bytes.
    NomeAplicativo= Informe nesta chave o nome do aplicativo de automação comercial, com até 40 bytes.
    Versao= Informe nesta chave a versão do aplicativo de automação comercial, com até 10 bytes. Ex: 01.00.05
    Linha1= Informe nesta chave comentários do programa aplicativo, com até 42 bytes. Caso não possua pode deixar em branco.
    Linha2= Informe nesta chave comentários do programa aplicativo, com até 42 bytes. Caso não possua pode deixar em branco.

    [ECF]
    IM= Informe nesta chave a Inscrição Municipal do estabelecimento que possui a ECF, com até 20 bytes. Sem máscara. Caso não possua pode deixar em branco.
    UF= Informe nesta chave a Unidade da Federação do estabelecimento que possui a ECF, com até 2 posições. Esta chave deve possuir o valor SP (UF=SP) obrigatoriamente para que a dll possa gerar o arquivo.

    Exemplo:

    [SoftwareHouse]
    COO=003351
    NumeroAplicativo=01
    CNPJ=11111111111111
    IE=22222222222222
    IM=33333333333333
    RazaoSocial=EMPRESA DE SOFTWARE TESTE
    NomeAplicativo=APLICATIVO TESTE
    Versao=1.0
    Linha1=LINHA1 TESTE
    Linha2=LINHA2 TESTE

    [ECF]
    IM=44444444444444
    UF=SP


    Obs: Se a impressora fiscal utilizada for MP-20 FI II ou MP-40 FI II, a chave Impressora na seção [MFD] deve possuir o valor 0 (Impressora=0), caso contrário esta chave deve possuir o valor 1 (Impressora=1).

    Configurando estas chaves, a dll estará controlando os dados para a geração da CAT-52 ou Ato Cotepe 17/04.

    Quando é gerado o arquivo final pronto para ser validado?

    Existem 3 situações:

    1) Quando for executada a Redução Z pela aplicação de automação comercial;
    2) Quando a impressora emitir automaticamente a Redução Z às 02:00 horas da manhã e, posteriormente, for aberto o cupom fiscal e;
    3) Quando a impressora emitir automaticamente a Redução Z quando for ligada no dia seguinte e, posteriormente, for aberto o primeiro cupom fiscal do dia.

    Nas impressoras fiscais matriciais, a dll irá criar e manter um arquivo de extensão ".rfd" durante o movimento do dia (este arquivo corresponde ao Registro de Fita-Detalhe e seu conteúdo é criptografado).

    Quando ocorrer uma das 3 situações acima, a dll irá converter este arquivo em um novo arquivo (sem extensão ".rfd") no formato e layout da portaria CAT-52, pronto para ser validado no site da SEFAZ/SP.

    Nas impressoras fiscais térmicas, a dll irá gerar o arquivo final diretamente da MFD (Memória de Fita-Detalhe) da impressora, quando ocorrer uma das 3 situações acima, ou seja, a dll fará o download da MFD do dia do movimento, e criará o arquivo no formato e layout do Ato Cotepe 17/04.

    Onde é gerado o arquivo final?

    O arquivo da portaria CAT-52 ou Ato Cotepe 17/04 é gerado no caminho configurado na chave Path do arquivo BemaFI32.ini. Além do arquivo final, o arquivo ".rfd" ou ".mfd" também é gerado neste caminho.

     


     

    Bematech Monitor (ambiente Windows e DOS)

    O driver Bematech Monitor para acesso remoto às impressoras fiscais Bematech também está preparado para a portaria CAT-52 e Ato Cotepe 17/04, pois ele interage com a dll BemaFI32. Então, basta configurar as chaves citadas acima no arquivo BemaFI32.ini da estação.

    Aplicações em ambiente DOS (janela DOS) também podem gerar o arquivo da CAT-52 e Ato Cotepe 17/04, comunicando com as impressoras fiscais Bematech, através do Bematech Monitor.

    O Bematech Monitor foi criado para acessar às impressoras fiscais Bematech remotamente, porém seu "mecanismo" de comunicação é "troca de arquivos", ou seja, a dll cria um arquivo com um código e o Bematech Monitor transforma este código na função correspondente da dll. Portanto, sua aplicação em DOS pode criar este arquivo (BemaFI32.cmd) com o código da função correspondente ao processo que deseja executar na impressora e envia-o para o Bematech Monitor, este por sua vez lê o arquivo e realiza todo o processo de envio à impressora, controlando os dados para a geração da CAT-52 e Ato Cotepe 17/04 (veja no arquivo de ajuda BemaFI32.chm, tópico "Utilizando a DLL em aplicações 16 Bits", mais informações sobre seu uso).

    Além disso, se sua aplicação DOS faz acesso às impressoras fiscais Bematech através do Bemafi.exe, você também poderá usar o Bematech Monitor.

    O Bematech Monitor reconhece a sintaxe e nomenclatura do arquivo Bemafi.cmd. Então, basta retirar a chamada ao Bemafi.exe e criar o arquivo Bemafi.cmd normalmente, gravando-o na pasta de monitoramento do Bematech Monitor. Se o arquivo BemaFI32.ini estiver configurado para gerar a CAT-52 e Ato Cotepe 17/04, o arquivo final será gerado.

     


     

    Utilizando o emulador para os testes de geração do arquivo CAT-52 / Ato Cotepe 17/04

    É possível utilizar o emulador da impressora fiscal para a geração do arquivo Ato Cotepe 17/04, mas para isso toda a comunicação com ele deverá ser realizada por meio de um cabo serial fisicamente conectado no computador (COM1 <--> COM2, por exemplo), pois é realizado o download da MFD para a geração do arquivo. A pinagem deste cabo está descrito no arquivo de ajuda do emulador e a chave EmulMFD no arquivo BemaFI32.ini, deve possuir o valor 0 (EmulMFD=0).

     


     

    Geração do arquivo CAT-52 / Ato Cotepe 17/04 retroativo

    É possível gerar o arquivo da portaria CAT-52 e Ato Cotepe 17/04 retroativo, de duas maneiras:

    - pela BemaFI32.dll

    Implementamos na dll a função Bematech_FI_GeraRegistrosCAT52MFD que permite gerar o arquivo final, a partir de informações contidas na MFD das impressoras fiscais térmicas ou a partir do arquivo .RFD ou .MFD gerados anteriormente.

    A função Bematech_FI_GeraRegistrosCAT52MFD possui os seguintes parâmetros:

    Arquivo: STRING com o nome do arquivo .MFD ou .RFD de onde os registros serão gerados. Informar o caminho completo.

    DataGeracao: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

    E, funciona da seguinte maneira:

    - Para os modelos de impressoras fiscais matriciais é obrigatório informar o arquivo .RFD como parâmetro. O parâmetro que corresponde a data não é obrigatório e será ignorado caso seja informado. O arquivo da CAT-52 será gerado com as informações contidas no arquivo .RFD informado.

    - Para os modelos de impressoras fiscais térmicas com MFD temos as seguintes possibilidades:

    a) se não forem informados o arquivo .MFD e a data como parâmetros, a função fará o download da MFD da data atual e fará a geração do arquivo do Ato Cotepe 17/04.

    b) se for informado o arquivo .MFD e não for informada a data, a função retornará erro.

    c) se for informada apenas a data, a função fará o download da MFD com base na data informada e fará a geração do arquivo do Ato Cotepe 17/04.

    d) se forem informados o arquivo .MFD e a data, a função fará a geração do arquivo do Ato Cotepe 17/04 com as informações contidas no arquivo .MFD na data informada.

    Exemplo em Visual Basic:

    iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\download.mfd", "30/07/2007")

    ou

    iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\BEB00007.M57.rfd", "30/07/2007")

    Exemplo em Delphi:

    Arquivo := 'C:\download.mfd';
    Data := '30/07/2007';

    iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );


    ou

    Arquivo := 'C:\BEB00007.M57.rfd';
    Data := '30/07/2007';

    iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );


    - pelo WinMFD2

    A Bematech disponibiliza em seu site um aplicativo chamado WinMFD2 que possibilita a geração do arquivo da portaria CAT-52 e Ato Cotepe 17/04 retroativo, nas impressoras fiscais matriciais e térmicas.

    A utilização deste aplicativo se dá da seguinte maneira:

    1) para impressoras fiscais térmicas com MFD

    - No menu "Comunicação", selecione a porta de comunicação onde a impressora está conectada e neste mesmo menu selecione o modelo da impressora.

     

    - No menu "Arquivo", selecione a opção CAT-52.

     

    - Na janela que surgir, selecione as opções desejadas e clique no botão "Gerar Registros".

     

    A geração do Ato Cotepe 17/04, diretamente da impressora, leva aproximadamente 30 segundos para um dia de movimento fiscal com 350 cupons fiscais emitidos.

    - pelo micro-terminal SB-2010/SB-2011/SB-3010


    A geração do arquivo para os micro-terminais fiscais Bematech ocorrerá somente se a impressora fiscal utilizada por eles for térmicas (MFD). Desta forma, a impressora deverá ser conectada a um computador com o aplicativo WinMFD2 instalado, e proceder conforme orientações acima (tópico "pelo WinMFD2" ).

    Obs: para os micro-terminais que usam impressoras fiscais matriciais a geração do arquivo para a portaria CAT-52 não será possível, pois ambos os equipamentos não possuem memória para armazenamento e emissão dos registros da portaria.

     


     

    Nomenclatura do arquivo

    O arquivo gerado para a portaria CAT-52 e Ato Cotepe 17/04 possui um conteúdo de texto, visível pelo "Bloco de Notas (notepad)" do Windows (por exemplo). Entretanto, sua nomenclatura é definida da seguinte forma:

    - Nome do arquivo no formato FFM12345.DMA, sendo:

     

    FF é a identificação do fabricante da impressora fiscal.
    M é a identificação do modelo da impressora fiscal.
    12345 são os cinco últimos dígitos do número de série da impressora fiscal.
    DMA são a identificação do dia, mês e ano do movimento, codificados com números de 1 a 9 para os dias compreendidos entre 01 e 09, e letras de A a Z compreendendo os dias acima de 09, sendo que o dia 10 corresponde a letra A, dia 11 a letra B, dia 12 a letra C e, assim, sucessivamente. Isso também se aplica para o mês e ano.

     

    Exemplo:

    BEE28347.1C7, sendo:

     

    BE identifica Bematech.
    E identifica o modelo MP-2100 TH FI, onde:
    Modelo ECF
    Valor
    MP 20 FI II
      6
    MP 40 FI II
      8
    MP 25 FI
      B
    MP 50 FI
      C
    MP 2000 TH FI
      D
    MP 2100 TH FI
      E
    MP 3000 TH FI
      F
    MP 6000 TH FI
      G
    MP 6100 TH FI
      H
    28347 cinco últimos dígitos do número de série da impressora fiscal.
    1C7 identifica o dia 01 de dezembro de 2007.

     

    Ats,

    André Munhoz

    andre.munhoz@bematech.com.br

    quarta-feira, 23 de janeiro de 2008 13:13

Todas as Respostas

  • Bom dia André

     

    Gostaria de saber se é possível, na matricial, a geração de dados retroativos... fiz na térmica e funcionou perfeitamente... na matricial ela pega os dados conforme o nome do arquivo? BE628347.1C7.rfd ? Não consegui gerar nada em matricial ainda...

     

    Abraço

     

    Alex

     

    sábado, 26 de janeiro de 2008 02:47
  • Olá Alex,

     

    Para as matriciais, somente se vc tiver o arquivo .rfd para usar no aplicativo WinMFD2.

     

    Ats,

    André Munhoz

    segunda-feira, 28 de janeiro de 2008 13:28
  •  

    Bom dia Andre,

     

    Estou com a versão 5.9.0.1(+ conjunto) da dll da bematech e não estou conseguindo gerar este arquivo.

     

    Ja tentei fazer o download do arquivo mfd e depois utilizar a função bematech_fi_GeraRegistrosCAT52MFDEx e GeraRegistrosCAT52MFD e nenhuma das duas funções consegue gerar.

     

    Você poderia indicar qual foi a sequencia de comandos utilizados?

     

    Obrigado

    segunda-feira, 12 de maio de 2008 14:15
  • Olá Fabner,

     

    Se a impressora em uso é térmica e vc já fez o download da MFD, basta passar este arquivo como parâmetro na função Bematech_FI_GeraRegistrosCAT52MFD ou usar o aplicativo WinMFD2 (menu Arquivo, opção CAT-52). Para o uso da função processa assim:

     

    Code Snippet
     Exemplo em Visual Basic
    iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\download.mfd", "30/07/2007")

    ou

    iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\BEB00007.M57.rfd", "30/07/2007")

    // Exemplo em Delphi
    Arquivo := 'C:\download.mfd';
    Data := '30/07/2007'
    iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );

    ou

    Arquivo := 'C:\BEB00007.M57.rfd';
    Data := '30/07/2007'
    iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );

     

     

    Através do WinMFD2, vc poderá fazer um download informando um intervalo de datas maior e pela opção CAT-52, é gerado todos os arquivos a partir deste intervalo.

     

    Ats,

    André Munhoz

    segunda-feira, 12 de maio de 2008 19:58
  • André,

    Acho que estou com o mesmo problema que o Fabner. No caso estou fazendo como solicitado, mas a função Bematech_FI_GeraRegistrosCAT52MFD está retornando -1 (Erro de execucao da função.) .

    Percebi pelo log do ECF que a data está com alguns caracteres estranhos, mas estou passando em um dos formatos especificados no help da DLL ("dd/mm/aaaa"). No meu caso, está sendo passado desta forma:

    iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\ECFFISCO\download.mfd", "21/05/2008")

    Essa linha está logo abaixo da linha que faz download da MDF nesta data (passei a data inicial = data final para fazer download apenas do dia 21/05/2008). Como não deu certo, tentei fazer o download da MFD pelo WinMFD2 e utilizá-lo para gerar o arquivo do CAT-52. Ocorreu o mesmo problema.

    Aqui vai o que sai no LOG:

    -----------------------------------------------------------------------
    Bematech_FI_GeraRegistrosCAT52MFD

    Parâmetros: C:\ECFFISCO\download.mfd|lä]

    Retorno Bematech_FI_GeraRegistrosCAT52MFD: -1 - erro na geração dos registros E01 a E21. Retorno GeraRegistrosTipoE: 3

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

    Será que estou fazendo algo errado? Perceba que, nos parâmetros, após o caminho do arquivo, o segundo parâmetro é a data...

    No suporte da Bematech, me orientaram a habilitar a geração do retorno estendido, mas o ST3 retornou zerado (6,0,0,0). Liguei de volta para informar, mas parece que o suporte está congestionado e ficaram de me retornar.
    terça-feira, 27 de maio de 2008 20:23