1с условное оформление не работает

Обновлено: 07.07.2024

Делаю условное оформление (в конфигураторе, НЕ программно):
Использование = "Истина"
Оформление = "Видимость = Ложь"
Условие = "Объект.Реквизит1 Равно 'Перечисление.Перечисление1.Значение10'"
Оформляемые поля = "Элемент2"

Вопрос: почему не срабатывает УО, когда выбираю "Значение10" в поле "Элемент1"?

(1) Условное оформление в управляемых формах только для табличных полей. forbuk; Necytij; Рамзес; igee12; KirinaAS; Mechanik21; freeek; AKZARD; Rustavelli; klinval; CeHbKA; + 11 – Ответить (1) Условное оформление в управляемых формах только для табличных полей. forbuk; Necytij; Рамзес; igee12; KirinaAS; Mechanik21; freeek; AKZARD; Rustavelli; klinval; CeHbKA; + 11 – Ответить (3) Поручик, Спасибо, я так и предположил, но до последнего надеялся. Странно тока, почему тогда в списке выбора поля доступны все поля? (4) Косяк девелоперов. Я тоже по первости тыкался в них. (3) Поручик, а я и не туда, долблюсь долблюсь, а оно не пашет, все как с табличными полями ранее делал для поля не табличного и тут засада))
значит по старинке нужно делать)) (3) Поручик, неправда. Я поля ввода отображаю условным оформлением. (7) Покажи, как. Именно для полей шапки, а не табличных элементов и именно в конфигураторе.

Условия задачи.
Есть два реквизита во внешней обработке:
- ПолеДоступностьюКоторогоНужноУправлять - Любой тип
- ПолеКотороеРулитДоступностьюДругогоПоля - Булево

Оба реквизита кинуты на форму.
Тыкая галочку у реквизита ПолеКотороеРулитДоступностьюДругогоПоля, ничего не происходит с полем ПолеДоступностьюКоторогоНужноУправлять, а хотелось бы чтобы оно меняло доступность.

Что тут может быть не так?

(11) EMelihoff, а где здесь УсловноеОформление используется? (12) spacecraft, условное никак у меня не получилось оно не отрабатывает, я предположил что это связано с тем когда форма создается, нет тех данных которые я указываю для сравнения.

(13) EMelihoff, так это же не так, условное форматирование задается на сервере, в контексте сервера значения есть в реквизитах (вернее доступны на сервере), да это и не важно, при описании условного оформления мы явно указываем какой реквизит нужно всегда сравнивать с неким заранее заданным значением и если сравнение проходит, то должно что-то происходить в оформлении, в частности мне нужно чтобы менялась Доступность поля в зависимости от значений другого поля

картина непонятная мне на самом деле, почему не пашет условное оформление, наверное мат часть плохо знаю
из формы документа РегламентнаяОперация БП 3.0.41

Почему может не работать условное оформление на управляемой форме

У нас есть некоторая форма списка, например, элементов плана вида характеристик "ПраваПользователей" в конфигурации "Управление производственным предприятием" версии 1.3.

Изображение

Форма, как Вы видите, управляемая. нам нужно оформить список таким образом, чтобы все строки групп элементов выделялись зеленым цветом. Приступим!

Пример

Оформление элементов управляемых форм выполняется с помощью условного оформления формы:

Изображение

Для решения нашей задачи добавим элемент условного оформления со следующими настройками:

Изображение

При последующем открытии формы строки групп плана видов характеристик должны быть выделены зеленым цветом. Но. этого не происходит!

Изображение

Дело в том, что список элементов и групп плана видов характеристик отображается на форме с помощью объекта формы с типом "Динамический список". Динамические списки использут возможности системы компоновки данных, включая отборы и условное оформление. Последнее как-раз и определяет конечное оформление списка, игнорируя настройки условного оформления самой формы. Добавим аналогичные настройки условного оформления для динамического списка.

Изображение

Единственное отличие - в список оформляемых полей нужно добавить все видимые поля списка, на которые должно распостраняться условное оформление.

Вывод

Часто слышал, что условное оформление на управляемых формах не всегда работает. В итоге выяснялось, что просто настройки делалишь для формы, а не для динамического списка.

Изображение

Надеюсь статья кому-нибудь да сэкономит время при решении проблем с условным оформлением.


В форме

В формах списка условное оформление существует и на уровне самого динамического списка:

2

Добавлять элементы условного оформления можно не прибегая к программированию, но конечно есть возможность и программного добавления элементов, который мы рассмотрим чуть ниже.

3

2. Программная работа с условным оформлением (УО).

Начнем с того, что работа с УО доступна только:

Для Добавления элемента УО в списке нужно обратится к списку и добавить элемент УО:

ЭлементОформления = Список . УсловноеОформление . Элементы . Добавить ();

Для УО формы добавление происходит через прикладной объект УсловноеОформление:

ЭлементУсловногоОформления = УсловноеОформление . Элементы . Добавить ();

Далее алгоритмы будут похожими. Для УО нам нужно задать условие отбора, задать значение свойства УО и добавить оформляемые поля.

Значение свойства УО:

Элемент . Использование = Истина;

Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления = ЭлементОформления . Поля . Элементы . Добавить ();
ПолеОформления . Поле = Новый ПолеКомпоновкиДанных ( ПолеДляОформления );
ПолеОформления . Использование = Истина;

В качестве ИменПолей нужно передавать строковое представление ИМЕНИ реквизита.

3. Все настройки УО хранятся для каждого пользователя отдельно.

4. Пример.

4

Выводы:

Читайте также: