Business - Automação Comercial

Informações sobre o RFD (Registro de Fita-Detalhe)

Neste artigo, estaremos divulgando algumas informações sobre RFD (Registro de Fita-Detalhe), pertinentes à automação, que entrou em vigor a partir de 01 de julho de 2007 no estado de São Paulo.

por André Luiz R. Munhoz



Neste artigo, estaremos divulgando algumas informações sobre RFD (Registro de Fita-Detalhe), pertinentes à automação, que entrou em vigor a partir de 01 de julho de 2007 no estado de São Paulo.

O RFD surgiu através da Portaria CAT-52 de 06 de junho de 2007 e corresponde a um arquivo digital, armazenado no disco rígido do computador, que contém dados de todos os documentos emitidos pelo ECF, a identificação do equipamento e de seu usuário.

Estamos implementando na nova versão de nossa BemaFI32.dll, a geração dos registros exigidos no RFD.

Estes registros serão gerados automaticamente pela dll no momento que a redução Z for executada, através da função Bematech_FI_ReducaoZ.

Você não precisará modificar sua aplicação, basta substituir a dll e incluir as seções "SofwareHouse" e "ECF" no arquivo BemaFI32.ini. A seção "SoftwareHouse" será responsável por guardar as informações da Software House pertinentes ao Registro Tipo E00, que corresponderão aos campos 8, 9, 16 e 17 deste registro, e a seção "ECF" será responsável por guardar algumas informações do estabelecimento.

Estas chaves podem ser incluídas antes da chave [MFD]. Exemplo:

.
.
.
[SoftwareHouse]
CNPJ=
IE=
IM=
RazaoSocial=
NomeAplicativo=
Versao=
COO=
NumeroAplicativo=
Linha1=
Linha2=

[ECF]
IM=
UF=

[MFD]
.
.
.


Onde:

[SoftwareHouse]

CNPJ= refere-se ao CNPJ/CPF da Software House ou desenvolvedor autônomo, com até 14 posições.
IE= refere-se a Inscrição Estadual da Software House, com até 14 posições.
IM= refere-se a Inscrição Municipal da Software House, com até 14 posições.
RazaoSocial= refere-se ao nome comercial (razão social/denominação) da Software House, com até 40 posições.
NomeAplicativo= refere-se ao nome do aplicativo, com até 40 posições.
Versao= refere-se a versão do aplicativo, com até 10 posições.
COO= refere-se ao Contador de Ordem de Operação relativo à troca de aplicativo, com até 6 posições.
NumeroAplicativo= refere-se ao número de ordem do aplicativo, com até 2 posições.
Linha1= refere-se aos dados do programa aplicativo, com até 42 posições.
Linha2= refere-se aos dados do programa aplicativo, com até 42 posições.

[ECF]

IM= refere-se a Inscrição Municipal do estabelecimento que possui a ECF, com até 20 posições.
UF= refere-se a Unidade da Federação do estabelecimento que possui a ECF, com até 2 posições.

Estaremos informando quando a nova versão da BemaFI32.dll estiver disponível em nosso site para download.

Caso você esteja utilizando outra interface de comunicação, segue abaixo algumas dicas que lhe ajudarão a entender um pouco mais sobre o RFD.



O nome do arquivo deverá ter o formato FFM12345.DMA, sendo:

  • FF - dentificação do fabricante do ECF;

  • M - identificação do modelo do ECF;

  • 12345 - cinco últimos caracteres do número de fabricação do ECF;

  • DMA - identificação do dia, mês e ano do movimento, codificados com números de 1 a 9 e letras de A a Z, sendo que a letra A corresponde ao número 10;

E, deverá:

  • ser criado para cada dia de movimento do ECF;

  • ser validado por meio de código gerado por função unidirecional MD5 (Message Digest nº 5), de conhecimento exclusivo do desenvolvedor do RFD, em todos os registros do arquivo (com exceção do registro EAD) para gerar código que garanta integridade do arquivo. Este código deverá ser assinado digitalmente utilizando o algoritmo RSA de chave pública de 128 bits e informado no registro EAD.

  • conter o caracter “#” (sustenido) na primeira posição da descrição do item, para fins de controle de item manufaturado pelo próprio contribuinte emitente;

  • ser gerado no momento de execução da Redução Z;

  • constar os registros E00, E01, E02, E12, E13, E14, E15, E16, E21 e EAD, sendo:

    • registro tipo E00 - Identificação da Software House.
    • registro tipo E01 - Identificação do ECF.
    • registro tipo E02 - Identificação do atual contribuinte usuário do ECF.
    • registro tipo E12 - Relação de reduções Z.
    • registro tipo E13 - Detalhe da Redução Z.
    • registro tipo E14 - Cupom Fiscal, Nota Fiscal de Venda a Consumidor ou Bilhete de Passagem.
    • registro tipo E15 - Detalhe do Cupom Fiscal, da Nota Fiscal de Venda a Consumidor ou do Bilhete de Passagem.
    • registro tipo E16 - Demais documentos emitidos pelo ECF.
    • registro tipo E21 - Detalhe do Cupom Fiscal e Documento Não Fiscal - Meio de Pagamento
      registro EAD - Assinatura digital.

Layout dos registros:

  • Tipo: texto não delimitado.

  • Tamanho: variável, acrescidos de CR/LF (Carriage Return/Line feed) ao final de cada registro.

  • Organização: seqüencial.

  • Codificação: ASCII.

Formato dos Campos:

  • Numérico (N): sem sinal, não compactado, alinhado à direita, suprimidos a vírgula e os pontos decimais, com as posições não significativas zeradas.

  • Alfanumérico (X): alinhado à esquerda, com as posições não significativas em branco.

  • Data (D): somente os algarismos da data, no formato (AAAAMMDD).

  • Hora (H): somente os algarismos da hora, no formato (HHMMSS).

Preencimento dos Campos:

  • Numérico: na ausência de informação, os campos deverão ser preenchidos com zeros.

  • Alfanumérico: na ausência de informação, os campos deverão ser preenchidos com brancos.

  • Origem do dado: Memória Fiscal (MF), Memória de Fita-detalhe (MFD), Memória de Trabalho (MT), Redução Z (imagem de dados codificados, impressa de acordo com o disposto na alínea "d" do inciso II da cláusula terceira do Convênio ICMS 85/01 de 28 de setembro de 2001).

  • Data: na ausência de informação, os campos deverão ser preenchidos com brancos.

  • Hora: na ausência de informação, os campos deverão ser preenchidos com brancos.

Você poderá consultar o site da SEFAZ/SP para obter maiores informações a respeito, ou através do link direto:

http://info.fazenda.sp.gov.br/NXT/gateway.dll/legislacao_tributaria/portaria_cat/pcat522007.htm

Listamos aqui, algumas dúvidas que poderão surgir durante o desenvolvimento do RFD:

  1. Registro Tipo E00 / Campo 03 (MF Adicional):

    Essa informação é retirada do *número de série da impressora. Se o último caracter do número de série for uma letra, essa letra deve ser incluída nesse campo. Se for um número ou qualquer outro valor esse campo deve ser preenchido com espaço em branco.

    *O número de série da impressora é obtido através do comando ESC 35 00 (para os modelos MP-20 FI II ou MP-40 FI II, que retornam 15 bytes) ou ESC 35 40 (para os modelos MP-25 FI, MP-50 FI, MP-2000 TH FI, MP-2100 TH FI, MP-3000 TH FI ou MP-6000 TH FI, que retornam 20 bytes).

  2. Registro Tipo E00 / Campo 04 (Número do Usuário):

    Este campo corresponde ao número de substituição do proprietário, que pode ser obtido através do comando ESC 35 11.

  3. Registro Tipo E00 / Campo 05 (Tipo de ECF):

    Esse campo pode ser preenchido com o valor fixo "ECF-IF" porque todas as impressoras fiscais da Bematech são desse tipo. Caso você preferir, a informação pode ser lida através do comando ESC 35 60 (exceto nos equipamentos MP-20 FI II e MP-40 FI II que não possuem esse comando). O comando retorna marca, modelo e tipo de ECF.

  4. Registro Tipo E01 / Campos 12 (Casas decimais da quantidade) e 13 (Casas decimais de valor unitário):

    Para as impressoras MP-20 FI II, MP-40 FI II, MP-25 FI, MP-50 FI, MP-2000 TH FI e MP-6000 TH FI o número de casas decimais é fixo em 3 casas.

    Para as impressoras MP-2100 TH FI e MP-3000 TH FI essa informação é configurável, e só é realizada no momento da inicialização da impressora (programação do usuário). Entretanto, não ha nenhum comando que retorne essa informação.

    Você deverá realizar essa configuração no software, por exemplo: no momento em que o software for instalado, você executa uma Leitura da Memória Fiscal (comando ESC 08) e verifica como a impressora está programada, se duas ou 3 casas decimais. Uma outra alternativa para verificar essa configuração é tentar realizar uma venda utilizando 3 casas decimais, se o comando for realizado a impressora está programada com 3 casas decimais, caso contrário o comando não será executado.

  5. Registro Tipo E01 / Campos 15 (CRZ inicial) e 16 (CRZ final):

    Contador de redução Z poderá ser obtido pelo comando ESC 35 09. Para as impressoras MP-25 FI, MP-50 FI, MP-2000 TH FI, MP-2100 TH FI, MP-3000 TH FI e MP-6000 TH FI este retorno também poderá ser obtido pelo comando: ESC 88 (Leitura dos dados da última Redução completo).

  6. Registro Tipo E01 / Campos 19 (Versão da Biblioteca):

    Caso esteja utilizando a BemaFI32.dll, através da função Bematech_FI_VersaoDll é possível recuperar esta informação. Caso esteja utilizando outra interface, esse campo pode ser preenchido com o valor 00.00.00.

  7. Registro Tipo E02 / Campos 11 (CRO - Contador de Reinício de Operação):

    Informações do registro tipo E02 são informações referente ao atual usuário cadastrado na impressora. O CRO que deve ser incluído neste campo é o CRO que estava na impressora no momento que o atual usuário foi cadastrado e não o CRO atual da impressora.

    Como conseguir essa informação?

    Você terá que realizar uma leitura da memória fiscal pela serial e procurar essa informação no texto retornado. Não somente o campo CRO, mas também os campos Data do cadastro e Hora do cadastro do usuário (Campos 8 e 9 do Registro Tipo E02).

    Veja um exemplo da Leitura da Memória Fiscal:

    IMPRESSÃO FITA DETALHE
    CFD DATA HORA COOi COOf
    CNPJ:
    000001 13/06/2007 10:25:29 002323 002325
    CNPJ: 11111111111111111111
    000002 13/06/2007 10:26:33 002326 002328
    CNPJ: 11111111111111111111
    USUÁRIOS
    Usuário:0001 CRO:001 15/01/2007 16:24:01V
    CNPJ: 11111111111111111111
    IE: 22222222222222222222
    IM: 33333333333333333333
    GT: 19.287,79

    .
    .
    .

André Luiz R. Munhoz

André Luiz R. Munhoz - Bematech: DSP - Desenvolvimento de Software e Parcerias.
Visite o site: http://www.bematech.com.br.