Pular para o conteúdo principal

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​

  1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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​

CampoCondiçãoMensagemFonte
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 Inicialsempre, para gerar o arquivoÉ Obrigatório Informar a Data Inicial para gerar o arquivo!source/RFI031/URFI031.pas:10158-10162 (TfrmRFI031.ValidaCamposTela)
Data Finalsempre, 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 destinosempre, para gerar o arquivoInforme o Diretório para Gerar o SPED.source/RFI031/URFI031.pas:10170-10174 (TfrmRFI031.ValidaCamposTela)
PARMFISCAL.TP_EFDITEMINVENTARIOparametrizaçã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_EFDPERFILparametrização MFI003É obrigatório informar o Perfil![MFI003]source/RFI031/URFI031.pas:3026-3027 (TfrmRFI031.btnImprimirClick)
PARMFISCAL.ST_EFDGERABLOCO_Gparametrização MFI003É obrigatório informar o parâmetro "Gera Bloco G"![MFI003]source/RFI031/URFI031.pas:3028-3029 (TfrmRFI031.btnImprimirClick)
PARMFISCAL.CD_CENARIOFISCALobrigató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_Kparametrização MFI003É obrigatório informar o parâmetro "Gera Bloco K"![MFI003]source/RFI031/URFI031.pas:3032-3033 (TfrmRFI031.btnImprimirClick)
PARMFISCAL.ST_EFDGERAREGISTRO_1400parametrização MFI003É obrigatório informar o parâmetro "Gera Registro 1400"![MFI003]source/RFI031/URFI031.pas:3034-3035 (TfrmRFI031.btnImprimirClick)
PARMFISCAL.ST_EFDGERAREGISTRO_1600parametrização MFI003É obrigatório informar o parâmetro "Gera Registro 1600"![MFI003]source/RFI031/URFI031.pas:3036-3037 (TfrmRFI031.btnImprimirClick)
PARMFISCAL.ST_EFDGERAFICHAPADRAOparametrizaçã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 empresacadastro 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 (ver regras/RFI031/RFI031.R001.md)
  • RFI031.R002 (ver regras/RFI031/RFI031.R002.md)
  • RFI031.R003 (ver regras/RFI031/RFI031.R003.md)
  • RFI031.R004 (ver regras/RFI031/RFI031.R004.md)
  • RFI031.R005 (ver regras/RFI031/RFI031.R005.md)
  • RFI031.R006 (ver regras/RFI031/RFI031.R006.md)
  • RFI031.R007 (ver regras/RFI031/RFI031.R007.md)
  • RFI031.R008 (ver regras/RFI031/RFI031.R008.md)
  • RFI031.R009 (ver regras/RFI031/RFI031.R009.md)
  • RFI031.R010 (ver regras/RFI031/RFI031.R010.md)
  • RFI031.R011 (ver regras/RFI031/RFI031.R011.md)
  • RFI031.R012 (ver regras/RFI031/RFI031.R012.md)
  • RFI031.R013 (ver regras/RFI031/RFI031.R013.md)
  • RFI031.R014 (ver regras/RFI031/RFI031.R014.md)
  • RFI031.R015 (ver regras/RFI031/RFI031.R015.md)
  • RFI031.R016 (ver regras/RFI031/RFI031.R016.md)
  • RFI031.R017 (ver regras/RFI031/RFI031.R017.md)
  • RFI031.R018 (ver regras/RFI031/RFI031.R018.md)
  • RFI031.R019 (ver regras/RFI031/RFI031.R019.md)
  • RFI031.R020 (ver regras/RFI031/RFI031.R020.md)
  • RFI031.R021 (ver regras/RFI031/RFI031.R021.md)
  • RFI031.R022 (ver regras/RFI031/RFI031.R022.md)
  • RFI031.R023 (ver regras/RFI031/RFI031.R023.md)
  • RFI031.R024 (ver regras/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