Имя: Пароль:
1C
1С v8
СКД. Отключить ДоступенСписокЗначений
0 PCcomCat
 
05.03.18
15:09
Доброго времени, уважаемые!

Прошу помощи!

В СКД есть параметр, которому ставлю доступен список значений.
Запрос СКД хитрый, мягко говоря.

КусочекТекстаЗапроса = "|   " + ?(КомпоновщикНастроекПараметр.Значение = Неопределено или Не ЗначениеЗаполнено(КомпоновщикНастроекПараметр.Значение) или ТипЗнч(КомпоновщикНастроекПараметр.Значение) = Тип("СписокЗначений"), """"+ ДоступныйПараметр.Заголовок + """", "&" + Строка(ДоступныйПараметр.Параметр)) + ",";

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

Пытаюсь программно отключить "ДоступенСписокЗначений":
ПараметрСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.Параметры.Найти(ИмяПараметра);
Если ТипЗнч(Параметр.Значение) = Тип("СписокЗначений") тогда
   ПараметрСхемыКомпоновкиДанных.ДоступенСписокЗначений = Параметр.Значение.Количество()>1;
Иначе
   ПараметрСхемыКомпоновкиДанных.ДоступенСписокЗначений = Ложь;
КонецЕсли;


Но..., видимо, где-то не там.

Подскажите, как побороть?
1 PCcomCat
 
05.03.18
15:12
Уточню:
ТипЗнч(КомпоновщикНастроекПараметр.Значение) = Тип("СписокЗначений") получаю ЛОЖЬ, но при этом всё-равно при компоновке откуда-то передает список значений, и запрос вполне естественно ругается.
2 PCcomCat
 
05.03.18
15:41
Спасибо, что не прошли мимо!))

Форум действительно волшебный!

Потратила уйму времени, но после публикации здесь нашло просветление.

Проблему решила. Вот, может кому пригодится:

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
    КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанных"));
    
Для каждого ЗначениеПараметраМакета из МакетКомпоновкиДанных.ЗначенияПараметров цикл
    Если ТипЗнч(ЗначениеПараметраМакета.Значение) = Тип("СписокЗначений") тогда
        Если ЗначениеПараметраМакета.Значение.Количество()= 1 тогда
             ЗначениеПараметраМакета.Значение = ЗначениеПараметраМакета.Значение[0].Значение;
        КонецЕсли;    
    КонецЕсли;
КонецЦикла;