Данная обработка представляет собой гибрид двух всем известных обработок: поиск и замена значений и поиск дублей.
Обработка работает на управляемых формах. Ее работоспособность проверялась на конфигурациях Управление Торговлей 11.4.13.209, Бухгалтерия Предприятия 3.0.106.60 на платформе 8.3.20.1674. Однако она теоретически должна работать на любой конфигурации, разработанной на управляемых формах.
Основные возможности обработки
Обработка позволяет искать дубли справочников, документов, а также планов видов расчетов и планов видов характеристик по произвольному набору реквизитов. В дальнейшем можно анализировать, сколько раз использовался какой элемент. В обработке предусмотрена возможность подключаться к внешней базе для того, чтобы проанализировать наличие в ней ссылок на найденные дубли. Также можно задать произвольное условие для определения основного элемента.
Обработка работает на управляемых формах.
В обработке имеется три вкладки: Подбор дублей, Поиск и Найденные значения.
Поиск дублей
Эта вкладка предназначена для поиска дублирующихся объектов. Найденные дубли можно затем перенести в таблицу на вкладке "Поиск" и произвести их замену.
Для того, чтобы найти дубли, первоначально нужно выбрать тип метаданных, с которым будет вестись работа. Возможно выбрать один из следующих вариантов: Справочник, Документ, План Видов Характеристик, План Видов Расчета.
Далее выбирается конкретный справочник, документ и т.п., по которому будет происходить поиск. Например, мы можем выбрать Тип метаданных "Справочник" и Имя "Номенклатура". Рассмотрим работу с обработкой на примере этого справочника.
Единичный поиск (Устаревшая вкладка)
Единичный поиск используется для того чтобы найти элементы справочника, содержащие определенный текст в заданном реквизите. (
Массовый поиск
Для поиска дублей заполняем реквизиты, по совпадению которых мы будем осуществлять поиск. Например, мы хотим найти позиции номенклатуры, у которых совпадают значения кода и наименования. Для этого указываем два реквизита "код" и "наименование". Также в таблице можно поставить галочки:
1) не учитывать пробелы - поиск будет вестись без учетов пробелов (работает только для реквизитов со значением типа "строка");
2) не учитывать регистр - поиск будет вестись без учетов регистра (работает только для реквизитов со значением типа "строка");
3) если указать через знак ";" символы или строки, то при поиске дублей они не будут учитываться. Если нужно исключить также сам знак ";", то его нужно указать как ";", например: 5;1;";";! (работает только для реквизитов со значением типа "строка");
4) в колонке "Выражение обработки" можно указать выражение, которое будет срабатывать перед поиском дублей для данного реквизита. При этом доступно две переменные: "ЗначениеРеквизита" значение данного реквизита и "Ссылка" - ссылка на конкретный справочник, документ и т.п. При этом выражение можно записать в двух вариантах:
а) со знаком "=". Например, мы хотим произвести поиск дублей только по первым трем символам кода. Тогда в строке реквизита код мы запишем
= Лев(ЗначениеРеквизита, 3) либо = Лев(Ссылка.Код, 3)
б) мы можем написать код, в результате выполнения которого новое значение для поиска дублей должно быть записано в переменную "Результат". То же самое мы можем записать, например, следующим образом Результат = Лев(ЗначениеРеквизита, 3)
Отбор
Также мы можем указать отбор. Для этого мы должны поставить галочку "использовать отбор" и в появившейся таблице указать условия отбора. Например, мы можем искать дубли только среди позиций номенклатуры из определенных групп.
Поиск дублей
Для поиска дублей нажимаем на кнопку "Поиск дублей". Обработка найдет дублирующиеся значения и заполнит ими таблицу. В дальнейшем отмечаем для каждой группы дублей основной элемент и нажимаем "перенести дубли", для того чтобы заполнилась таблица "что на что заменять" на вкладке "поиск". При этом переносятся только те группы дублей, которые отмечены галочкой.
Кнопка "Автоопределение основных" позволяет автоматически определить основные элементы (те, на которые будут заменены дубли). Логика определения такая - в качестве основного признается элемент с наибольшим количеством ссылок на него. Если выставить галочку "Использовать подключение в ВИБ", то приоритет будет отдан элементам, которые есть во внешней базе.
Подключение к внешней базе
Подключение к внешней базе используется для того, чтобы проверить, имеются ли среди дублей позиции, встречающиеся также в другой информационной базе. Для этого нужно выставить галочку "Использовать подключение к ВИБ" и на открывшейся вкладке "Настройки подключения" указать необходимые параметры для подключения к другой информационной базе, а также имя метаданных, используемое в ней.
Если прямое подключение невозможно, то в качестве способа подключения нужно указать "Выгрузка", а в качестве источника данных файл *.txt со списком уникальных идентификаторов данного справочника (документа и т.п.). Выгрузить можно с помощью обработки, которая прилагается к публикации. Либо любым другим способом.
В таком случае при автопоиске дублей будет проанализировано, используется ли ссылка во внешней базе, и по умолчанию именно такие ссылки будут обозначены как основные.
Условие основного
Если нажать галочку "использовать условие основного", то откроется текстовое поле, где можно ввести вручную условие, по которому будет определяться основной элемент. В тексте условия используются следующие переменные:
СсылкаНаОбъект - ссылка анализируемый элемент
Результат - если принимает значение Истина, то элемент считается основным.
Например мы хотим отметить в качестве основных только те элементы у которых заполнено поле комментарий. Тогда пишем:
Если СокрЛП(СсылкаНаОбъект.Комментарий) <> "" Тогда
Результат = Истина;
КонецЕсли;
Поиск
На этой вкладке можно указать значения, которые будут заменяться друг на друга (так же, как в стандартной обработке "Поиск и замена значений"). По сравнению со стандартной обработкой здесь имеются следующие изменения:
1) Добавлена кнопка "Поменять местами". Она меняет местами значения в колонках "Что заменять" на "На что заменять". Срабатывает только в тех строках, где установлена пометка. Иногда это бывает необходимо.
2) Добавлена галочка "Копировать тип". Если она стоит, то в поле "На что заменять" тип автоматически выбирается такой же, как и в поле "Что заменять".
3) Добавлена функция обработки заменяемых ссылок. Для этого на вкладке "Поиск" добавлена группа кнопок "Обработка":
Пометить на удаление - установить пометку на удаление на замененные ссылки
Удалить непосредственно - удалить из базы замененные ссылки (удаляет только помеченные на удаление ссылки, требует монопольного режима)
Удалить непосредственно без монопольного - удалить из базы замененные ссылки (удаляет только помеченные на удаление ссылки, монопольный режим не требуется)
4) Добавлено поле "Период", которое позволяет выполнять замену только в определенном периоде. При поиске ссылок будут отбираться только те документы или записи регистров сведений, чьи даты/периоды будут попадать в выбранный интервал времени.
5) Добавлена возможность поиска только по определенным метаданным. Для этого нужно нажать на кнопку "Заполнить дерево метаданных" и галочками отметить те объекты метаданных, в которых нужно произвести поиск (по умолчанию галочки ставятся везде)
6) Добавлены кнопки для сохранения во внешний файл списка соответствия между колонками "Что заменять" и "На что заменять". При этом настройки могут быть открыты и в другой базе, даже если конфигурации у этих баз не совпадают. Важно только, чтобы совпадали имена метаданных заменяемых элементов, например, в обеих базах это был справочник "Контрагенты" и совпадали УИДы.
По нажатию кнопки "Найти ссылки", найденные ссылки попадут в таблицу на вкладке "Найденные значения"
Найденные значения
На этой вкладке находится таблица, которая заполняется объектами содержащими ссылки, которые необходимо заменить. По кнопке "Выполнить замену значений" производится замена значений в найденных ссылках.
На вкладке есть группа кнопок "Обработка". Она содержит следующие кнопки:
- Снять пометку удаления
- Установить пометку удаления
- Провести документы
- Распровести документы
- Удалить записи регистров
- Удалить ссылки непосредственно
- Удалить ссылки непосредственно немонопольно