Версия для печати темы (https://pro1c.org.ua/index.php?s=51cbb33acfb12d15bef4ad0bfb1de554&showtopic=4891)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Параметры системы компоновки данных. СКД

Автор: Vofka 28.09.11, 19:03

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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


http://pro1c.org.ua/redirect.php?http://www.miko.ru/blogs/portnovblog/75/

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua