|
Условное оформление в УФ, цвет ячейки. | ☑ | ||
---|---|---|---|---|
0
dlogius
23.10.24
✎
09:07
|
Дали задание: в табличной части документа (Список) изменить цвет ячейки в зависимости от ее содержания.
Использую такой код: ЭлементУО = Список.УсловноеОформление.Элементы.Добавить(); ЭлементУО.Использование = Истина; ОформляемоеПоле=ЭлементУО.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле=Новый ПолеКомпоновкиДанных("ВариантУтверждения"); //Элементы.ВариантУтверждения.Имя так тоже не работает ОформляемоеПоле.Использование = Истина; ОтборЭлемента = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВариантУтверждения"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = "ОМ"; ОтборЭлемента.Использование = Истина; ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.Аквамарин); красится весь столбец. Поле "ВариантУтверждения" это ссылка на одноименный справочник. Я так понимаю, что условие не срабатывает, в ЛевомЗначении что-то не так, там ссылка, а я ее пытаюсь приравнять к строке. Помогите сформировать условие. "ОМ" это одно из значений справочника - наименование. В списке есть строки с "ОМ" и с другим содержимым, красится вся колонка. |
|||
1
Krendel
23.10.24
✎
09:09
|
Это же типовой функционал ;-)
|
|||
2
dlogius
23.10.24
✎
09:15
|
Сорри я тут неточность допустил.
Красится весь столбец если я ставлю: ВидСравненияКомпоновкиДанных.НЕРавно; а если ВидСравненияКомпоновкиДанных.Равно, то ничего не красится. |
|||
3
dlogius
23.10.24
✎
09:16
|
(1) В том то и дело, типовой и не работает. (
|
|||
4
dmt
23.10.24
✎
09:25
|
(0) попробуй вручную задать так условное оформление, чтобы работало. А потом полученные настройки переведи в программный код
|
|||
5
dmt
23.10.24
✎
09:28
|
а, возможно тебе надо сделать что-то вроде
ОтборЭлемента.ПравоеЗначение = Справочники.ТвойСправочник.НайтиПоНаименованию("ОМ") лучше конечно как-то по-другому получить ссылку на ТвойСправочник, например из константы. Но хотя бы так |
|||
6
Fedor-1971
23.10.24
✎
09:39
|
(0) Самый простой вариант, добавь поле в таблицу (просто на форме, например, УтвержденоОМ с типом Булево, или число, если тебе нужно несколько цветов) и заполни его кодом.
Потом делай покраску на основе уже готового значения Если хочешь проверять просто так, то пробуй через .Наименование или преобразуй ссылку в строку через СокрЛП(ТвояСсылка) Тут без гарантии и с бубном |
|||
7
osa1C
23.10.24
✎
09:42
|
(6) Клюшечный говнокод детектед
|
|||
8
osa1C
23.10.24
✎
09:46
|
(0) В свойствах табличной части есть условное оформление. Вставляешь нужные тебе условия, по этим условиям выбираешь цвет оформления и поля, которые надо оформить (если не выбрано, то вся строка)
|
|||
9
dlogius
23.10.24
✎
09:53
|
(5) dmt, Спасибо, заработало!
|
|||
10
Fedor-1971
23.10.24
✎
11:25
|
(7) а где твои предложения? в 5 поиск по наименованию в динамике обновлений формы, точно лучше? или дешевле один раз кодом выставить признак цвета?
(8) по ходу, это поведение по умолчанию от СКД, для форм нужно указывать раскрашиваемые поля (возможно, что-то поменялось) |
|||
11
Мультук
гуру
23.10.24
✎
11:30
|
(10)
Один поиск при создании формы. Откуда 5 ? |
|||
12
Fedor-1971
23.10.24
✎
11:59
|
(11) Я имел в виду пост 5, признаю, лопухнулся, надо было так (5)
И поиск получим не один раз, а при каждом добавлении строки будет происходить перекраска (возможно, при смене вкладок, тоже будут красить видимую таблицу) - посему, поиск будет производиться по количеству строк в ТЧ Для гарантии, что поиск отработает один раз, нужно сделать реквизит формы, например ЦвКрасный = Справочники.НекийСправочник.Найти... любым способом и сравнивать с ним ОтборЭлемента.ПравоеЗначение = ЦвКрасный; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |