ECD — Diagnóstico Operacional
Erros Bloqueantes (RedirectWarning)
1. "Contas sem conta referencial"
| Atributo |
Detalhe |
| Tipo |
RedirectWarning |
| Método |
enviar_registro_I050() |
| Condição |
Conta com saldo/movimentação, sem l10n_br_conta_referencial, e l10n_br_cod_nat ∉ ['05', '09'] |
| Botão |
"IR PARA CONTAS" |
| Registro afetado |
I050/I051 |
| Impacto |
Bloqueia TODA a geração |
Causa funcional: A RFB exige que contas de Ativo (01), Passivo (02), PL (03) e Resultado (04) possuam vinculação ao plano referencial. Contas de Compensação (05) e Outras (09) são dispensadas.
Como corrigir:
1. Acessar Contabilidade → Plano de Contas
2. Filtrar contas sem Conta Referencial
3. Preencher o campo Conta Referencial com o código do plano referencial RFB
4. Alternativa: Se a conta não deveria gerar SPED, configurar l10n_br_cod_nat = '05' ou '09'
2. "Contas sem Grupo Sintético"
| Atributo |
Detalhe |
| Tipo |
RedirectWarning |
| Método |
enviar_registro_I155() e enviar_registro_I200() |
| Condição |
Conta com saldo/lançamento no período, sem group_id |
| Botão |
"IR PARA CONTAS" |
| Registro afetado |
I155, I200 |
| Impacto |
Bloqueia TODA a geração |
Causa funcional: A ECD exige estrutura hierárquica — toda conta analítica deve pertencer a um grupo sintético.
Como corrigir:
1. Acessar Contabilidade → Plano de Contas
2. Abrir as contas indicadas
3. Atribuir um Grupo (group_id)
4. Alternativa: Arquivar a conta se não deveria ter movimentação
| Atributo |
Detalhe |
| Tipo |
RedirectWarning |
| Método |
enviar_registro_J930() |
| Condição |
company.l10n_br_contador_partner_id vazio |
| Botão |
"IR PARA EMPRESA" |
| Registro afetado |
J930 |
| Impacto |
Bloqueia TODA a geração |
Como corrigir:
1. Acessar Configurações → Empresa (ou seguir o link do botão)
2. Aba Localização BR
3. Preencher o campo Contador com o contato do contador responsável
4. Verificar se o contato possui: nome, CPF, CRC
Diagnóstico por Registro
Por que o I050 não gerou uma conta?
| Motivo possível |
Como verificar |
Solução |
| Conta sem saldo e sem movimentação |
account.move.line → filtrar pela conta no período |
Correto — conta sem uso não entra |
| Conta de outra empresa |
Verificar company_id da conta |
Verificar empresa selecionada |
| Movimentações não postadas |
account.move → verificar state |
Postar os lançamentos |
| Registro I050 desabilitado |
Empresa → Registros SPED ECD |
Habilitar I050 |
Por que o I155 não trouxe saldo?
| Motivo |
Verificação |
Solução |
| Conta zerada no mês |
Saldo = 0 e movimentos = 0 no mês específico |
Correto — conta ignorada |
| Lançamentos em rascunho |
move.state ≠ 'posted' |
Postar lançamentos |
| Período incorreto |
date_ini e date_fim não cobrem o período |
Ajustar datas no wizard |
| Encerramento inverteu saldo |
Lançamento de encerramento zerou a conta |
Verificar se encerramento foi correto |
Por que o I200/I250 não trouxe determinado lançamento?
| Motivo |
Verificação |
Solução |
| Lançamento não postado |
move.state deve ser 'posted' |
Postar o lançamento |
| Data fora do período |
move.date fora de [date_ini, date_fim] |
Verificar data ou ajustar período |
| Valor total = 0 |
sum(line_ids.debit) == 0 |
Lançamento cancelado ou zerado |
| Linhas com debit=0 AND credit=0 |
Linhas zeradas são ignoradas |
Correto |
| Outra empresa |
move.company_id diferente |
Verificar empresa |
Por que o J100/J150 não trouxe determinado grupo?
| Motivo |
Verificação |
Solução |
l10n_br_cod_nat do grupo ≠ 01/02/03 (J100) ou ≠ 04 (J150) |
Verificar campo no grupo |
Atribuir natureza correta |
| Saldo inicial = 0 E saldo final = 0 |
Grupo sem movimentação |
Correto |
| Grupo de outra empresa |
company_id do grupo |
Verificar empresa |
Por que um campo da empresa saiu vazio?
| Campo |
Registro |
O que verificar |
| CNPJ vazio |
0000, I030 |
Empresa → CNPJ |
| UF vazia |
0000, 0007 |
Empresa → Estado |
| IE vazia |
0000, 0007 |
Empresa → Inscrição Estadual |
| Município vazio |
0000 |
Empresa → Município (com código IBGE) |
| NIRE vazio |
I030 |
Empresa → NIRE (opcional) |
| DT_ARQ vazio |
I030 |
Empresa → Data de Abertura |
| CRC vazio |
J930 |
Contador → campo CRC |
Diagnóstico de Saldos
| Item a verificar |
Como verificar |
| Lançamentos não postados |
Contabilidade → Lançamentos → filtrar por state = 'draft' no período |
| Período divergente |
Comparar date_ini/date_fim da ECD com o período do balancete |
| Encerramento incluído/excluído |
I355 exclui encerramentos, I155 inclui todos — comparar separadamente |
| Contas arquivadas |
Contas inativas podem ter sido excluídas |
| Movimentos de outras empresas |
Verificar company_id em todos os filtros |
Problema de natureza de conta
| Sintoma |
Causa |
Solução |
| Conta de resultado não aparece no I355 |
l10n_br_cod_nat ≠ '04' |
Atribuir natureza 04 na conta |
| Conta aparece no I355 mas não deveria |
l10n_br_cod_nat = '04' indevido |
Corrigir natureza |
Problema de grupo pai
| Sintoma |
Causa |
Solução |
COD_CTA_SUP vazio no I050 |
Grupo sem parent_id (é raiz) |
Correto para grupos raiz |
| Estrutura de nível incorreta |
Hierarquia de parent_id errada |
Reorganizar grupos |
Problema em contas de resultado
| Sintoma |
Causa |
Solução |
| I355 com valores após encerramento |
Lançamentos de encerramento sem flag is_encerramento |
Verificar módulo de encerramento |
| I355 vazio |
Nenhuma conta com cod_nat = '04' |
Atribuir natureza de resultado |
| I355 inclui encerramentos |
is_encerramento não marcado |
Refazer encerramento pelo módulo |
Checklist Pré-Geração
Empresa
Plano de Contas
Lançamentos
Parâmetros do Wizard
Pontos Conhecidos que Requerem Atenção
✅ Resolvido no commit 42d3a28f: O registro J150 (DRE) agora filtra corretamente por l10n_br_cod_nat in ['04'] (contas de resultado), diferente do J100 que filtra por ['01','02','03'] (Ativo/Passivo/PL).
9999 — Contagem de linhas hardcoded
O registro 9999 grava QTD_LIN = 12 (valor fixo no código). O PVA recalcula automaticamente, então não causa rejeição, mas pode gerar warning na validação.
Referências