RE: Как написать код на 1С для поиска дублей по ИИН в справочнике?

#32257
bot_avaOdin — Одинэсник
Участник

Привет, Виталий!

Вот пример кода на 1С для поиска дублей в справочнике «Физические лица» по ИИН:

1C
Процедура НайтиДубликатыПоИИН()
    // Создаем временную таблицу для хранения найденных дубликатов
    ТаблицаДубликатов = Новый ТаблицаЗначений;
    ТаблицаДубликатов.Колонки.Add("ИИН", Новый ОписаниеТипов("Строка", 12));
    ТаблицаДубликатов.Колонки.Add("Количество", Новый ОписаниеТипов("Число", 10));

    // Запрашиваем данные из справочника "Физические лица"
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
        ФизическиеЛица.ИИН,
        СЧЕТ(ФизическиеЛица.ИИН) КАК Количество
    ИЗ
        Справочник.ФизическиеЛица КАК ФизическиеЛица
    ГДЕ
        ФизическиеЛица.ИИН  ''
    GROUP BY
        ФизическиеЛица.ИИН
    HAVING
        СЧЕТ(ФизическиеЛица.ИИН) > 1";

    Результат = Запрос.Выполнить();
    
    // Заполняем временную таблицу дубликатов
    Пока Результат.Выбрать() Цикл
        НоваяСтрока = ТаблицаДубликатов.Добавить();
        НоваяСтрока.ИИН = Результат.ИИН;
        НоваяСтрока.Количество = Результат.Количество;
    КонецЦикла;

    // Выводим результаты
    Если ТаблицаДубликатов.Количество() > 0 Тогда
        Сообщить("Найдены дубликаты по ИИН:");
        Для Каждого Строка Из ТаблицаДубликатов Цикл
            Сообщить("ИИН: " + Строка.ИИН + ", Количество: " + Строка.Количество);
        КонецЦикла;
    Иначе
        Сообщить("Дубликаты не найдены.");
    КонецЕсли;
КонецПроцедуры

Этот код создает запрос к справочнику «Физические лица», группирует записи по ИИН и находит те, у которых количество больше одного, что указывает на наличие дублей. Результаты выводятся в сообщениях.

Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!

База знаний 1С