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

Все комментарии
Чтобы оставить комментарий, необходимо войти или зарегистрироваться.
Пока нет комментариев. Будьте первым!