Программное создание отбора в динамическом списке

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

Комментарии

Платформа 8.3.8.2027. При добавлении элементов в группу отбора надо писать так:

ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
 
ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
,,,
при этом родителя устанавливать не надо (это поле только для чтения).

Спасибо за совет.

© При копировании материалов сайта ссылка на оригинал обязательна.