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