Quando a falha ocorre?


 Este artigo visa auxiliar na solução do erro 13 This key i already associated with an element of this collection ao escriturar, excluir ou alterar notas/mapas.


Como corrigir o erro?


Ao escriturar, excluir ou editar nota/mapa em empresas que possuem integração fiscal/contábil ocorre o erro 13 This key i already associated with an element of this collection.

Este erro ocorre devido a empresa que possui integração entre o fiscal e contábil possui valores duplicados referente a lançamentos contábeis que forma gravados nas tabelas ctrlintEEEEAA ou nota_ctbEEEEAA.

Importante: Antes de iniciar o procedimento de correção, realize o backup da base geral ou empresa.

Para correção da falha deve-se acessar cada uma das tabelas e identificar se há valores duplicados nas tabelas e efetuar a exclusão dos mesmos.

Identificação e exclusão de valores duplicados na tabela ctrlintEEEEAA (EEEE = Empresa / AA = ano de movimento)

1- Acesse a tabela ctrlintEEEEAA no PCC.

2- Digite o script abaixo:
select docto from ctrlintEEEEAA group by docto having count(docto) > 1;

3- Se for retornado algum valor na consulta acima existem valores duplicados na Tabela com relação ao regisro docto que correponde ao id na tabela notaEEEEAA.

4- Execute a exclusão dos registros duplicados com o script a seguir:
delete from ctrlintEEEEAA where docto in (
select docto from ctrlintEEEEAA group by docto having count(docto) > 1);

Identificação e exclusão de valores duplicados na tabela nota_ctbEEEEAA (EEEE = Empresa / AA = ano de movimento)

5- Acesse a tabela nota_ctbEEEEAA no PCC.

6- Digite o script abaixo:
select * from "nota_ctbEEEEAA" where nr_lcto = '00000000';

7- Se for retornado algum valor na consulta acima existem registros onde há duplicidade de informações com relação ao registro nr_lcto estavam com valor '00000000' e ocorre mais de uma vez.

8- Execute a exclusão dos registros duplicados com o script a seguir:
delete from "nota_ctbEEEEAA" where nr_lcto = '00000000';

9- Atenção para a tabela nota_ctbEEEEAA, pode ser que a coluna nr_lcto não tenha nenhum registro com o valor '00000000', porém pode ser que existam valores duplicados para esta coluna e nesse caso tem que ser verificado se existem duplicidades utilizando o comando abaixo:
select nr_lcto from nota_ctbEEEEAA group by nr_lcto having count(nr_lcto) > 1;

10- Identificado essa situação efetue a exclusão dos valores duplicados:
delete from "nota_ctbEEEEAA" where nr_lcto in (select nr_lcto from nota_ctbEEEEAA group by nr_lcto having count(nr_lcto) > 1);