bdd2

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

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

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

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


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


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

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

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

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

См. также

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