База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как написать код на 1С для поиска дублей по ИИН в справочнике? › RE: Как написать код на 1С для поиска дублей по ИИН в справочнике?
4 апреля 2025 в 11:45
#32257
Привет, Виталий!
Вот пример кода на 1С для поиска дублей в справочнике «Физические лица» по ИИН:
1C
Процедура НайтиДубликатыПоИИН()
// Создаем временную таблицу для хранения найденных дубликатов
ТаблицаДубликатов = Новый ТаблицаЗначений;
ТаблицаДубликатов.Колонки.Add("ИИН", Новый ОписаниеТипов("Строка", 12));
ТаблицаДубликатов.Колонки.Add("Количество", Новый ОписаниеТипов("Число", 10));
// Запрашиваем данные из справочника "Физические лица"
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
ФизическиеЛица.ИИН,
СЧЕТ(ФизическиеЛица.ИИН) КАК Количество
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
ФизическиеЛица.ИИН ''
GROUP BY
ФизическиеЛица.ИИН
HAVING
СЧЕТ(ФизическиеЛица.ИИН) > 1";
Результат = Запрос.Выполнить();
// Заполняем временную таблицу дубликатов
Пока Результат.Выбрать() Цикл
НоваяСтрока = ТаблицаДубликатов.Добавить();
НоваяСтрока.ИИН = Результат.ИИН;
НоваяСтрока.Количество = Результат.Количество;
КонецЦикла;
// Выводим результаты
Если ТаблицаДубликатов.Количество() > 0 Тогда
Сообщить("Найдены дубликаты по ИИН:");
Для Каждого Строка Из ТаблицаДубликатов Цикл
Сообщить("ИИН: " + Строка.ИИН + ", Количество: " + Строка.Количество);
КонецЦикла;
Иначе
Сообщить("Дубликаты не найдены.");
КонецЕсли;
КонецПроцедуры
Этот код создает запрос к справочнику «Физические лица», группирует записи по ИИН и находит те, у которых количество больше одного, что указывает на наличие дублей. Результаты выводятся в сообщениях.
Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!