Business - Automação Comercial

Gerando o SPED

Veremos neste artigo a função da BemaFI32/BemaFI64.dll que gera os registros do SPED pertinentes ao ECF.

por Iohannes Nakatani



Olá pessoal,

Veremos neste artigo a função da BemaFI32/BemaFI64.dll que gera os registros do SPED pertinentes ao ECF.

O SPED (Sistema Público de Escrituração Digital) visa armazenar informações de escrituração fiscal e contábil. Com isso, o arquivo EFD (Escrituração Fiscal Digital) deve conter o conjunto de escriturações de documentos fiscais e de outras informações de interesse dos fiscos das unidades federadas e da Secretaria da Receita Federal do Brasil, bem como de registros de apuração de impostos referentes às operações e prestações praticadas pelo contribuinte.

Com o objetivo de auxiliar toda a comunidade de desenvolvedores de software do país, na busca dos dados para a geração do arquivo EFD, contidos no ECF, criamos a função Bematech_FI_GeraRegistrosSpedMFD.

Abaixo podemos verificar os dados gerados por esta função:

Perfil Tipo A

Perfil Tipo B

Perfil Tipo T

C400

C400

C400

C405

C405

C405

C410

C410

C410

C420

C420

C420

C460

C425

C425

C470

C490

C460

C490

C470

C490

C495

Vamos agora, conhecer os parâmetros que a função Bematech_FI_GeraRegistrosSpedMFD usa:

Parâmetros:

Arquivo de Origem (cOrigem): Variável do tipo STRING contendo o path e o nome do arquivo contendo o download da MFD.

Arquivo de Destino (cDestino): Variável do tipo STRING contendo o path o nome do arquivo texto de destino.

Data Inicial (cDataInicial): Variável do tipo STRING contendo a data inicial do intervalo solicitado no formato “DD/MM/AAAA”.

Data Final (cDataFinal): Variável do tipo STRING contendo a data final do intervalo solicitado no formato “DD/MM/AAAA”.

Tipo de Perfil (cPerfil): Variável do tipo STRING contendo o perfil do relatório a ser gerado, sendo “A”, “B” ou “T”, conforme a tabela acima.

Cód. Fiscal de Operações Prestações (cCFOP): Variável do tipo STRING contendo o código CFOP do estabelecimento.

Cód. Da Observação Fiscal (cCodObsLancFiscal): Variável do tipo STRING contendo as anotações de escrituração pertinentes ao lançamento fiscal. Caso não deseje passar esta informação poderá deixar nulo.

PIS (cAliquotaPis): Variável do tipo STRING contendo valor da alíquota para o cálculo do PIS, do tamanho de 4 caracteres sem a virgula.

COFINS (cAliquotaCofins): Variável do tipo STRING contendo valor da alíquota para o cálculo do COFINS, do tamanho de 4 caracteres sem a virgula.

Lembrando que está função está disponível apenas para os modelos de ECF Bematech MP-2100 TH FI, MP-3000 TH FI, MP-4000 TH FI e MP-7000 TH FI.

Vamos ver como fica a declaração desta função em:

Delphi

function Bematech_FI_GeraRegistrosSpedMFD( arq_origem: string; arq_destino: string; data_inicial: string; data_final: string; perfil: string; CFOP: string; lac_fiscal: string; pis: string; cofins: string ): Integer; StdCall; External ‘BEMAFI32.DLL’;

VB

Public Declare Function Bematech_FI_GeraRegistrosSpedMFD Lib “BEMAFI32.DLL” ( ByVal arq_origem as string, ByVal arq_destino as string, ByVal data_inicial as string, ByVal data_final as string, ByVal perfil as string, ByVal CFOP as string, ByVal lac_fiscal as string, ByVal pis as string, ByVal cofins as string)

E, como ela é utilizada:

Delphi

cOrigem := ‘C:\download.mfd’;
cDestino := ‘C:\Resultado.txt’;
cDataInicial := ’01/01/2011′;
cDataFinal := ’31/01/2011′;
cPerfil := ‘T’;
cCFOP := ’5929′;
cCodObsLancFiscal := ‘ ‘;
cAliquotaPis := ’00,00′;
cAliquotaCofins := ’00,00′;

