Имя: Пароль:
1C
1С v8
В Компоновщике настроек СКД на форме недоступны перечисления.
0 nicxxx
 
04.05.18
19:40
Делаю внешний отчет. Основная схема компоновки не задана, т.к. нужно формировать параметры на основе двух вариантов запроса. При этом возникает проблема - нельзя выбрать параметр с тип значения "Перечисление". В окошке выбора типа данных нет перечислений вообще.
Параметр добавляю программно, код ниже.
При этом, если сделать встроенную схему СКД, то перечисления доступны.
Что я делаю не так?

Код
СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
ф = СхемаКомпоновкиДанных.Параметры.Добавить();
ф.Имя = п[сч]["ИмяПараметра"];
ф.Заголовок = п[сч]["ИмяПараметра"];
мТипы = Новый Массив;
мТипы.Добавить( ТипЗнч( п[сч].ЗначениеПараметра ) );
ф.ТипЗначения = Новый ОписаниеТипов( мТипы );
ф.Значение = п[сч].ЗначениеПараметра;
ф.ОграничениеИспользования = Ложь;
ф.Использование = ИспользованиеПараметраКомпоновкиданных.Всегда;
ф.ВключатьВДоступныеПоля = Истина;
1 nicxxx
 
04.05.18
19:50
На форму отчета добавлен реквизит КомпоновщикНастроекФорма, тип "КомпоновщикНастроекКомпоновкиДанных". Собственно на форму выведен его реквизит ПользовательскиеНастройки. Сделал так, потому что через встроенный компоновщик настроек не получается отобразить пользовательские настройки.

Код инициализации ниже

КомпоновщикНастроекФорма.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных( СхемаКомпоновкиДанных ));
КомпоновщикНастроекФорма.ЗагрузитьНастройки( СхемаКомпоновкиДанных.НастройкиПоУмолчанию );
// чтобы параметры появились в пользовательских настройках, надо добавить им гуид
Для Каждого ПараметрДанных Из КомпоновщикНастроекФорма.Настройки.ПараметрыДанных.Элементы Цикл
        
  ПараметрДанных.ИдентификаторПользовательскойНастройки = Строка(Новый УникальныйИдентификатор);
  ПараметрДанных.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
КонецЦикла;
2 nicxxx
 
04.05.18
19:54
Вот так это выглядит на форме
https://ibb.co/dQ95Yn
3 nicxxx
 
04.05.18
20:06
Работает, если инициализировать КомпоновщикНастроек через временное хранилище.

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

еще бы объяснил кто-нибудь....
AdBlock убивает бесплатный контент. 1Сергей