Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

СКД. Отключить ДоступенСписокЗначений

СКД. Отключить ДоступенСписокЗначений
Я
   PCcomCat
 
05.03.18 - 15:09
Доброго времени, уважаемые!

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

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

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

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

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


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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует