gifts2017

Подсистема автоматического удаления дублей в справочниках (управляемые формы, любая конфигурация)

Опубликовал Пафнутий Чебышев (primat) в раздел Администрирование - Чистка базы

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

"Покажите мне свой справочник контрагентов и я скажу, какой у Вас порядок в учете".

Такая есть у 1С-ников поговорка.

Удаляете дубли - просто хотите спрятать свои проблемы?

Поймите правильно, я двумя руками за то, чтобы бороться с причиной, а не следствием. Обычная причина появления дублей справочников - или некорректный ввод новых элементов справочников (без проверки) или обмены. Причем, например, Вы можете использовать только типовые правила обмена и все равно столкнетесь с проблемой появления дублей.

Пример:

Ведется учет в ЗУП 2.5, БП 3.0 и УТ 11.1. Из ЗУП в БП только загружаются проводки и справочники. При этом поиск в типовых правилах ведется по наименованию и дате рождения физлица. Проверяется полное совпадение. При обмене между БП и УТ поиск только по уникальному идентификатору. Если в ЗУП не заполнить дату рождения, с высокой вероятностью, будут появляться дубли. В ситуации, например, когда ввели новое физлицо (сотрудника) и в ЗУП, и в УТ до обмена. Так как поиск не сработает.

В каких случаях полезно внедрение такой подсистемы?

Бывает, что обязанность за администрированием базы 1С лежит на специалисте 1С. В том числе проведение обменов, контроль данных. В таком случае присутствие или отсутствие дублей справочников будет для пользователей базы показателем качества ее обслуживания. Разумеется, надо бороться с причиной появления дублей. Рекомендую анализировать журнал регистрации или настроить отправку сообщений об удалении дублей себе на электронную почту.

Как установить подсистему себе в конфигурацию?

Код подсистемы, разумеется, открыт. Внедрение возможно в любую конфигурацию на управляемых формах на 1С 8.2 или 1С 8.3. Для внедрения подсистемы сделайте сравнение и объединение с файлом cf из этой публикации. Далее настройте регламентное задание, если необходим его запуск. Если не нужен, то зайдите в регистр Настройки удаления дублей. Добавьте записи для справочников с именем справочника, списком полей поиска, разделенными точкой с запятой. Пример настройки для справочников Физические лица и Сотрудники приведен на скриншоте.

После настройки удаление дублей возможно проводить либо запуском обработки, либо автоматически с помощью настроенного регламентного задания.

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

Алгоритм замены ссылок на удаляемый объект взят из типовой обработки поиска и замены значения из ИТС.

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

Наименование Файл Версия Размер
Подсистема удаления дублей справочников 31
.cf 21,28Kb
31.07.15
31
.cf 1 21,28Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение
Комментарии
1. Глеб Зломанов (Glebis) 31.07.15 15:17
Поиск дублей по неточному соответствию есть?
2. Пафнутий Чебышев (primat) 31.07.15 15:18
(1) Glebis, пока нет, имеете в виду по частичному совпадению полей, да?
3. Глеб Зломанов (Glebis) 31.07.15 15:27
(2) primat, ага именно.
Ещё вопросы:
- есть ли лог выполнения, в первую очередь интересует лог регламентного задания?
- есть ли возможность проводить проверку на дубль в ОбработкаПроверкиЗаполненияНаСервере элемента справочника? Очень бы пригодилась проверка с неточным соответствием...
- не понятно как отработает система, если будет, например, 2 физ лица, и только у одного из них будет заполнено поле ДР. Как я понял подсистема воспримет их как разные элементы.
- как подсистема определит бОльщий код, если код элементов с разными префиксами?
- используется ли полнотекстовый индекс? Мало ли..
- Вас реально зовут "Пафнутий"?
4. Пафнутий Чебышев (primat) 31.07.15 16:34
(3) Glebis,
1) Лог, да, ведет, в таком виде - как на скриншоте.
2) Подобный алгоритм ведь есть в типовых конфигурациях (проверка перед записью). Возможно, лучше им воспользоваться. Т.к. другая немного задача.
3) Тут Вам решать. Если организация большая, то настройки лучше указать, как я привел на скриншоте. Тогда да, это будут разные элементы. Если фирма маленькая, то достаточно оставить только наименование и тогда дубль удалит. Но остается надеяться, что полные тезки не придут на работу в эту компанию.
4) Как сравнение строк определит.
5) Нет. Обычный метод НайтиСсылки.
6) Нет. Просто он человек хороший.
5. Александр Шумейко (shum_ont) 27.11.15 11:56
а умеет ли она решать проблему с ключами аналитики в ут 11?
6. Пафнутий Чебышев (primat) 27.11.15 14:25
(5) shum_ont, думаю, что да, надо проверить. Далее переписка лично.