КомпоновщикНастроек для выполнения отбора на форме

prog1c 131 7 6

Использование компоновки данных для выполнения отбора на произвольной форме Документа, Справочника или Обработки (там где есть Макет). В Макет "ИмяМакета" добавляем схему компоновки с нужным Отбором. В реквизиты формы добавляем элемент "КомпоновщикНастроек" Тип "КомпоновщикНастроекКомпоновкиДанных". Реквизит "КомпоновщикНастроек" размещаем на форме. В ПриСозданииНаСервере он заполнится элементами для отбора из схемы макета.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Инициализация реквизита формы КомпоновщикНастроекОтбор

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

	// если требуется восстановить НастройкиКомпоновщика
	НастройкиКомпоновщика = МояФункцияВосстановленияНастроекКомпоновщика();
	Если НастройкиКомпоновщика <> Неопределено Тогда
		КомпоновщикНастроекОтбор.ЗагрузитьНастройки(НастройкиКомпоновщика);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ВыполнитьОтбор()

	// Произвольная процедура с заполнением таблицы отбора

	ТаблицаОтбора = Новый ТаблицаЗначений;
	
	СхемаКомпоновкиОтбор = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ИмяМакета");
	НастройкиКомпоновщика = КомпоновщикНастроекОтбор.ПолучитьНастройки();

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиОтбор,
					  НастройкиКомпоновщика, , ,
					  Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
		
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ПроцессорВывода.УстановитьОбъект(ТаблицаОтбора);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);

	// в ТаблицаОтбора содержится результат выполнения схемы компоновки
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	// если требуется сохранить существующие НастройкиКомпоновщика
	НастройкиКомпоновщика = КомпоновщикНастроекИсключения.ПолучитьНастройки();
	МояПроцедураСохраненияНастроекКомпоновщика(НастройкиКомпоновщика);
КонецПроцедуры
0

См. также

Инициализация компоновщика настроек, упр формы

Инициализация компоновщика настроек

ПередЗагрузкойНастроекВКомпоновщик (БСП)

ИнициализироватьКомпоновщикНастроек (БСП)

Перенести отбор СКД

Установить отбор пользовательских настроек динамического списка

ЗагрузитьНастройки (БСП)

ПодключитьСхему (БСП)

Открыть форму выбора с отбором (УФ)

Модератору