На меня постоянно сыпятся различного рода задачи - это водопад отчетов, обработок, бизнес-процессов и т.п.. Падают также задачи от коллег программистов. Частенько поражаешься сколькими пособами можно решить одну и ту же задачу, и все они могут быть корректными

На меня постоянно сыпятся различного рода задачи - это водопад отчетов, обработок, бизнес-процессов и т.п.. Падают также задачи от коллег программистов. Частенько поражаешься сколькими пособами можно решить одну и ту же задачу, и все они могут быть корректными smile.gif

Так недавно я столкнулся с различными реализациями программной установки параметров для СКД.

Итак, теперь по-порядку smile.gif :

Имеется конфигурация УТ 10.3 (обычное приложение). Необходимо для удобства вынести на форму отчета некоторые параметры.

Далее первый пример задания параметров для СКД. Я считаю его не очень удобным, не очень удобным smile.gif

в модуле объекта:

Процедура СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено) Экспорт

   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

   //получаем настройки
   Настройки = КомпоновщикНастроек.ПолучитьНастройки();

   //устанавливаем значения параметров
   Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода);
   Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецПериода);


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

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

   Результат.Очистить();

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

КонецПроцедуры


И второй вариант, он мне нравится намного больше smile.gif :

Все сводиться к тому, что заполнение параметров я произвожу на самой форме в событии "При изменении" либо в обработчике модуля объекта "При компоновке результата"

ТипЦен = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТипЦен");
Если НЕ ТипЦен = Неопределено Тогда
   ТипЦен.Значение = ВидЦен;
КонецЕсли;


необходимо зарегистрироваться для просмотра ссылки