0
PCcomCat
05.03.18
✎
15:09
|
Доброго времени, уважаемые!
Прошу помощи!
В СКД есть параметр, которому ставлю доступен список значений.
Запрос СКД хитрый, мягко говоря.
КусочекТекстаЗапроса = "| " + ?(КомпоновщикНастроекПараметр.Значение = Неопределено или Не ЗначениеЗаполнено(КомпоновщикНастроекПараметр.Значение) или ТипЗнч(КомпоновщикНастроекПараметр.Значение) = Тип("СписокЗначений"), """"+ ДоступныйПараметр.Заголовок + """", "&" + Строка(ДоступныйПараметр.Параметр)) + ",";
Если отключаю доступность списка значений, то всё хорошо отрабатывает, а иначе ругается на совместимость типов.
Пытаюсь программно отключить "ДоступенСписокЗначений":
ПараметрСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.Параметры.Найти(ИмяПараметра);
Если ТипЗнч(Параметр.Значение) = Тип("СписокЗначений") тогда
ПараметрСхемыКомпоновкиДанных.ДоступенСписокЗначений = Параметр.Значение.Количество()>1;
Иначе
ПараметрСхемыКомпоновкиДанных.ДоступенСписокЗначений = Ложь;
КонецЕсли;
Но..., видимо, где-то не там.
Подскажите, как побороть?
|
|
1
PCcomCat
05.03.18
✎
15:12
|
Уточню:
ТипЗнч(КомпоновщикНастроекПараметр.Значение) = Тип("СписокЗначений") получаю ЛОЖЬ, но при этом всё-равно при компоновке откуда-то передает список значений, и запрос вполне естественно ругается.
|
|
2
PCcomCat
05.03.18
✎
15:41
|
Спасибо, что не прошли мимо!))
Форум действительно волшебный!
Потратила уйму времени, но после публикации здесь нашло просветление.
Проблему решила. Вот, может кому пригодится:
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанных"));
Для каждого ЗначениеПараметраМакета из МакетКомпоновкиДанных.ЗначенияПараметров цикл
Если ТипЗнч(ЗначениеПараметраМакета.Значение) = Тип("СписокЗначений") тогда
Если ЗначениеПараметраМакета.Значение.Количество()= 1 тогда
ЗначениеПараметраМакета.Значение = ЗначениеПараметраМакета.Значение[0].Значение;
КонецЕсли;
КонецЕсли;
КонецЦикла;
|
|