iRetorno := Bematech_FI_GeraRegistrosSpedMFD( pchar( cOrigem ), pchar( cDestino ), pchar( cDataInicial ), pchar( cDataFinal ), pchar( cPerfil ), pchar( cCFOP ), pchar( cCodObsLancFiscal ), pchar( cAliquotaPis ), pchar( cAliquotaCofins ) );

VB

cOrigem = “C:\download.mfd”
cDestino = “C:\Resultado.txt”
cDataInicial = “01/01/2011”
cDataFinal = “31/01/2011”
cPerfil = “T”
cCFOP = “5929”
cCodObsLancFiscal = “ ”
cAliquotaPis= “00,00”
cAliquotaCofins = “00,00”

iRetorno = Bematech_FI_GeraRegistrosSpedMFD(cOrigem, cDestino, cDataInicial, cDataFinal, cPerfil, cCFOP, cCodObsLancFiscal, cAliquotaPis, cAliquotaCofins)

Se o parâmetro cOrigem for informado como nulo (cOrigem = “”), a função irá realizar o download da MFD da impressora antes da geração dos registros para o SPED.

Ao executarmos esta função, temos o seguinte conteúdo no arquivo “Resultado.txt”:

|C400|2D|MP-2100 TH FI|BE050872800000005215||
|C405|20110106|6|000088|001004|178580,87|0,00|
|C420|OPNF|50,00|||
|C490|090|5929|0|50,00|0|0| |
|C405|20110107|6|000089|001007|178581,87|1,00|
|C420|I1|1,00|||
|C425|1234567890123|1,000|UN|1,00|0|0|
|C460|2D|00|001005|20110107|1,00|0|0|00000000000000||
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C490|040|5929|0|1,00|0|0| |
|C405|20110111|6|000090|001022|184043,81|5461,94|
|C420|OPNF|34189,00|||
|C420|01S0500|12,00|01|Totalizador 01|
|C420|I1|5449,94|||
|C425|1234567890123|68,000|UN|5449,94|0|0|
|C460|2D|00|001012|20110111|5461,94|0|0|00000000000000||
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|12,00|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|122,58|040|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C470|1234567890123|1,000||UN|1,00|090|5929|0,00|0|0|
|C490|090|5929|0|34189,00|0|0| |
|C490|090|5929|0|12,00|0|0| |
|C490|040|5929|0|5449,94|0|0| |
|C405|20110128|6|000091|001026|184046,82|3,00|
|C420|I1|3,00|||
|C425|123|3,000|UN|3,00|0|0|
|C460|2D|00|001024|20110128|3,00|0|0|00000000000000||
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C490|040|5929|0|3,00|0|0| |
|C405|20110131|6|000092|001032|184054,80|8,00|
|C420|I1|8,00|||
|C425|123|8,000|UN|8,00|0|0|
|C460|2D|00|001027|20110131|5,00|0|0|00000000000000||
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C460|2D|00|001029|20110131|3,00|0|0|00000000000000||
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C470|123|1,000||UN|1,00|040|5929|0,00|0|0|
|C490|040|5929|0|8,00|0|0| |
|C495|0,00|1234567890123|69,000||UN|5450,94||||||5450,94|||
|C495|0,00|1234567890123|12,000||UN|12,00|||||||||
|C495|0,00|123|11,000||UN|11,00||||||11,00|||

Podemos encontrar as informações sobre o layout dos dados contidos neste arquivo a partir do endereço:

http://www.fazenda.gov.br/confaz/confaz/atos/atos_cotepe/2008/ac009_08.htm

Assim, finalizamos este artigo sobre o uso da função Bematech_FI_GeraRegistrosSpedMFD.

Um forte abraço e até o próximo!

Iohannes Nakatani
Analista de Suporte ao Desenvolvedor
Engenharia de Desenvolvimento - P&D - Bematech S/A

0800 644 SBSP (7277)

Email/MSN: suporte.iohannes@bematech.com.br
skype: suporte.iohannes

Iohannes Nakatani

Iohannes Nakatani - Analista de Suporte. Bematech - Marketing de Parcerias.
Visite o site:
http://www.bematech.com.br.