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 NakataniOlá 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
- DarumaFramework.SO no LinuxAutomação Comercial
- Palavra de status da impressora na DarumaFrameworkAutomação Comercial
- TEF – Comprovante de Crédito ou DébitoAutomação Comercial
- Comunicar com equipamentos Daruma em linguagens 16bits e DOSAutomação Comercial
- Verificando Redução Z nas Impressoras DarumaAutomação Comercial