# Обработка «Поиск и замена дублей»

Совместимость с платформой 8.1.8+

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

На закладке "Настройка" поле "Объект поиска" позволяет выбрать нужный справочник или план видов характеристик, в котором нужно искать. Это поле является обязательным для заполнения.

Поиск выполняется по ключу, состав которого задается в таблице "Настройка сравнения и порядка". Там нужно выбрать те поля (поля сравнения), которые должны быть одинаковы у элементов. Тип сравнения полей кроме "по равному значению реквизита" может быть установлен в "по похожим словам" у одного строкового поля. В этом режиме выполняется поиск элементов, имеющих похожие значения указанного реквизита. При этом выполняется как анализ входящих в значение отдельных слов (например, данный режим позволить найти такие элементы как «Пластинформ», «ООО Пластинформ», «Пластинформ ООО»), так и побуквенное сравнение каждого слова (Иванов Иван Иванович, Иванов Иван Ивонович). Для произведения поиска необходимо выбрать хотя бы одно поле сравнения.

Поиск выполняется только среди тех элементов, каждый из которых удовлетворяет отбору. Отбор можно задать в таблице "Отбор" по любым полям. Например, данная возможность позволить отобрать и выполнить замену элементов с похожими наименованиями, входящих в одну и ту же группу (отбор по значению поля «Родитель», тип сравнения «В иерархии»).

При использовании типа сравнения «по похожим словам», дополнительным параметром поиска является - «степень соответствия объектов». Значение данного параметра задается в отдельной форме настроек, вызываемой нажатием кнопки «Настройка» командной панели. Установка этого значения выполняется с помощью условной оценочной шкалы, имеющей крайние значения «Не отличаются» и «Значительно отличаются». Соответственно, при значении «Не отличаются» обработкой отбираются элементы, значения указанного реквизита которых отличаются только различным порядком слов в значении, например, «ЗАО ТД Нева» и «Нева ТД ЗАО». В случае установки значения параметра отличного от «Не отличаются» допускается как различия в составе слов значения («Свергуненко А.В., ИП» и «Свергуненко А.В»), так и различие в самих словах («Иванович» и «Ивонович»). Соответственно, в самом правом положении ползунка степень допустимого различия максимальна. По умолчанию значение данного параметра установлено как оптимальное для поиска, но в отдельных случаях может требовать изменения.

Запуск процедура поиска выполняется нажатием кнопки «Найти элементы».

После выполнения поиска автоматически активизируется закладка "Результаты поиска". Потенциально дублирующиеся элементы разбиваются по отдельным группам. Список выявленных групп отображается в таблице "Найденные группы". Набор колонок этой таблицы определяется теми полями сравнения (ключом), которые были заданы при поиске. Состав текущей группы отображается в таблице "Элементы текущей группы", которая содержит по колонке для каждого реквизита объекта, но по умолчанию они скрыты. Для установки новой текущей группы нужно выполнить двойной щелчок в ее строке в колонке "Вывести группу", фон которой окрашен зеленым цветом. Когда группа становится текущей, фон ее строки становится розовым. Состав текущей группы возможно изменять - удалять элементы заведомо не являющиеся дублирующимися или, наоборот, вручную добавить элемент в список. (Данная возможность также позволяет не выполнять предшествующий поиск, а вручную заполнить весь список для последующей обработки, например, если никакими средствами получить желаемые результаты поиска не получается).

Для выполнения полной замены всех ссылок на дублирующие элементы на правильный элемент, необходимо указать обработке этот элемент, путем нажатия кнопки «Указать как правильный» командной панели. После выполнения данного действия выбранный элемент подсвечивается другим цветом фона. После чего нажать кнопку «Поиск ссылок». Поиск ссылок на объекты, их замена, а также последующее удаление выполняется только для элементов выбранной текущей группы.

Результаты поиска ссылок на объекты отображаются на закладке «Замена». Здесь можно открыть любой ссылающийся объект путем двойного клика. После выполнения поиска нажатием кнопки «Выполнить замену» запускается замена всех ссылок на объекты на выбранный в предыдущем шаге правильный элемент.

Выполнение замены ссылок возможно выполнять в одной транзакции, путем установки флажка «Выполнять в транзакции». В этом случае замена будет произведена только для всех элементов одновременно. Любая неудачная попытка замены одной из ссылок отменит все сделанные до этого изменения в данных. При этом следует учитывать, что в некоторых случаях может сложиться ситуация, когда полностью автоматически замену выполнить не удастся. В таких случаях можно применять комбинированный подход - выполнять замену автоматически, после чего корректировать данные вручную, после чего опять запускать автоматическую замену. Соответственно, при таком подходе использование транзакции будет невозможным.

Перед замещением в независимых регистрах сведений в случае склеивания записей по новым наборам значений измерений (ключам) открывается диалог настройки замещения, где отображаются отличия в ресурсах конфликтующих записей и можно выбрать, какую именно запись оставить. Это актуально, когда производится замена дублей объектов, у которых много свойств хранится в независимых непериодических регистрах сведений. В качестве примеров можно привести регистры из типовых конфигураций "Права доступа пользователей", "Значения свойств объектов", "Настройки пользователей". В форме замещения записей независимых регистров сведений нужно установить флажки в тех строках, колонки "Замена: <Имя ресурса>" в которых содержат более правильные данные, чем колонки "Оригинал: <Имя ресурса>".

Выполнение замен с отключенными проверками регистрируется в журнале регистрации (событие - "Запись с флагом Загрузка").

После того, как все ссылки на дублирующиеся элементы заменены на указанный правильный элемент (список найденных ссылок пуст) возможно выполнение процедуры непосредственного удаления этих элементов. Данная процедура запускается кнопкой «Удалить элементы».

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

ВАЖНО! При выполнении замены ссылок, контроля правильности устанавливаемых значений не выполняется. Также следует учитывать, что ссылки заменяются именно в том объекте, в котором они найдены. Например, если ссылка найдена в движениях документа, она будет заменена в наборе записей соответствующего регистра, сам документ при этом перепроводиться не будет! Кроме этого, необходимо помнить, что действия, выполняемые данной обработкой, являются необратимыми.

Страница проекта - http://infostart.ru/projects/1134/