Так недавно я столкнулся с различными реализациями программной установки параметров для СКД. [spoiler]
Итак, теперь по-порядку
Имеется конфигурация УТ 10.3 (обычное приложение). Необходимо для удобства вынести на форму отчета некоторые параметры.
Далее первый пример задания параметров для СКД. Я считаю его не очень удобным, не очень понятным, но оно работает!
в модуле объекта:
Процедура СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено) Экспорт
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//получаем настройки
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
//устанавливаем значения параметров
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода);
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецПериода);
//далее пролсто как заклинание, можно ничего не менять должно работать
//в большинстве ситуаций :)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомоновкиДанных);
КонецПроцедуры |
И второй вариант, он мне нравится намного больше
Все сводиться к тому, что заполнение параметров я произвожу на самой форме в событии "При изменении" либо в обработчике модуля объекта "При компоновке результата"
ТипЦен = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТипЦен");
Если НЕ ТипЦен = Неопределено Тогда
ТипЦен.Значение = ВидЦен;
КонецЕсли;
|
Этот способ хорош тем, что параметры сохраняются в параметрах настроек компоновки данных (в отличие от первого метода). Это удобно в том случае если необходимо сохранять настройки компоновки, передавать их другим пользователям и т.д.
На этом все. Надеюсь эта небольшая заметка будет полезна.
