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