официальный партнёр 1С по деловому софту
Закрыть
Логин:
Пароль:
Забыли свой пароль?
  Войти
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
 
8(495)229-30-42

Параметры системы компоновки данных. СКД

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

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

Итак, теперь по-порядку :) :

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

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

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


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

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

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


Этот способ хорош тем, что параметры сохраняются в параметрах настроек компоновки данных (в отличие от первого метода). Это удобно в том случае если необходимо сохранять настройки компоновки, передавать их другим пользователям и т.д.

На этом все. Надеюсь эта небольшая заметка будет полезна.