![]() |
|
УФ. Условное оформление не могу победить | ☑ | ||
---|---|---|---|---|
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
|
Не поленился же... (это я про себя) воспроизвел.
В общем ПолеОформленияОтобранные.Поле = Новый ПолеКомпоновкиДанных("СписокПомещений"); Вот тут "СписокПомещений" не канает, поставь любой другой один, к примеру реквизит |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |