Добавить параметр в 1C СКД и в пользовательские поля.

Статья актуальна для платформы 1С 8.2, 8.3; СКД.
В статье описывается способ добавления параметра в СКД программным способом на примере добавления параметра Период в СКД и в пользовательские настройки.

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

//создаем переменную типа стандартный период
СтПериод = Новый СтандартныйПериод; 
СтПериод.Вариант = ВариантСтандартногоПериода.ЭтотМесяц;

//добавляем в СКД новый параметр и описываем поля
ПараметрПериод = СхемаКомпоновкиДанных.Параметры.Добавить(); 
ПараметрПериод.Имя = "ПериодУпр";
ПараметрПериод.Заголовок = "Период";
ПараметрПериод.ТипЗначения = Новый ОписаниеТипов("СтандартныйПериод");
ПараметрПериод.ОграничениеИспользования = Ложь;
ПараметрПериод.Значение = СтПериод;
ПараметрПериод.Использование =ИспользованиеПараметраКомпоновкиданных.Всегда;
ПараметрПериод.ВключатьВДоступныеПоля = Истина;

//параметрам НачалоПериода и КонецПериода определяем выражения 
ПараметрНачалоПериода = СхемаКомпоновкиДанных.Параметры.Найти("НачалоПериода");
 ПараметрНачалоПериода.Выражение = "&ПериодУпр.ДатаНачала";
ПараметрКонецПериода = СхемаКомпоновкиДанных.Параметры.Найти("КонецПериода");
 ПараметрКонецПериода.Выражение = "&ПериодУпр.ДатаОкончания";

//для всех вариантов (определенных в СКД и пользовательских) нужно добавить Пользовательский параметр «Период»
Для Каждого Вариант ИЗ СхемаКомпоновкиДанных.ВариантыНастроек Цикл
	УстановитьПользовательскийПараметрПериод(Вариант, СтПериод, "ПериодУпр");
КонецЦикла;

//КлючОбъекта -тип строка - имя отчета
Для Каждого Вариант ИЗ ХранилищеВариантовОтчетов.ПолучитьСписок(КлючОбъекта) Цикл
	УстановитьПользовательскийПараметрПериод(Вариант, СтПериод, "ПериодУпр");
КонецЦикла;

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

В модуль объекта добавить процедуру:

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

Параметр «Период» теперь можно настроить интерактивно.

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar