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

Дата: 26.10.2025 15:46:11
ТаблицаЗначений
СКД
Макет
ДеревоЗначений
Комментарий:
0
Конфигурация:
Любая
Формы:
Управляемые
Описание:

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

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

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1c-only | Фриланс © 2025