Шаблон метода для заполнения Таблицы формы данными из СКД по макету

СергейТ 132 5 11

Например, в обработку можно добавлять макеты СКД, и в обработке использовать их для заполнения Дерева или Таблицы значений

&НаСервере
Процедура ОбновитьДанныеТаблицы(Вариант = "СворачиваниеНулевыхОстатков")
	
	ОбъектОбработки = РеквизитФормыВЗначение("Объект");
	
	СхемаКомпоновкиДанных = ОбъектОбработки.ПолучитьМакет(Вариант);
	
	// ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос;
	ТекстЗапроса = ТекстЗапросаДляСхемы(СхемаКомпоновкиДанных, Вариант);
	
	Если КоличествоВыдаваемыхПозиций = 0 Тогда
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, " ПЕРВЫЕ 100", "");
	Иначе
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, " ПЕРВЫЕ 100", " ПЕРВЫЕ " + КоличествоВыдаваемыхПозиций);
	КонецЕсли;
	
	СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса;
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
	КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
	КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
	
	ТекПараметр = Новый ПараметрКомпоновкиДанных("ДатаОтчета");
	ТекЗначение = КонецДня(ДатаОтчета);
	КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ТекПараметр, ТекЗначение);
	
	МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
	                                                    КомпоновщикНастроек.ПолучитьНастройки(),
	                                                    ,
	                                                    ,
	                                                    Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	
	ДанныеОстатков_ = Новый ДеревоЗначений;
	ПроцессорВывода.УстановитьОбъект(ДанныеОстатков_);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	ЗначениеВРеквизитФормы(ДанныеОстатков_, "ДанныеОстатков");
	
КонецПроцедуры
1

Комментарии

СергейТ
#1, 29 апреля 2025 14:42

Учел замечание в телеге (SAlx XLAS) и переделал в УстановитьЗначениеПараметра, но с учетом стандарта #std456.6.


См. также

Текущие данные таблицы формы

МакетИзДвоичныхДанных (БСП)

ПостроениеФормыЗаполненияПоРазделу (БСП)

ПоказатьФормуШаблона (БСП)

ПараметрыШаблона (БСП)

ПрисоединитьИЗаполнитьОбластьТаблицы (БСП)

ХранилищеНастроекДанныхФормЗагрузить (БСП)

ХранилищеНастроекДанныхФормСохранить (БСП)

Модератору