6633 - Erro ao gerar a Dirf - Registros referenciados (R051COL - R051BEN)
Problema: Ao realizar o processo de geração da Dirf, estamos com a mensagem:
Não é possível excluir este registro pois ele está sendo referenciado por outro registro no banco de dados.
R051COL(NumEmp;CodFil;CodRet;TipIrf;CpfCgc;OriAnu) --> R051BEN (NumEmp;CodFil;CodRet;TipIrf;CpfCgc;OriAnu).
Quando ocorre / onde se aplica: Ao realizar o processo de geração da Dirf, em Anuais > Informe/Dirf > Gerar.
Solução: Na geração da Dirf, o sistema verifica se o colaborador tem informações na tela de Rendimentos (R051COL) e caso não tenha, a informação na tabela R051BEN é excluida. Como neste caso constam informações na tabela R051COL, o sistema apresenta a mensagem descrita acima, ou seja, não consegue excluir a informação pois tem registros na tabela Filho.
Abaixo comando para verificar quais colaboradores tem registros na R051COL e não tem na R051BEN:
select * from r051col a where not exists (select * from r051ren b where a.numemp = b.numemp and
a.codfil = b.codfil and a.codret = b.codret and a.tipirf = b.tipirf and a.cpfcgc = b.cpfcgc and
a.orianu = b.orianu)
Neste caso, deve-se conferir o que for listado no comando, se realmente estiver incorreto, deletar as informações da R051COL que não existem na R051REN, conforme comando acima.
Não é possível excluir este registro pois ele está sendo referenciado por outro registro no banco de dados.
R051COL(NumEmp;CodFil;CodRet;TipIrf;CpfCgc;OriAnu) --> R051BEN (NumEmp;CodFil;CodRet;TipIrf;CpfCgc;OriAnu).
Quando ocorre / onde se aplica: Ao realizar o processo de geração da Dirf, em Anuais > Informe/Dirf > Gerar.
Solução: Na geração da Dirf, o sistema verifica se o colaborador tem informações na tela de Rendimentos (R051COL) e caso não tenha, a informação na tabela R051BEN é excluida. Como neste caso constam informações na tabela R051COL, o sistema apresenta a mensagem descrita acima, ou seja, não consegue excluir a informação pois tem registros na tabela Filho.
Abaixo comando para verificar quais colaboradores tem registros na R051COL e não tem na R051BEN:
select * from r051col a where not exists (select * from r051ren b where a.numemp = b.numemp and
a.codfil = b.codfil and a.codret = b.codret and a.tipirf = b.tipirf and a.cpfcgc = b.cpfcgc and
a.orianu = b.orianu)
Neste caso, deve-se conferir o que for listado no comando, se realmente estiver incorreto, deletar as informações da R051COL que não existem na R051REN, conforme comando acima.
OBS: não necessariamente os registros com problema são referente ao ano base, pode ser registros antigos(importados)
Salientamos a importância do backup da base antes de efetuar o delete, como medida de segurança.
Salientamos a importância do backup da base antes de efetuar o delete, como medida de segurança.