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

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

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

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

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

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

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

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