В состав типовых конфигураций 1С на обычных формах входит обработка "Поиск и замена дублированных элементов справочников". Она очень удобна, позволяет за короткое время соединить справочники с одинаковыми наименованиями или по другим похожим реквизитам. Но для решения некоторых задач данного функционала было не достаточно, также были выявлены некоторые ошибки, которые не позволяли заменить ссылки во всех найденных объектах.
Авторская разработка "Удаление дублей объектов" предназначена для поиска дублированных элементов по набору реквизитов и последующему слиянию найденных дублей в единый элемент.
Имеет ряд преимуществ по сравнению с типовой обработкой:
(1) Допускается поиск дублей по нескольким реквизитам (включая владельца и родителя для справочников).
Пример использования: соединить дубли подчиненных справочников. На практике использовалось для справочника "Единицы измерения номенклатуры" и "Характеристики номенклатуры". Реквизитами для поиска дублей будут "Владелец,Наименование". Если запустить поиск дублей только по одному реквизиту "Наименование", то все единицы измерения для разных номенклатур сольются в одну, например "Шт", что будет не корректно.
(2) Возможность заменять/объединять дубли всех ссылочных объектов, не только справочники (документы, счета БУ, планы видов характеристик, узлы обменов данных, счета расчетов, Бизнес-процессы и задачи).
Пример использования: заменить во всех местах один счет БУ на другой.
(3) При замене ссылок обрабатываются общие реквизиты.
Пример использования: объединение организаций. В некоторых конфигурациях это общий реквизит, соответственно его также нужно обрабатывать при замене.
(4) При замене ссылок в движениях документов удаляются дубли записей регистров сведений.
Пример использования: документ, создающий движения по зависимому регистру сведений (подчиненному регистратору). В движениях документа по регистру сведений из-за объединения дублей могут появиться дубли ключей записей регистра сведений, из-за этого движения документа не запишутся и замена дублей вылетит с ошибкой.
(5) При обработке последовательностей документов добавлена проверка наличия документов (в типовой обработке возникала ошибка).
На практике были случаи, когда в последовательности документов было 0 документов, но типовая обработка обращалась к элементу по индексу 0, что приводило к ошибке. Вставлена проверка перед обращением к элементам последовательности.
(6) при замене в проводках корректно обрабатываются субконто забалансовых счетов.
На практике были замены в проводках с забалансовыми счетами. Доработан функционал для замен в таких проводках.
Применима для конфигураций на обычных формах, для толстого клиента 1С. Тестировалась на платформе 8.3.10.2561, на предыдущих платформах 8.2.x большая вероятность корректной работы.
Инструкция
1. Сначала нужно выбрать объект метаданных, в котором будем удалять дубли. По умолчанию обработка предлагает выбрать один из справочников. Нужно нажать на "..." в поле объект и выбрать нужный справочник.
Обработка также допускает выбор любых ссылочных метаданных (например Документы, Планы видов характеристик и т.д.). Для этого нужно нажать на "X" и попытаться выбрать объект, будут предложены все ссылочные метаданные.
2. Рассмотрим на примере подчиненного справочника "Договоры контрагентов". Выберем Реквизит поиска "Наименование". Нажмем кнопку "Найти дубли".
В следующем окне появятся задублированные элементы по наименованию. На самом деле некорректно объединять все Основные договора в 1, т.к. они принадлежат разным контрагентам.
Вернемся к началу поиска. Выберем еще один реквизит поиска "Владелец" (при выборе реквизиты добавляются через ",").
После добавления Владельца в реквизиты поиска выборка дублей сократилась. Теперь договоры разбиты по группам, в которых они имеют одинаковое наименование у одного владельца. В данном случае корректно объединять такие дубли.
В результатах поиска в верхней таблицы перечисляются группы дублей, в нижней - состав группы.
Запустим автоопределение правильных элементов (В группах дублей определяется элемент, который чаще используется).
После автоопределения правильных элементов в каждой группе будет выбран элемент с наибольшим количеством ссылок. Выполняем замену.
В следующем окне обработка найдет все ссылки на дубли (кроме ссылок на правильный элемент) и предложит выполнить замену на правильный элемент.
Нажимаем "Выполнить замену элементов".
Замена может занять некоторое время, в зависимости от количества ссылок.
При успешном выполнении дубли не появятся в следующем поиске.