Замена/удаление дублирующихся элементов справочников — задача не всегда простая. Что делать, если у справочника имеются подчиненные? Очевидно, сначала нужно разобраться с подчиненными элементами.
Возможны варианты:
Если у владельца-заменителя есть подходящий подчиненный элемент для замещения, устанавливаем соответствие;
Если на подчиненный элемент нет ссылок, удаляем его
Если нас не устраивает ни то, ни другое, меняем владельца у подчиненного.
На форме имеются соответствующие три кнопки (см. скрин)
Разобраться нужно с каждым по очереди элементом из левого списка. При нарушении очередности результат будет весьма нежелательным.
С компонентой «Расчет» не работает!
31.03.09. Добавлена защита от нарушения последовательности действий.
Заменяемый элемент — владелец удаляется теперь только если был предварительно помечен на удаление. Иначе — помечается.
13.06.09 С благодарностью Pari //infostart.ru/profile/17991/
внес предложенные дополнения
И еще: документы не перепроводятся, а перезаписываются вместе с операцией (если она есть).
Комментарии, замечания??
Вроде, все нормально переносит, я думаю отчет надо немного доработать, поле выбора реквизита «меняем» сделать заполнением списка значений, многим пригодится вариант такой замены.,однозначно +
(3)В смысле, сменить владельца сразу всем?
(0) Есть одно «но». Напишу в личку.
(0) … и еще, у элементов справочника бывают периодические реквизиты с историей значений, а история м.б. создана «вручную» и/или документами…
(6) Ну, с историей реквизита заменяемого элемента разбираться нужно отдельно, конечно. Если история создавалась документами, то придется их перепроводить, наверное.
С историей реквизита подчиненного при переподчинении все в порядке.
Конфигурация ТиС 959 при открытие вылетает ошибка
ПолноеНаименование<<?>>);
{D:WORKКУНИЧКИНЗАМЕНАСПОДЧИНЕНИЕМ.ERT(804)}: Переменная не определена (ПолноеНаименование)
ПолноеИмя правильная переменная ) это так мож кому пригодится
Отличная обработка спасибо автоору )) Переменную только меняйте ПолноеНаименование на ПолноеИмя и все будет ок. Работает нормально ))