четверг, 26 ноября 2015 г.

Как получить параметры СКД в модуле объекта? (1С 8.3)

//1. возвращает значение параметра СКД, необходимо передать настройки отчета и параметр
Функция ВернутьЗначениеПараметра(НастройкиОтчета,НаименованиеПараметра)
Параметр = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(НаименованиеПараметра));
Возврат ?(Параметр = Неопределено, Неопределено, Параметр.Значение);
КонецФункции

//2. использование: создать структуру с параметрами в модуле объекта
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Организация", ВернутьЗначениеПараметра(НастройкиОтчета,"Организация"));

для примера, заполнение произвольного макета:

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

СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Организация", ВернутьЗначениеПараметра(НастройкиОтчета,"Организация"));
ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры,СтруктураПараметров);

//+ваш код...
...
//-
КонецПроцедуры

Комментариев нет:

Отправить комментарий