gifts2017

Как бороться с дубликатами в справочнике "Физические лица"

Опубликовал Сергей Синцов (s.sintsov) в раздел Программирование - Практика программирования

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

Методика борьбы элементарная, но существенно помогла мне избавиться от этой проблемы на 95%:

1. Добавляем в конфигурацию подписку на событие ПередЗаписьюФизЛица

Источник: СправочникОбъект.ФизическиеЛица
Событие: ПередЗаписью
Обработчик: Мой_Дополнительный_ЗУП.ПередЗаписьюФизЛицаПередЗаписью 

2. Добавить общий модуль Мой_Дополнительный_ЗУП, содержащий процедуру

 

Процедура ПередЗаписьюФизЛицаПередЗаписью(Источник, Отказ) Экспорт
	
	Запрос = Новый Запрос;
	
	Запрос.Текст  = 
	"ВЫБРАТЬ
	|	ФизическиеЛица.Ссылка
	|ИЗ
	|	Справочник.ФизическиеЛица КАК ФизическиеЛица
	|ГДЕ
	|	ФизическиеЛица.Наименование = &Наименование
	|	И ФизическиеЛица.Ссылка <> &Ссылка
	|
	|СГРУППИРОВАТЬ ПО
	|	ФизическиеЛица.Ссылка";
	
	Запрос.УстановитьПараметр("Наименование", Источник.Наименование);
	Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
	
	ВремТЗ = Запрос.Выполнить().Выгрузить();
	
	Если ВремТЗ.Количество() > 0 Тогда
		Сообщить("Обнаружен дубликат по ФИО физического лица " + Источник.Наименование, СтатусСообщения.ОченьВажное);
		Отказ = истина;
	КонецЕсли;
	
КонецПроцедуры
 

Оставшиеся 5% случаев заведения дубликатов приходятся на создание новых элементов справочника "Физические лица" при смене фамилии женщинами, вышедшими замуж. Можно подумать на тему расширения контроля путем добавления проверки по ИНН и ДатеРождения.

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Иван (Spartan) 12.08.11 12:32
Вопрос целесообразности публикации опущу... использовать подписку и написать простой запрос, думаю, сможет любой начинающий программист.
А вот по функционалу: проверять наименование в лоб не айс - а если ввели лишний пробел или вместо Иванов Иван Иванович выбрали представление Иванов И. И., Иванов Иван, Иванов И. и т.д.?
2. Serj (Serj1C) 12.08.11 13:19
Да, скучно. Не написали про преимущества подписки на события, про поиск по шаблону (подобно в запросе или полнотекстовым поиском), про поиск и замену дублирующихся значений задним числом и т.д.
3. sitis (s.sintsov) 12.08.11 13:31
Не было цели описать здесь что-то выдающееся, есть масса гораздо более насущных задач. Есть серьезная проблема во всех релизах конфигураций 1С - защита от ошибок в работе рядовых пользователей. Дубликаты по справочнику физ.лиц - встречались абсолютно во всех конторах, с которыми я работал, от маленьких ЧП до огромного холдинга с 3 тыс. активных пользователей 1С. И везде одно и то же. Не спорю, можно предложить гораздо более хитрый алгоритм проверки, это не проблема и кое-где я его реализовывал. Но вот такую простейшую вещицу 1С почему-то не добавляет в свои конфигурации, а стоило бы на мой взгляд. Вместо этого 1С предлагает кучу неочевидных для простых пользователей отчетов, СКД и т.д.... Но не учитывают, что 80% рядовых пользователей путается при заполнении простых форм, не понимает структуры и назначения реквизитов и т.д. и т.п. Эти пользователи хотят одного: настройте мне отчет так, чтобы можно было 1 зеленую кнопку нажать и получить результат.
4. Ийон Тихий (cool.vlad4) 12.08.11 13:42
мне кажется 90% проблем можно решить еще при заведении, правильно организовав это ...насчет поиска, да , здесь все довольно примитивно...
5. Алексей Константинов (alexk-is) 12.08.11 14:57
6. sitis (s.sintsov) 12.08.11 15:03
Спасибо, воспользуюсь, полезная обработка.
7. sanches (sanches) 14.08.11 23:21
Ну а если вдруг окажется, что в холдинге из 3 тысяч у некоторых полностью совпадут ФИО :D
8. Аркадий Кучер (Abadonna) 15.08.11 04:46
(1)
проверять наименование в лоб не айс

Зачем вообще для такой лобовой проверки писать запрос? НайтиПоНаименованию не катит? Одна строчка...
9. sitis (s.sintsov) 15.08.11 09:01
Друзья, еще раз повторюсь, не смотрите на реализацию, можно сделать по-разному, каждый для себя сделает так, как ему удобно и как считает правильным. Я лишь говорю о том, что разработчики 1С в типовых конфигурациях уже давным давно должны были бы добавить проверку на дубликаты справочника Физ.лиц, потому что количество проблем с заведением дубликатов именно по этому справочнику очень велико. Это мой личный опыт работы за 7 лет, предложите универсальную реализацию, я ей с удовольствием воспользуюсь и скажу автору огромное спасибо.
10. Maxim Kolkin (the1) 15.08.11 12:15
ЗИК бюджет - ПолныеПраваЗК.ПроверитьДублиФизлиц - работает восхитительно
11. Александр Рытов (Арчибальд) 15.08.11 12:56
(9) Да это вообще не проблема автоматизатора. Администрация должна рулить.
12. Елена Елена (prog-eg) 15.08.11 13:20
в ЗУП 2.5.38 ФизическиеЛицаКлиент.ФормаЭлементаПриЗаписи => ПолныеПраваЗК.ПроверитьДублиФизлиц
13. sitis (s.sintsov) 16.08.11 16:11
(10)(12) Спасибо! Получается, проверка на дубли по этому справочнику давно есть, как тогда кадровики умудряются их создавать? Или она не в момент создания нового элемента срабатывает? Вопросы риторические - пошел смотреть код.
14. Максим (sh_max) 18.08.11 11:38
В крупной организации обязательно попадутся однофамильцы. Лучше проверять по ИНН или номеру ПФР.

Получается, проверка на дубли по этому справочнику давно есть, как тогда кадровики умудряются их создавать?

Проверка-то есть, выводиться предупреждение, но чаще всего кадровики её игнорируют и делают таки дубли как им не объясняй (по крайней мере у меня так, может у кого кадровики поадекватней работают :D ) А в подписке на события можно вообще запретить сохранения (то самое: Отказ = Истина).
15. Vladimir A (wowik) 19.08.11 09:32
"Выгрузить" 1с не рекомендует применять, засоряет память. Нужно использовать "выбрать".
16. Максим Князев (mad_maksim) 09.09.11 09:56
sitis
Проверка на уникальность физлица в типовом решении есть - выдается предупреждение, но записывается.
Публикацию рекомендую поправить, чтобы новые люди находили эту информацию.
А дубли берутся при загрузке из других программ, это самая частая причина.
17. Елена Цветкова (el.comarova) 26.10.11 15:33
кто бы еще напмсал обработку как лечить если уже прошли начисления зп
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа