Имя: Пароль:
1C
 
Методы заполнения непериодического, независимого регистра сведений
Ø (H A D G E H O G s 05.11.2019 10:54)
0 LivingStar
 
05.11.19
10:51
Заполняю по одной задаче непериодический, независимый регистр сведений.
И решил выяснить. Собрать информацию, какие есть все методы для этого?

Я использовал такой, -

    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Пока Выборка.Следующий() Цикл
            Если Выборка.ФИОФизЛица = "Конец таблицы" Тогда
                Продолжить;
            КонецЕсли;
            Если Выборка.ФИОФизЛица = ПредыдущееФИО Тогда
                НомерСтроки = НомерСтроки - 1;                
            КонецЕсли;
            Если ЗначениеЗаполнено(Выборка.ФизическоеЛицоСсылка) Тогда
                Если Выборка.ФИОФизЛица = ПредыдущееФИО и СтрокаВывода = "" Тогда
                    СтрокаВывода = "№ строки " + (НомерСтроки) + "). Найдено несколько карточек физ. лиц " + Выборка.ФИОФизЛица +": " + ПредыдущийКод + ", " + Выборка.Код;
                    Продолжить;
                ИначеЕсли Выборка.ФИОФизЛица = ПредыдущееФИО и Не СтрокаВывода = "" Тогда    
                    СтрокаВывода = СтрокаВывода + ", " + Выборка.Код;
                    Продолжить;
                ИначеЕсли Не СтрокаВывода = "" Тогда
                    СООБЩИТЬ(СтрокаВывода);
                    СтрокаВывода = "";
                    НомерСтроки  = НомерСтроки + 1;                
                КонецЕсли;
                МенеджерЗаписи                         = РегистрыСведений.АнтропометрияФизЛиц.СоздатьМенеджерЗаписи();
                МенеджерЗаписи.ФизическоеЛицо        = Выборка.ФизическоеЛицоСсылка;
                //
                МенеджерЗаписи.Рост                 = ЧИСЛО(СокрЛП(Выборка.Рост));
                // Отбор.Класс(ОдеждаСпециальнаяЗащитная)
                МенеджерЗаписи.РазмерОдежды         = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.ОдеждаСпециальнаяЗащитная, Выборка.РазмерОдежды);
                // Отбор.Класс(СредстваЗащитыНог)
                МенеджерЗаписи.РазмерОбуви          = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.СредстваЗащитыНог, Выборка.РазмерОбуви);
                // Отбор.Класс(СредстваЗащитыГоловы)
                МенеджерЗаписи.РазмерГоловногоУбора = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.СредстваЗащитыГоловы, Выборка.РазмерГоловногоУбора);
                // Отбор.Класс(СредстваЗащитыОргановДыхания)
                МенеджерЗаписи.РазмерПротивогаза    = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.СредстваЗащитыОргановДыхания, Выборка.РазмерПротивогаза);
                // Отбор.Класс(СредстваЗащитыОргановДыхания)
                МенеджерЗаписи.РазмерРеспиратора    = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.СредстваЗащитыОргановДыхания, Выборка.РазмерРеспиратора);
                // Отбор.Класс(СредстваЗащитыРук)
                МенеджерЗаписи.РазмерПерчаток       = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.СредстваЗащитыРук, Выборка.РазмерПерчаток);
                // Отбор.Класс(СредстваЗащитыРук)
                МенеджерЗаписи.РазмерРукавиц        = ПолучитьРазмерПоКлассуСИЗ(Перечисления.КлассыСИЗ.СредстваЗащитыРук, Выборка.РазмерРукавиц);
                Попытка
                    МенеджерЗаписи.Записать();
                Исключение
                    Сообщить("Антропологические данные для физического лица " + Выборка.ФизическоеЛицо + " не записаны!");
                    ДобавитьВЛогЗагрузки(Формат(ТекущаяДата(), "ДФ=HH.mm.ss"), "Антропологические данные для физического лица " + Выборка.ФизическоеЛицо + " не записаны!");
                КонецПопытки;              
                ПредыдущееФИО = Выборка.ФИОФизЛица;
                ПредыдущийКод = Выборка.Код;
            Иначе
                Если Не СтрокаВывода = "" Тогда
                    СООБЩИТЬ(СтрокаВывода);
                    СтрокаВывода = "";
                    НомерСтроки  = НомерСтроки + 1;                
                КонецЕсли;
                СООБЩИТЬ("№ строки " + НомерСтроки + "). Физ лицо " + Выборка.ФИОФизЛица + " не найдено !");                
                ДобавитьВЛогЗагрузки(Формат(ТекущаяДата(), "ДФ=HH.mm.ss"), "№ строки " + НомерСтроки + "). Физ лицо " + Выборка.ФИОФизЛица + " по СНИЛС не найдено !");                
                ПредыдущееФИО = Выборка.ФИОФизЛица;
                ПредыдущийКод = Выборка.Код;
            КонецЕсли;
            НомерСтроки = НомерСтроки + 1;                
        КонецЦикла;
    КонецЕсли;