gifts2017

Обработка удаления дублей предопределенных значений справочников

Опубликовал Денис (Dionis) в раздел Обработки - Обработка справочников

Обработка удаления дублей предопределенных значений справочников, возникающих иногда при распределенной базе.

Началось все с того, что при обновлении Бухгалтерии 3.0 выскочила ошибка "Ошибка при вызове метода контекста (Записать)". При выяснении причин оказалось? что в некоторых справочниках задвоились (троились, ...) предопределенные значения.

Обработка удаления дублей категорически отказывалась их сливать воедино.

Тогда я написал эту обработку.

Принцип прост. В поле Объект выбираете обрабатываемый справочник и нажимаете кнопку "перенумеровать двойные".

Обработка смотрит, по какому полю идет представление справочника (код или наименование), и добавляет к двойным записям цифры по порядку 1,2 и т.д., при этом помечая их на удаление и снимая привязку к предопределенному элементу. После обработки программа прекрасно обновилась, а все помеченные элементы удалил стандартной обработкой удаления помеченных объектов.

Скачать файлы

Наименование Файл Версия Размер
Исправление двойных предопределенных значений 108
.epf 6,69Kb
20.04.15
108
.epf 1.0 6,69Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение
Комментарии
1. Евгения Карук (ekaruk) 22.04.15 09:45
Подход не совсем правильный.
Нельзя просто на автомате без просмотра менять коды куче элементов случайным образом.
Правильнее было проверить, что именно задублировалось, например, этим http://infostart.ru/public/305892/
Сравнить глазами, какой элемент родной и какой лишний.
У лишнего снять пометку предопределенности, и пометить на удаление.
Потом удалить стандартным удалением помеченных.
2. Марина Гинко (_qqq) 22.04.15 11:28
(1) ekaruk,
Буквально сегодня решалась задача удаления задвоенного предопределенного элемента справочника.
К сожалению, обработку заметили после того, как все было сделано.
И пометка предопределенности не снимается никак, ни программно, ни разными редакторами реквизитов.
Т.к. в 8.3 предопределенные элементы привязываются к элементам, которые предопределены в конфигураторе.

Пришлось в конфигураторе удалять предопределенный элемент. Тогда в режиме предприятия два к нему привязанных элемента справочника стали помеченными на удаление и снялась галка Предопределенный. Ну а потом создавать заново предопределенный элемент.

UPD
Между задвоенными предопределенными элементами, по сути, нет никакой разницы. Поэтому и нет разницы какой будет удален.
3. Денис (Dionis) 22.04.15 11:43
(1) ekaruk, ну если придираться, то да. И начал я как раз с Вашей обработки, кстати, спасибо за нее!
Но поняв, что руками я устану все исправлять, сделал вот такой вот автомат. И бодро-весело все поправил :)
4. Евгения Карук (ekaruk) 22.04.15 12:51
(2) _qqq,
И пометка предопределенности не снимается никак, ни программно, ни разными редакторами реквизитов.

Конкретно ошибка "Ошибка при вызове метода контекста (Записать)" не связана с признаком предопределенности. Она связана с задублированным кодом.
Можно было обычной типовой групповой обработкой редактирования реквизитов изменить код, и потом уже снять признак предопределенности обнулив поле "ИмяПредопределенныхДанных".
Между задвоенными предопределенными элементами, по сути, нет никакой разницы. Поэтому и нет разницы какой будет удален.

Обычно один из них давно в базе и на нем есть документы и движения, а второй пришел из другой базы и на нем нет данных. Поэтому удалять нужно именно тот, на котором данных нет.
5. Марина Гинко (_qqq) 23.04.15 09:24
(4) ekaruk, том моем справочнике не было кода (длина кода 0). И к тому же не было контроля уникальности. Это справочник Наборы дополнительных реквизитов и сведений в ERP УП.

Обычно один из них давно в базе и на нем есть документы и движения, а второй пришел из другой базы и на нем нет данных. Поэтому удалять нужно именно тот, на котором данных нет.

Это обычно так. Но у нас произошло ровно наоборот: для родного данных не оказалось, а для нового дубля перенеслись некоторые данные, поэтому дубль и образовался. Переносили, кстати, не самоделками, а типовыми, с ИТС.
6. Дмитрий Барахвостов (dimomys) 23.09.15 17:07
Спасибо, огромное автору!!!!!! Три дня бился с этой проблемой в Бухе 3.0 и вот так просто она решилась.
7. Александр Журавлев (apostal86) 24.11.15 15:47
Спасибо. Уже несколько раз выручала.

Не хватает еще до комплекта обработки удаления дублей предопределенных элементов плана видов характеристик, здесь http://infostart.ru/public/435433/
И планов счетов: http://infostart.ru/public/435451/