RFI031 — Sped Fiscal(EFD) (enriquecimento)
Menu: Fiscal > Relatórios > Sped Fiscal(EFD)
Objetivo
A tela RFI031 (Sped Fiscal/EFD) gera o arquivo texto da Escrituração Fiscal Digital de ICMS/IPI de uma empresa para um período informado, percorrendo todos os blocos do leiaute (0, C, D, E, G, H, K, 1 e 9) a partir de notas fiscais, estoque, apuração de impostos e ativo imobilizado. O usuário informa empresa, período, diretório de destino e, opcionalmente, data de inventário, e o sistema grava um arquivo texto pronto para transmissão ao Fisco, respeitando parâmetros fiscais cadastrados em MFI003 (bloco G, bloco K, registros 1400/1600, perfil, etc.).
Fluxo principal
- Abrir a tela RFI031 e clicar em "Novo" para habilitar os campos do filtro; a empresa e o diretório (pasta Arquivos do usuário) já vêm preenchidos por padrão. (Menu Fiscal > Relatórios > Sped Fiscal(EFD)) —
source/RFI031/URFI031.pas:2543-2563 (TfrmRFI031.btnNovoClick) - Confirmar/selecionar a Empresa; o sistema valida se ela está cadastrada em ADM002. (Filtros do Relatório) —
source/RFI031/UdmRFI031.pas:86-103 (TdmRFI031.tabFILTROCD_EMPRESAValidate) - Informar o Período (Data Inicial/Final); ao sair da Data Inicial o sistema sugere automaticamente o fim do mês como Data Final se necessário. (Filtros do Relatório) —
source/RFI031/UdmRFI031.pas:76-84 (TdmRFI031.tabFILTRODT_INICIALValidate) - Opcionalmente informar a Data de Inventário (gera o Bloco H) e demais campos do filtro (livro, páginas, CFO). (Filtros do Relatório) —
source/RFI031/URFI031.pas:544-548 (TfrmRFI031.AddRegistroH) - Confirmar/ajustar o Diretório onde o arquivo texto do SPED será gravado. (Filtros do Relatório) —
source/RFI031/URFI031.pas:10170-10174 (TfrmRFI031.ValidaCamposTela) - Clicar em "Gerar Sped Fiscal <F8>"; o sistema valida a parametrização fiscal (MFI003/ADM002) e os campos da tela antes de iniciar. (Filtros do Relatório) —
source/RFI031/URFI031.pas:3021-3044 (TfrmRFI031.btnImprimirClick) - O sistema percorre e monta todos os blocos (0, C, D, E, G, H, K, 1, 9) exibindo barra de progresso. (Painel de Progresso) —
source/RFI031/URFI031.pas:3092-3114 (TfrmRFI031.btnImprimirClick) - Ao final, se não houver inconsistências acumuladas, o arquivo texto é gravado no diretório informado e a mensagem "Exportação Concluída com Sucesso!" é exibida. (Painel de Progresso) —
source/RFI031/URFI031.pas:7921-7940 (TfrmRFI031.btnImprimirClick)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Empresa (CD_EMPRESA) | sempre, para gerar o arquivo | É Obrigatório Informar a Empresa para gerar o arquivo! | source/RFI031/URFI031.pas:10152-10156 (TfrmRFI031.ValidaCamposTela) |
| Data Inicial | sempre, para gerar o arquivo | É Obrigatório Informar a Data Inicial para gerar o arquivo! | source/RFI031/URFI031.pas:10158-10162 (TfrmRFI031.ValidaCamposTela) |
| Data Final | sempre, para gerar o arquivo | É Obrigatório Informar a Data Inicial para gerar o arquivo! | source/RFI031/URFI031.pas:10164-10168 (TfrmRFI031.ValidaCamposTela) |
| Diretório de destino | sempre, para gerar o arquivo | Informe o Diretório para Gerar o SPED. | source/RFI031/URFI031.pas:10170-10174 (TfrmRFI031.ValidaCamposTela) |
| PARMFISCAL.TP_EFDITEMINVENTARIO | parametrização MFI003, verificada ao clicar em Gerar | É obrigatório informar o tipo do produto do inventário![MFI003] | source/RFI031/URFI031.pas:3024-3025 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.TP_EFDPERFIL | parametrização MFI003 | É obrigatório informar o Perfil![MFI003] | source/RFI031/URFI031.pas:3026-3027 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.ST_EFDGERABLOCO_G | parametrização MFI003 | É obrigatório informar o parâmetro "Gera Bloco G"![MFI003] | source/RFI031/URFI031.pas:3028-3029 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.CD_CENARIOFISCAL | obrigatório apenas quando ST_EFDGERABLOCO_G = 'S' | É obrigatório informar o Cenário de Depreciação![MFI003] | source/RFI031/URFI031.pas:3030-3031 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.ST_EFDGERABLOCO_K | parametrização MFI003 | É obrigatório informar o parâmetro "Gera Bloco K"![MFI003] | source/RFI031/URFI031.pas:3032-3033 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.ST_EFDGERAREGISTRO_1400 | parametrização MFI003 | É obrigatório informar o parâmetro "Gera Registro 1400"![MFI003] | source/RFI031/URFI031.pas:3034-3035 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.ST_EFDGERAREGISTRO_1600 | parametrização MFI003 | É obrigatório informar o parâmetro "Gera Registro 1600"![MFI003] | source/RFI031/URFI031.pas:3036-3037 (TfrmRFI031.btnImprimirClick) |
| PARMFISCAL.ST_EFDGERAFICHAPADRAO | parametrização MFI003 | É obrigatório informar o parâmetro "Gera ficha Padrão"![MFI003] | source/RFI031/URFI031.pas:3038-3039 (TfrmRFI031.btnImprimirClick) |
| ADM002 - Atividade preponderante da empresa | cadastro da empresa (ADM002) | É obrigatório informar primeiro o tipo de atividade preponderante da empresa. [ADM002] | source/RFI031/URFI031.pas:3040-3041 (TfrmRFI031.btnImprimirClick) |
| MCB001 - Conta de Estoque (parâmetro contábil) | necessário para gerar o Bloco H (inventário) | O Parâmetro "Conta de Estoque" não está Cadastrada! Verifique [MCB001] | source/RFI031/URFI031.pas:531-538 (TfrmRFI031.AddRegistroH) |
Mensagens: causa e ação
É Obrigatório Informar a Empresa para gerar o arquivo!
Causa: O usuário clicou em Gerar sem selecionar a empresa no filtro.
Ação: Selecionar a empresa no campo Empresa da tela antes de gerar.
Fonte: source/RFI031/URFI031.pas:10152-10156 (TfrmRFI031.ValidaCamposTela)
É Obrigatório Informar a Data Inicial para gerar o arquivo!
Causa: Falta a Data Inicial OU a Data Final do período (a mesma mensagem cobre os dois campos).
Ação: Preencher a Data Inicial e a Data Final do período de apuração.
Fonte: source/RFI031/URFI031.pas:10158-10168 (TfrmRFI031.ValidaCamposTela)
Informe o Diretório para Gerar o SPED.
Causa: O campo Diretório está vazio.
Ação: Informar a pasta onde o arquivo texto do SPED deve ser salvo.
Fonte: source/RFI031/URFI031.pas:10170-10174 (TfrmRFI031.ValidaCamposTela)
Não foi Possível Criar o Diretório Informado
Causa: A pasta informada não existe e o Windows não conseguiu criá-la (unidade de disco inexistente ou caracteres inválidos no caminho).
Ação: Informar um caminho válido, com unidade existente e sem caracteres especiais (: * ? " < > |).
Fonte: source/RFI031/URFI031.pas:10184-10196 (TfrmRFI031.ValidaCamposTela)
O Parâmetro "Conta de Estoque" não está Cadastrada! Verifique [MCB001]
Causa: A empresa não tem conta de estoque configurada nos Parâmetros Contábeis.
Ação: Cadastrar a Conta de Estoque da empresa na tela MCB001.
Fonte: source/RFI031/URFI031.pas:535-536 (TfrmRFI031.AddRegistroH)
O Parâmetro "Conta Serv. Comunicação" não está Cadastrada! Verifique [MCB001]
Causa: A empresa não tem a conta de serviço de comunicação configurada nos Parâmetros Contábeis.
Ação: Cadastrar a conta correspondente na tela MCB001.
Fonte: source/RFI031/URFI031.pas:537-538 (TfrmRFI031.AddRegistroH)
A "Conta de Estoque" Cadastrada nos Parâmetros Contábeis [MCB001] está fora de Vigência! Verifique TCB021.
Causa: O plano SPED referencial vinculado à conta de estoque não cobre todo o período do filtro (Data Inicial/Final).
Ação: Ajustar a vigência do plano referencial em TCB021 ou revisar o período informado no filtro.
Fonte: source/RFI031/URFI031.pas:8374-8381 (TfrmRFI031.validaConta)
Existem Registros com Imposto do tipo "ICMS" que não possuem "Código Obrigatório de ICMS à Recolher" Informado [TFI011]!
Causa: Há código(s) de receita de imposto ICMS sem o Código da Tabela SPED Fiscal preenchido.
Ação: Completar o cadastro do(s) código(s) de receita em TFI011.
Fonte: source/RFI031/URFI031.pas:3055-3065 (TfrmRFI031.btnImprimirClick)
É obrigatório informar o tipo do produto do inventário![MFI003]
Causa: O parâmetro fiscal TP_EFDITEMINVENTARIO não está preenchido.
Ação: Preencher o parâmetro na tela MFI003 (Parâmetros Fiscais).
Fonte: source/RFI031/URFI031.pas:3024-3025 (TfrmRFI031.btnImprimirClick)
É obrigatório informar o Perfil![MFI003]
Causa: O parâmetro TP_EFDPERFIL não está preenchido.
Ação: Preencher o Perfil (A ou B) em MFI003.
Fonte: source/RFI031/URFI031.pas:3026-3027 (TfrmRFI031.btnImprimirClick)
É obrigatório informar o Cenário de Depreciação![MFI003]
Causa: O parâmetro "Gera Bloco G" está em 'S' mas o Cenário Fiscal (CD_CENARIOFISCAL) não foi informado.
Ação: Informar o Cenário Fiscal em MFI003 ou desativar a geração do Bloco G.
Fonte: source/RFI031/URFI031.pas:3030-3031 (TfrmRFI031.btnImprimirClick)
É obrigatório informar primeiro o tipo de atividade preponderante da empresa. [ADM002]
Causa: O cadastro da empresa não tem a atividade preponderante preenchida.
Ação: Completar o campo Atividade Preponderante no cadastro da empresa (ADM002).
Fonte: source/RFI031/URFI031.pas:3040-3041 (TfrmRFI031.btnImprimirClick)
Exportação Concluída com Sucesso!
Causa: O arquivo SPED foi gerado sem inconsistências pendentes.
Ação: Nenhuma ação necessária; o arquivo texto está na pasta informada.
Fonte: source/RFI031/URFI031.pas:7937-7937 (TfrmRFI031.btnImprimirClick)
Regras de negócio
RFI031.R001(verregras/RFI031/RFI031.R001.md)RFI031.R002(verregras/RFI031/RFI031.R002.md)RFI031.R003(verregras/RFI031/RFI031.R003.md)RFI031.R004(verregras/RFI031/RFI031.R004.md)RFI031.R005(verregras/RFI031/RFI031.R005.md)RFI031.R006(verregras/RFI031/RFI031.R006.md)RFI031.R007(verregras/RFI031/RFI031.R007.md)RFI031.R008(verregras/RFI031/RFI031.R008.md)RFI031.R009(verregras/RFI031/RFI031.R009.md)RFI031.R010(verregras/RFI031/RFI031.R010.md)RFI031.R011(verregras/RFI031/RFI031.R011.md)RFI031.R012(verregras/RFI031/RFI031.R012.md)RFI031.R013(verregras/RFI031/RFI031.R013.md)RFI031.R014(verregras/RFI031/RFI031.R014.md)RFI031.R015(verregras/RFI031/RFI031.R015.md)RFI031.R016(verregras/RFI031/RFI031.R016.md)RFI031.R017(verregras/RFI031/RFI031.R017.md)RFI031.R018(verregras/RFI031/RFI031.R018.md)RFI031.R019(verregras/RFI031/RFI031.R019.md)RFI031.R020(verregras/RFI031/RFI031.R020.md)RFI031.R021(verregras/RFI031/RFI031.R021.md)RFI031.R022(verregras/RFI031/RFI031.R022.md)RFI031.R023(verregras/RFI031/RFI031.R023.md)RFI031.R024(verregras/RFI031/RFI031.R024.md)
Perguntas frequentes
P: Cliquei em "Gerar Sped Fiscal" e nada acontece, só aparece uma mensagem pedindo a empresa.
R: O campo Empresa é obrigatório. Selecione a empresa no filtro antes de gerar o arquivo.
Fonte: source/RFI031/URFI031.pas:10152-10156 (TfrmRFI031.ValidaCamposTela)
P: Já preenchi a Data Final e mesmo assim aparece "É Obrigatório Informar a Data Inicial".
R: É um reaproveitamento de texto: essa mensagem também dispara quando falta a Data Final. Preencha a Data Final do período.
Fonte: source/RFI031/URFI031.pas:10164-10168 (TfrmRFI031.ValidaCamposTela)
P: O sistema demorou vários minutos processando e, só no final, apareceu um erro dizendo que o arquivo não foi gerado (falta de alíquota geral ou UF da empresa).
R: O SPED processa todos os blocos primeiro e só valida alíquota geral (MFI002) e UF da empresa (ADM002) no final; corrija o cadastro apontado e gere novamente.
Fonte: source/RFI031/URFI031.pas:3076-3087 (TfrmRFI031.btnImprimirClick), source/RFI031/URFI031.pas:7921-7926 (TfrmRFI031.btnImprimirClick)
P: Recebi a mensagem sobre "Código Obrigatório de ICMS à Recolher" não informado [TFI011].
R: Existe um código de receita de ICMS (CODRECEITA) sem o Código da Tabela SPED Fiscal preenchido; complete o cadastro em TFI011 para os códigos de receita de imposto tipo ICMS.
Fonte: source/RFI031/URFI031.pas:3055-3065 (TfrmRFI031.btnImprimirClick)
P: Informei um diretório que não existe, o que o sistema faz?
R: O sistema pergunta se deseja criar a pasta; se confirmar e não conseguir (unidade inexistente ou caracteres especiais no caminho), mostra o motivo possível e não gera o arquivo.
Fonte: source/RFI031/URFI031.pas:10177-10196 (TfrmRFI031.ValidaCamposTela)
P: O Bloco K saiu "fechado" (K001 com indicador de sem movimento), mesmo eu esperando detalhamento de estoque.
R: Isso ocorre quando o parâmetro "Gera Bloco K" (MFI003) está em 'N' ou quando não há saldo de estoque positivo no período; revise o parâmetro e o saldo de estoque da empresa.
Fonte: source/RFI031/URFI031.pas:936-944 (TfrmRFI031.AddRegistroK)
P: Qual a diferença entre Perfil A e Perfil B no SPED Fiscal?
R: O Perfil (TP_EFDPERFIL em MFI003) A gera as notas de venda a consumidor de forma detalhada; o Perfil B consolida essas notas no registro C300 (resumo diário).
Fonte: source/RFI031/URFI031.pas:3089-3089 (TfrmRFI031.btnImprimirClick), source/RFI031/URFI031.pas:5040-5049 (TfrmRFI031.btnImprimirClick)
P: O registro 1600 (cartão de crédito/débito) não saiu no arquivo mesmo a empresa tendo vendas em cartão.
R: Confira o parâmetro "Gera Registro 1600" (MFI003); se estiver em 'N' o registro 1600/1601 não é gerado.
Fonte: source/RFI031/URFI031.pas:7608-7617 (TfrmRFI031.btnImprimirClick)
P: Como habilito o registro das consultas SQL executadas na geração, para investigar um valor divergente?
R: Dê duplo clique sobre o nome da empresa na tela; isso exibe o checkbox oculto "Registrar Consultas SQL".
Fonte: source/RFI031/URFI031.pas:11182-11196 (TfrmRFI031.edtNM_EMPRESADblClick)
P: Apareceu a mensagem que a "Conta de Estoque" cadastrada em MCB001 está fora de vigência.
R: O plano de contas referencial do SPED vinculado à conta de estoque (TCB021) não cobre todo o período informado no filtro; ajuste a vigência do plano ou o período do relatório.
Fonte: source/RFI031/URFI031.pas:8374-8381 (TfrmRFI031.validaConta)
P: Mudei a Data Inicial e a Data Final foi alterada sozinha, isso é normal?
R: Sim: se a Data Inicial ficar maior que a Data Final, ou se a Data Final estiver vazia, o sistema ajusta automaticamente a Data Final para o último dia do mês da Data Inicial.
Fonte: source/RFI031/UdmRFI031.pas:76-84 (TdmRFI031.tabFILTRODT_INICIALValidate)
Dúvidas em aberto (o código não responde)
- O campo "Data inventário ES" (dtpDT_INVENTARIOES) nasce com Visible=False no .dfm e não encontrei nenhum ponto do código que o torne visível. A rotina de reajuste do H005 para o Espírito Santo (chamado 364762) nunca é alcançável pela tela atual? — URFI031.dfm linha 554 define Visible=False; URFI031.pas usa dtpDT_INVENTARIOES.Visible em condicionais (linhas 583 e 702) mas não há atribuição True em nenhum lugar do módulo pesquisado.
- O parâmetro ST_GERAC140 usa 'N' para gerar o C140/C141 de notas de entrada modelo 01 e 'S' para gerar C140 de notas de saída modelo 55 — essa inversão de valores é intencional ou um problema de nomenclatura do parâmetro em MFI003? — URFI031.pas linhas 4166 e 4213-4215
- GetVersaoLayout usa apenas o ano da Data Inicial informada no filtro para escolher a versão do leiaute do SPED. Se o período selecionado cruzar a virada do ano (ex.: 15/12 a 15/01), isso é um comportamento aceito pela Receita ou pode gerar arquivo com leiaute desatualizado para parte do período? — URFI031.pas linhas 10122-10144