Отбор в динамическом списке в 1С 8.3, 8.2
На примере конкретного случая, «Список.Отбор» – будет использоваться в роли параметра для процедуры.
В указанном примере кода, создадим группу «ГруппаVIPСотрудники», где добавим логическое условие «ИЛИ», и 2 параметра отбора. В 1-ом параметре отбора проверим, что поле «ОтпускVIPСотрудники» не заполнено, а во 2-ом, что дата отпуска «VIPСотрудников», БольшеИлиРавно текущей дате.
Элементы «ОтпускVIPСотрудники» с незаполненным полем, либо больших или равных текущей даты, будут итогом отбора.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Процедура ПримерСложногоОтбораДинамическогоСписка(Отбор) ГруппаVIPСотрудники = Отбор.Элементы.Добавить( Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаVIPСотрудники.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; ЭлементОтбора = ГруппаVIPСотрудники.Элементы.Добавить( Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтпускVIPСотрудники"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; ЭлементОтбора.Использование = Истина; ЭлементОтбора = ГруппаVIPСотрудники.Элементы.Добавить( Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтпускVIPСотрудники"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = ТекущаяДата(); ЭлементОтбора.Использование = Истина; КонецПроцедуры |