Использование компоновки данных для выполнения отбора на произвольной форме Документа, Справочника или Обработки (там где есть Макет). В Макет "ИмяМакета" добавляем схему компоновки с нужным Отбором. В реквизиты формы добавляем элемент "КомпоновщикНастроек" Тип "КомпоновщикНастроекКомпоновкиДанных". Реквизит "КомпоновщикНастроек" размещаем на форме. В ПриСозданииНаСервере он заполнится элементами для отбора из схемы макета.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Инициализация реквизита формы КомпоновщикНастроекОтбор
СхемаКомпоновкиОтбор = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ИмяМакета");
АдресВременногоХранилища = ПоместитьВоВременноеХранилище(СхемаКомпоновкиОтбор, УникальныйИдентификатор);
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВременногоХранилища);
КомпоновщикНастроекОтбор.Инициализировать(ИсточникНастроек);
КомпоновщикНастроекОтбор.ЗагрузитьНастройки(СхемаКомпоновкиОтбор.НастройкиПоУмолчанию);
// если требуется восстановить НастройкиКомпоновщика
НастройкиКомпоновщика = МояФункцияВосстановленияНастроекКомпоновщика();
Если НастройкиКомпоновщика <> Неопределено Тогда
КомпоновщикНастроекОтбор.ЗагрузитьНастройки(НастройкиКомпоновщика);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВыполнитьОтбор()
// Произвольная процедура с заполнением таблицы отбора
ТаблицаОтбора = Новый ТаблицаЗначений;
СхемаКомпоновкиОтбор = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ИмяМакета");
НастройкиКомпоновщика = КомпоновщикНастроекОтбор.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиОтбор,
НастройкиКомпоновщика, , ,
Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаОтбора);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
// в ТаблицаОтбора содержится результат выполнения схемы компоновки
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// если требуется сохранить существующие НастройкиКомпоновщика
НастройкиКомпоновщика = КомпоновщикНастроекИсключения.ПолучитьНастройки();
МояПроцедураСохраненияНастроекКомпоновщика(НастройкиКомпоновщика);
КонецПроцедуры
Инициализация компоновщика настроек, упр формы
Инициализация компоновщика настроек
ПередЗагрузкойНастроекВКомпоновщик (БСП)
ИнициализироватьКомпоновщикНастроек (БСП)
Установить отбор пользовательских настроек динамического списка