Каталог решений - СКД программно для обработки (не отчета) + программное восстановление значений полей из настроек для управляемых форм

СКД программно для обработки (не отчета) + программное восстановление значений полей из настроек для управляемых форм

СКД программно для обработки (не отчета) + программное восстановление значений полей из настроек для управляемых форм

В наличии

Во многих источниках в качестве примера программного выполнения СКД в обработке (не отчете) приводится код, который обладает одним существенным недочетом, который ограничивает его функциональность. В данной публикации приведен код с исправлением этого недочета.

Категория:

Описание

Сам недочет заключается в том, что в коде не используется КомпоновщикНастроекКомпоновкиДанных, что не позволяет нормально работать со настройками СКД. В частности, недоступна (без извращений или лишнего кода) установка параметров.

 

        //Получаем схему из макета
	СхемаКомпоновкиДанных = ПолучитьМакет("ОтчетПоСборнымЗаказам");

	//создадим компоновщик настроек и загрузим настройки по умолчанию, вместо настроек по умолчанию можно использовать восстановленные настройки
	КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
	КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
	КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
	Настройки = КомпоновщикНастроек.Настройки;
	
        //установка параметров отчета, без КомпоновщикНастроекКомпоновкиДанных делать это гораздо сложнее
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("СвойствоВодитель", 		мСвойствоВодитель);
	Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок",			Заголовок);
	
        //Помещаем в переменную данные о расшифровке данных - здесь ненужный пункт, но пусть будет.
	ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

	//Формируем макет, с помощью компоновщика макета
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

	//Передаем в макет компоновки схему, настройки и данные расшифровки
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

	//Выполним компоновку с помощью процессора компоновки
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

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

	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	Результат.ОтображатьЗаголовки = Ложь;
	Результат.ОтображатьСетку = Ложь;
	Результат.Показать();

 

А вот бонусом программное восстановление значений полей из настроек для управляемой формы

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

 

has been added to your cart:
Оформление заказа