Обработка постоена по типу помощника. На первой странице устанавливается объект метаданных с которым предполагается работать. Список ограничен справочниками и видами характеристик (может быть расширен как угодно раскоменнтированием пары строк в коде). Для принятия решения что на что менять можно настроить критерии определения заменяемых объектов (заполнение реквизитов не учитывает табличные части). Правила сравнения должны включать как минимум одно правило. Вид сравнения «Равенство» и «Содержит». Условие «Содержит» работает аналогично конструкции «Подобно» в запросе. Виды сравнения могут быть расширены раскомментированием строк в коде. Дополнительные сравнения на Владельца и ЭтоГруппа жестко вшито в код во избежании роковых ошибок. В отборе можно ограничить выборку проверяемых данных. На второй странице можно просмотреть и отредактировать (удалить или поменять местами) список дубликатов. На третьей странице можно просмотреть список объектов, в которых будет произведена замена. На этом этапе ещё можно отказаться от выполнения без обработки. На последней странице можно выбрать либо пометку на удаление либо полное удаление замененных объектов. Физическое удаление производится после контроля ссылочной целостности. Обработка не учитывает структуру базы данных, поэтому после удаления дубликатов надо проверить на дубликаты и подчиненные объекты метаданных (например, после удаления дубликатов контрагентов, надо проверить на дубликаты и договора контрагентов).
Внимание! Обработка производит массовую модификацию объектов баз данных и (при определенных настройках) полное удаление объектов. Поэтому знакомство с обработкой рекомендуется проводить на копиях баз данных. Разработчик ответственности за потерянные данные не несет.
Обработка включает в себя модифицированные части кода из широко известных универсальных обработок 1С.
Полезная штука. судя по описанию!
Привет. Данная обработка может менять ссылки у подчиненных объектов как стандартная из УПП. Например (Контрагент — договора)
(2) students,
Это вопрос? Я стандартные обработки как в УПП так и в других типовых конфигурациях не использую во избежании (был опыт использования встроенной обработки перепроведения документов).
Эта обработка не учитывает подчинение, т.к. не знает структуру конфигурации. Если мы делаем из 2 контрагентов одного, то результатом будет 1 контрагент с 2 договорами контрагентов (в простейшем случае) от первого и от второго контрагента по одному. Поэтому после этой операции надо чистить и договора контрагентов со сравнением на равенство организации и вида договора, например, или ещё по наименованию (если договоры учтены по номерам и т.п.).Аналогично, номенклатура и единицы измерения номенклатуры (в торговле и УПП) и т.п. А вообще попробуйте на копии базы и все сами увидите…
Отличная штука!Правда, каждый раз пользуюсь и боязно при большом кол-ве номенклатуры…
Единственная адекватная замена типовой обработке «Поиск и замена дублирующихся элементов справочников» под УФ. Автору плюс и спасибо.
Нет возможности вести поиск по владельцу — для тех же договоров контрагента.
При поиске дубликатов владелец учитывается автоматически. То есть, если мы ведем поиск по совпадению наименований договоров, например, то в качестве дубликатов будут отобраны только те договора, в которых совпадает и наименование и владелец договора. Этот дополнительный элемент поиска жестко встроен в код во избежании фатальных невосстановимых изменений данных (например, замены во всех документах единицы измерения лишь одной номенклатуры).
Автору большое спасибо, для управляемых форм больше ничего не нашел, а самому писать было лень
потестируем) автору плюс
Дубли на удаление нормально помечает, но не удаляет. Что сделать чтобы удалить дубли?
Самое простое — не установлен флажок «Удалить замененные объекты с контролем ссылочной целостности».
А вообще различных вариантов может быть много. Например, у пользователя нет прав на удаление объектов.
Если объекты удаляются, но не все, надо запустить поиск ссылок и проверить не остались ли ещё не замененные реквизиты. Такие случаи могут быть вызваны особенностями конкретной конфигурации.
(11) самое интересное что в тонком клиенте ссылки не удаляются, а в толстом под этим же пользователем с такими же правами удаляются.
Проверил ещё раз на базе (файловый вариант). Все вроде бы работает нормально.
Обработка полностью открытая, поэтому советую Вам посмотреть в отладчике, в чем там проблема. Код там несложный и понятный, можно сделать выводы даже в серверном варианте без отладочного режима (функция УдалитьОбъектыНаКлиенте()). Если этим займетесь, сообщите о конкретной обнаруженной проблеме — исправлю…
Спасибо автору за публикацию!
Стартмани сняли, а файл не скачал! Обидно!
Имеется файловая база, БП 2.0 (2.0.56.2), толстый клиент. На этапе «замена ссылок на дубликаты» возникает ошибка — Индекс находится за границами массива
Как быть?
Скорректировал в обработке код.
Вы можете исправить у себя:
на
Показать
(17) Спасибо!!!
А как галочки поставить на то что я хочу удалить. Или удалять обязательно все объекты которые нашла обработка? А если я так не хочу?))
Эта обработка задумана как технологический инструмент для быстрого и окончательного сноса дубликатов, возникших, например, при ошибках в схемах конвертации данных. Практически все видели, например, две валюты «рубли» с разными кодами. Если же есть желание оставить дубликаты, их можно только пометить на удаление, потом с помощью обработки «Удаление помеченных объектов» удалить, то что необходимо удалить, с остальных пометку снять. И, конечно, Вы можете доработать эту обработку.
Отличная обработка. Спасибо!
Очень нужная обработка, спасибо! Было бы супер, если бы функция Поменять местами работала для всех выделенных строк!
годная обработка,
но в УТ 10.3 и РТ 1.0 ни в какую не захотела удалять одну и ту же (обмен УТ<>РТ), позицию номенклатуры, пришлось удалить непосредственно,