|
Помогите настроить условное оформление | ☑ | ||
---|---|---|---|---|
0
Master5550
28.05.24
✎
12:46
|
УНФ 3.0
В расширении добавляю следующую процедуру: &НаСервере Процедура ИТФПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) УсловноеОформлениеКД = Список.КомпоновщикНастроек.Настройки.УсловноеОформление; // В работе ЭлементУсловногоОформления = УсловноеОформлениеКД.Элементы.Добавить(); ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный); ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "ЦветСостояния"; ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто; ЭлементУсловногоОформления.Представление = НСтр("ru='Оформление в цвет состояния'"); ЭлементУсловногоОформления.Использование = Истина; ЭлементУсловияГруппа = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ЭлементУсловияГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ЭлементУсловияГруппа.Использование = Истина; ЭлементОтбора = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДополнительныеРеквизиты.Свойство"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Состояние"); ЭлементОтбора.Использование = Истина; ЭлементОтбора1 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДополнительныеРеквизиты.Значение"); ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора1.ПравоеЗначение = ИТФДобавленное.ПолучитьЗначениеПоКлючу("Состояние_ВРаботе"); ЭлементОтбора1.Использование = Истина; КонецПроцедуры У документа Приходная накладная есть два дополнительных реквизита: Номер приходной накладной и Состояние. Когда заполнено только Состояние, тогда код процедуры отрабатывает идеально, всё раскрашивается как надо. Когда заполнены и Номер приходной накладной и Состояние, тогда код не выполняется, ничего не красится. Я так понимаю, для ДополнительныеСвойста.Значение применяется отбор по первому дополнительному реквизиту в таблице Доп. реквизитов - Номер приходной накладной. |
|||
1
Master5550
28.05.24
✎
12:46
|
(0) Почему-то не срабатывает условие по группе условий
|
|||
2
DJ Anthon
28.05.24
✎
12:47
|
а зачем группа И, если все условия и так группируются по умолчанию как группа И?
|
|||
3
Master5550
28.05.24
✎
12:54
|
(2) Пробую в разных вариантах. Попробовал сейчас без группы- все одинаково - при заполнении обоих дополнительных реквизитов ничего не красится.
|
|||
4
DJ Anthon
28.05.24
✎
13:02
|
(4) а вручную созданное условное оформление срабатывает? может, вы настройки формы не сбрасываете и юзерское оформление перекрывает программное?
|
|||
5
DJ Anthon
28.05.24
✎
13:04
|
И зачем проверять свойство, если значение и так принадлежит свойству? может, значение криво получаете? И зачем вообще его получать, просто сравните с текстом.
|
|||
6
Master5550
28.05.24
✎
13:08
|
(4) Вручную заполненное условие срабатывает аналогично. Когда заполнено только Состояние - все Ок. Когда заполнены Номер приходной накладной и Состояние - не раскрашивается.
|
|||
7
Master5550
28.05.24
✎
13:10
|
(5) Потому что, как я понимаю, если два дополнительных реквизита заполнены, то Номер приходной накладной находится на 1 строке. Состояние на 2 строке. И когда идет отбор по значению, то проверяется отбор на первой строке, а там Номер приходной накладной и он не равен состоянию "В работе" и поэтому ничего не красится
|
|||
8
DJ Anthon
28.05.24
✎
13:14
|
А, вот оно что, я последнее предложение в (0) не прочитал. если свойств может быть много, что должно быть в ДополнительныеРеквизиты.Свойство? вы его как получаете? запросом?
|
|||
9
Master5550
28.05.24
✎
13:23
|
(8) Вот так я получаю свойство:
ЭлементОтбора = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДополнительныеРеквизиты.Свойство"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Состояние"); ЭлементОтбора.Использование = Истина; |
|||
10
DJ Anthon
28.05.24
✎
13:25
|
это понятно, я про динамический список
|
|||
11
Master5550
28.05.24
✎
13:31
|
Вот такая конструкция заработала!
ЭлементОтбора1 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); // ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДополнительныеРеквизиты.Значение"); ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка.Состояние (Приходные накладные)"); ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора1.ПравоеЗначение = ИТФДобавленное.ПолучитьЗначениеПоКлючу("Состояние_ВРаботе"); ЭлементОтбора1.Использование = Истина; |
|||
12
Master5550
28.05.24
✎
13:31
|
DJ Anthon, спасибо за некоторые наводки )
|
|||
13
DJ Anthon
28.05.24
✎
13:55
|
👍
|
|||
14
Gucci76
28.05.24
✎
14:58
|
Может мне тоже поможете?
Пытаюсь доработать условное оформление, которое создала ЗУП (мне надо добавить в нее цвет фона) Делаю так Процедура КорректировкаУсловногоОформления(НужныйЭлемент) Для Каждого ОформлениеПоля Из ЭтаФорма.УсловноеОформление.Элементы Цикл Если Строка(ОформлениеПоля.Поля) = ВРег(НужныйЭлемент.Имя) Тогда // мое добавленное оформление ОформлениеПоля.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,157,100)); КонецЕсли; КонецЦикла; КонецПроцедуры Но нет цветного фона. Вся история тут: Свертываемая Группа ЗУП 3.1 (в документе Ответ на запрос в СФР) |
|||
15
DJ Anthon
29.05.24
✎
12:10
|
(14) а в режиме предприятия добавленное оформление работает? другие цвета пробовали типа WebЦвета.КрасноФиолетовый или ЦветаСтиля.ЦветТекстаОтрицательногоЗначения? какая ОС? у меня цвет фона не работает в линуксе, приходится работать только с цветом шрифта и его жирностью. код оформления у меня примерно такой же, не вижу ошибки. Тем более, непонятно, заходит ли отладчик в код и меняет ли данные. И очищаете ли вы настройки формы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |