gifts2017

Поиск и замена дублирующихся элементов: НОВОЕ в Старом

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

Поиск И Замена Дублирующихся Элементов "НОВОЕ в Старом"

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


Подробнее:
В справочнике "Контрагенты" добавляем кнопку делаем процедуру "Название любое" и под эту процедуру вставляем код:
***************
Предупреждение("ВНИМАНИЕ !!! ,Кнопка ""Найти дубли"" работает корректно только в том случае,"+Символы.ПС
+" если ""НАИМЕНОВНИЕ"" указано по нескольким контрагентам ОДИНАКОВО");
СтрПоиска=СТРзаменить(ТипПоискаДанных,"Реквизит","");
ПоискДублей = Обработки.ПоискИЗаменаДублирующихсяЭлементов.Создать();
СтруктураПоиска = Новый Структура(СтрПоиска,"*");
НайденныеОбъекты = ПоискДублей.НайтиДубли(ЭлементыФормы.СправочникСписок.ТекущаяСтрока,СтруктураПоиска);
Если НайденныеОбъекты.Количество() > 0 Тогда
ФормаПоискаДублей = ПоискДублей.ПолучитьФорму("ФормаПоискаРедактирование", ЭтаФорма);
ФормаПоискаДублей.НайденныеОбъекты = НайденныеОбъекты;
Результат = ФормаПоискаДублей.ОткрытьМодально();
Если Результат = Неопределено Тогда
Отказ = Истина;
ИначеЕсли Не Результат = Истина Тогда
Отказ = Истина;
Сообщить(Результат);
КонецЕсли;
КонецЕсли;
***************


Далее все сохраняем в конфигурацию и запускаем 1с.
Если все сделано правильно и выбрано больше 1 одинакового контрагента обработка найдет, и основным будет тот на котором стоит курсор. В форме обработки можно отфильтровать, удалить. переназначить основной элемент, отказаться или поставить на объедение.
При нажатие кнопка объединить делает такую задачу:
в выбранном списке устанавливает в реквизит "КомментариК" - "код" элемента справочника из основного элемента.(Если в справочнике Контрагенты нет такого реквизита то добавьте его "Строка-100 Знаков", в элемент справочника формы не обязательно его показывать в целях не нужных исправлениях пользователями).
Что получилось При запуске обработки ПоискИЗаменаДублирующихсяЭлементов выбираем Справочник - контрагенты. далее поиск по реквизиту "КомментариК" в отборе ставим "КомментариК" не равно "Пустое значение" т.е. оставляем не заполненным. ЖМЕМ отобрать.
В отобранном списке в верхней части выбираем Автоопределение - По дублю комментария. система автоматически установить основным по объединению и можно запускать Групповое объединение элементов.(выделяет жирным шрифтов, если нет перейдите на любую строчку из списка для обновление списка)
На этом все по контрагенту

Аналогично в элементе справочника Контрагенты можно также добавить кнопку ОБЪЕДИНИТЬ договора, принцип тот же, но использует реквизит в справочнике "Наименование для печати".

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

Наименование Файл Версия Размер
ПоискИЗаменаДублирующихсяЭлементовНовый.epf 17
.epf 79,43Kb
07.11.13
17
.epf 79,43Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

2. Алексей Ситников (SiAl) 12.11.13 19:22
Блин, ребята. Вы же программисты, когнитарии, творческая интеллигенция! Как же можно быть такими безграмотными? Не уверен в себе, но хочешь сохранить лицо, так хоть проверь текст на орфографические ошибки (хотя бы) в MS Office Word.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа