Удаление дубликатов записей после переноса конфигурации

Удаление дубликатов записей после переноса конфигурации#

Используется для удаления избыточных дублирующихся записей, которые могут возникнуть при некорректной настройке ключа сопоставления в задачах переноса конфигурации. Скрипт оставляет последнюю версию записи по максимальному id для каждого уникального значения ключевого поля и удаляет остальные.

Место применения: Настройки и сервисы > Управление конфигурацией > Менеджер конфигурации > [Нужная конфигурация] > Вкладка "Задачи" > [Нужная задача] > Вкладка "Состав задачи" > Тип: JEXL-скрипт

Внимание

Требует адаптации под конкретный класс и ключ сопоставления. Перед запуском проверьте имя таблицы, поле группировки в partition by и API-класс, через который выполняется удаление записей.

Тип: JEXL-скрипт

var l = sql(`select t.id
from ( select id, row_number() over (
partition by idAdvRepItem
order by id desc
) as row_num from Bs_AdvRepItemDetType
) as t
where row_num > 1`).asList();
for (w:l){
Bs_AdvRepItemDetTypeApi.delete(Bs_AdvRepItemDetTypeApi.load(w.id))
}
commit();