|   |   | 
| 
 | УФ. Условное оформление не могу победить | ☑ | ||
|---|---|---|---|---|
| 0
    
        live in sky dreams 13.11.18✎ 18:16 | 
        При создании формы определяю условное оформление одного из динамических списков.
 УсловноеОформлениеОтобранные = ЭлементыУсловногоОформления.Добавить(); ЭлементОтбораОтобранные = УсловноеОформлениеОтобранные.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеКомпоновкиДанныхОтобранные = Новый ПолеКомпоновкиДанных("СписокПомещений.Ссылка"); ЭлементОтбораОтобранные.ЛевоеЗначение = ПолеКомпоновкиДанныхОтобранные; ЭлементОтбораОтобранные.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбораОтобранные.ПравоеЗначение = Новый СписокЗначений; ЭлементОтбораОтобранные.Использование = Истина; ПолеОформленияОтобранные = УсловноеОформлениеОтобранные.Поля.Элементы.Добавить(); ПолеОформленияОтобранные.Поле = Новый ПолеКомпоновкиДанных("СписокПомещений"); ПолеОформленияОтобранные.Использование = Истина; УсловноеОформлениеОтобранные.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Серый); УсловноеОформлениеОтобранные.ИдентификаторПользовательскойНастройки = "Отобранные"; Сам список пока что пустой. Далее в ходе заполнения определенной таблицы хочу чтобы элементы динамического списка раскрашивались в зависимости от того присутствуют они в моей таблице или нет. ЭлементыОтбораУООтобранные = Неопределено; Для каждого ЭлементУО Из ЭтаФорма.УсловноеОформление.Элементы Цикл Если ЭлементУО.ИдентификаторПользовательскойНастройки = "Отобранные" Тогда ЭлементыОтбораУООтобранные = ЭлементУО.Отбор.Элементы; Прервать; КонецЕсли; КонецЦикла; ИскомоеПолеКомпоновкиКлюч = Новый ПолеКомпоновкиДанных("СписокПомещений.Ссылка"); ИскомоеПолеКомпоновки = Неопределено; Для каждого ЭлементОтбораКомпоновки Из ЭлементыОтбораУООтобранные Цикл Если ЭлементОтбораКомпоновки.ЛевоеЗначение = ИскомоеПолеКомпоновкиКлюч Тогда ИскомоеПолеКомпоновки = ЭлементОтбораКомпоновки; Прервать; КонецЕсли; КонецЦикла; ИскомоеПолеКомпоновки.ПравоеЗначение.ЗагрузитьЗначения(ТаблицаПодбора.Выгрузить().ВыгрузитьКолонку("Помещение")); В отладчике смотрел - список значений заполняется. Но на форме в списке визуально это никак не отображается. Список обновлять по F5 пробовал. Не помогло. Как раскрасить динамический список в зависимости от присутствия "Ссылка" этого списка в определенном списке значений? Или после изменения параметров отбора условного оформления что-то еще необходимо сделать? | |||
| 1
    
        live in sky dreams 14.11.18✎ 09:11 | 
        До сих пор никак не могу победить. Если хоть какие-то идеи есть - поделитесь плз.     | |||
| 2
    
        asady 14.11.18✎ 09:15 | 
        (0) я бы при такой проблеме попытался бы сделать естовую форму с этим динамическим списком и настроить условное оформление из конфигуратора - тупо раскрасить эти поля по простому правилу.
 потом посмотреть в отладчике как заполнено условное оформление и сделать это уже программно | |||
| 3
    
        Nikoss 14.11.18✎ 09:16 | 
        (2) +1. Опередил, тоже самое писал     | |||
| 4
    
        live in sky dreams 14.11.18✎ 09:21 | 
        (2)В конфигураторе не получится заполнить список элементами справочника (предопределенных нет). Пробовал заполнить числами и ставить условия по числовому значения поля "ВСписке" - все работает, от моего варианта не отличается. Только именами полей..     | |||
| 5
    
        Nikoss 14.11.18✎ 09:23 | 
        (4) ВыгрузитьКолонку - массив, попробуй сделать список значений     | |||
| 6
    
        live in sky dreams 14.11.18✎ 09:31 | 
        (5)Этот массив я передаю в метод "ЗагрузитьЗначения" целевого списка значений. То есть в "ПравоеЗначение" остается список значений, тип не меняется на массив.     | |||
| 7
    
        live in sky dreams 14.11.18✎ 09:32 | 
        Меняю на другую колонку (числовую)
 Вместо "СписокПомещений.Ссылка" использую "СписокПомещений.Площадь" и для чисел все работает.... | |||
| 8
    
        live in sky dreams 14.11.18✎ 09:34 | 
        Глюк может? Я заметил на текущей версии платформы если в обработке "ПриАктивизацииСтроки" динамического списка в коде есть какая либо ошибка, то платформа не ругается никак, а выходит из процедуры с той строки в которой ошибка и запускает ПриАктивизацииСтроки заново. И так бесконеччный цикл..
 Может и мой текущий затык из той же серии.. | |||
| 9
    
        live in sky dreams 14.11.18✎ 09:38 | 
        Попробую подсунуть динсписку левым соединением нужную ТаблицуЗначений и проверять входимость через ЕстьNull, В зависимости от значения получившегося в контрольной колонке красить...
 Но все равно интересно почему не работает программно | |||
| 10
    
        live in sky dreams 14.11.18✎ 11:18 | 
        Вобщем напоролся на особенность платформы о которой не знал. Если в параметры передать список значений, то конструкция "В (&НекоторыйСписокЗначений)" проверяет только первое значение списка. Нужно передавать массив, тогда все будет работать корректно.     | |||
| 11
    
        live in sky dreams 14.11.18✎ 11:19 | 
        +(10)
 Забыл уточнить. Перед этим в запрос динамического спискаа передавал список значений и в конструкции "ВЫБОР КОГДА ПроверяемоеПоле В (&СписокОтобраных) ТОГДА.." и красил строки по значению этого поля.. | |||
| 12
    
        Nikoss 14.11.18✎ 11:57 | 
        Не поленился же... (это я про себя) воспроизвел.
 В общем ПолеОформленияОтобранные.Поле = Новый ПолеКомпоновкиДанных("СписокПомещений"); Вот тут "СписокПомещений" не канает, поставь любой другой один, к примеру реквизит | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |