Пример программного кода

// имеется форма списка заказов покупателей
// необходимо сделать отбор по нескольким значений (несколько состояний заказа)
// программный код можно добавить как событие при изменении табличной части "Фильтры"
// имеется табличная часть "Фильтры" - список значений по которому будем делать отбор
// в динамическом списке
// "Список" - динамический список

Список.Отбор.Элементы.Очистить();
	
СписокДляОтбора = Новый СписокЗначений;
Для каждого Стр Из Фильтры Цикл
	Если Стр.УстановитьОтбор Тогда
		СписокДляОтбора.Добавить(Стр.Состояние);
	КонецЕсли; 
КонецЦикла;

Если СписокДляОтбора.Количество() = 0 Тогда
	Список.Отбор.Элементы.Очистить();
	Возврат;
КонецЕсли; 


Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СостояниеЗаказа");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
Отбор.Использование = Истина;
Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Отбор.ПравоеЗначение = СписокДляОтбора;
Элементы.Список.Обновить();