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