Имя: Пароль:
1C
1С v8
Выборка по несколько видам документов
0 Черника33
 
04.08.22
12:08
Подскажите пожалуйста, как исправить текущий код, что бы запрос делать выборку только по 3 документам "Паспорт гражданина РФ", "Иностранный паспорт" и "Вид на жительство". Много, что перепробовала, но ничего не работает :(

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

            Если Выборка2.ВидДокументаНаименование = "Паспорт гражданина РФ" Тогда
                Если ОбластьПодвал.Параметры.ДатаВ < Выборка2.ДатаВыдачи Тогда
                    ОбластьПодвал.Параметры.ДатаВ = Формат(Выборка2.ДатаВыдачи, "ДЛФ=ДД");
                    ОбластьПодвал.Параметры.Документ = Выборка2.ВидДокументаНаименование;
                    ОбластьПодвал.Параметры.Серия = Выборка2.Серия;
                    ОбластьПодвал.Параметры.Номер = Выборка2.Номер;
                    ОбластьПодвал.Параметры.КемВыдан = Выборка2.КемВыдан;
                КонецЕсли;
                Прервать;
                
            ИначеЕсли  Выборка2.ВидДокументаНаименование = "Иностранный паспорт" Тогда
                Если ОбластьПодвал.Параметры.ДатаВ < Выборка2.ДатаВыдачи Тогда
                        ОбластьПодвал.Параметры.ДатаВ = Формат(Выборка2.ДатаВыдачи, "ДЛФ=ДД");
                        ОбластьПодвал.Параметры.Документ = Выборка2.ВидДокументаНаименование;
                        ОбластьПодвал.Параметры.Серия = Выборка2.Серия;
                        ОбластьПодвал.Параметры.Номер = Выборка2.Номер;
                        ОбластьПодвал.Параметры.КемВыдан = Выборка2.КемВыдан;
                КонецЕсли;
                Прервать;
            
            ИначеЕсли    Выборка2.ВидДокументаНаименование = "Вид на жительство" Тогда
                Если ОбластьПодвал.Параметры.ДатаВ < Выборка2.ДатаВыдачи Тогда
                        ОбластьПодвал.Параметры.ДатаВ = Формат(Выборка2.ДатаВыдачи, "ДЛФ=ДД");
                        ОбластьПодвал.Параметры.Документ = Выборка2.ВидДокументаНаименование;
                        ОбластьПодвал.Параметры.Серия = Выборка2.Серия;
                        ОбластьПодвал.Параметры.Номер = Выборка2.Номер;
                        ОбластьПодвал.Параметры.КемВыдан = Выборка2.КемВыдан;
                КонецЕсли;
                Прервать;
            
            КонецЕсли;
            КонецЦикла;
1 Фантазер
 
04.08.22
12:14
Сделать запрос на выборку документов по условию ВидДокумента = &СписокВидовДокументов.
В переменную &СписокВидовДокументов программно заталкиваешь список значений "Паспорт гражданина РФ", "Иностранный паспорт" и "Вид на жительство"
Все. запрос должен сработать.
2 Смотрящий
 
04.08.22
12:15
Прикольные запросы в цикле
3 6awkup_true
 
04.08.22
12:18
а разве виды документов это не предопределенные значения? если да, то можно и ГДЕ ДокументыФизическихЛиц.ВидДокумента = Значение(Перечисление.ВидыДокументов.ПаспортГражданинаРФ или  ГДЕ ДокументыФизическихЛиц.ВидДокумента = Значение(...

или если вместо перечисление справочник
4 RomanYS
 
04.08.22
12:22
(1) ВидДокумента В (&СписокВидовДокументов)
(3) можно так
ГДЕ ДокументыФизическихЛиц.ВидДокумента В (Значение(Перечисление.ВидыДокументов.ПаспортГражданинаРФ, Значение(...),...)
5 Черника33
 
04.08.22
17:45
Спасибо решила проблему, через массив
6 SleepyHead
 
гуру
05.08.22
07:27
(3) " разве виды документов это не предопределенные значения"

Про конфигурацию в постановке задачи ни слова не было. В ЗУП 3.1 это справочник, с предопределенными значениями.
7 Ryzeman
 
05.08.22
07:29
(2) Попахивает семёркой)
8 Amra
 
05.08.22
07:33
(7) Ага, с регистрами сведений)