СложныйОтборДинамическогоСписка (1С 8.3, 8.2, уф)
Пример кода, устанавливающего отбор в динамическом списке. В качестве параметра процедуры может выступать например "Список.Отбор".
В процедуре создаётся группа "ГруппаПоБеременности" с логическим условием "ИЛИ", в которую добавляется два элемента отбора. В первом элементе проверяется, что поле "ОтпускПоБеременностиИРодам" не заполнено, а во втором, что оно больше или равно текущей дате.
Таким образом отбор выбирает все элементы списка у которых поле "ОтпускПоБеременностиИРодам" не заполнено или больше или равно текущей даты.
Процедура СложныйОтборДинамическогоСписка(Отбор) ГруппаПоБеременности = Отбор.Элементы.Добавить( Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаПоБеременности.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; ЭлементОтбора = ГруппаПоБеременности.Элементы.Добавить( Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтпускПоБеременностиИРодам"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; ЭлементОтбора.Использование = Истина; ЭлементОтбора = ГруппаПоБеременности.Элементы.Добавить( Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтпускПоБеременностиИРодам"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = ТекущаяДата(); ЭлементОтбора.Использование = Истина; КонецПроцедуры |