Есть два элемента:
"Элемент1" (поле ввода, путь к данным "Объект.Реквизит1" с типом Перечисление)
"Элемент2" (поле ввода, путь к данным "Объект.Реквизит2" с типом Строка)
Делаю условное оформление (в конфигураторе, НЕ программно):
Использование = "Истина" Оформление = "Видимость = Ложь" Условие = "Объект.Реквизит1 Равно 'Перечисление.Перечисление1.Значение10'" Оформляемые поля = "Элемент2"
Вопрос: почему не срабатывает УО, когда выбираю "Значение10" в поле "Элемент1"?
UPD
ОТВЕТ: Условное оформление в управляемых формах действует только для табличных полей.
(3) Поручик, а я и не туда, долблюсь долблюсь, а оно не пашет, все как с табличными полями ранее делал для поля не табличного и тут засада))
значит по старинке нужно делать))
Условия задачи.
Есть два реквизита во внешней обработке:
- ПолеДоступностьюКоторогоНужноУправлять - Любой тип
- ПолеКотороеРулитДоступностьюДругогоПоля - Булево
Оба реквизита кинуты на форму.
Тыкая галочку у реквизита ПолеКотороеРулитДоступностьюДругогоПоля, ничего не происходит с полем ПолеДоступностьюКоторогоНужноУправлять, а хотелось бы чтобы оно меняло доступность.
(12) spacecraft, условное никак у меня не получилось оно не отрабатывает, я предположил что это связано с тем когда форма создается, нет тех данных которые я указываю для сравнения.
(13) EMelihoff, так это же не так, условное форматирование задается на сервере, в контексте сервера значения есть в реквизитах (вернее доступны на сервере), да это и не важно, при описании условного оформления мы явно указываем какой реквизит нужно всегда сравнивать с неким заранее заданным значением и если сравнение проходит, то должно что-то происходить в оформлении, в частности мне нужно чтобы менялась Доступность поля в зависимости от значений другого поля
картина непонятная мне на самом деле, почему не пашет условное оформление, наверное мат часть плохо знаю
из формы документа РегламентнаяОперация БП 3.0.41
(1) doom2good, попробуйте программно, может увидите в чём косяк, я тоже делал УО и не получалось, сделал програмно, понял что в данном контектсе у меня не все данные и УО их не видит
(1) doom2good,
Учитесь читать справку, даже во встроенной есть
23. ОтметкаНезаполненного(MarkIncomplete) - отмечать ячейку как незаполненную - тип значения Булево;
24. Видимость(Visible) - Булево. Используется только для поля, расположенного в таблице (колонки);
25. Доступность(Enabled) - Булево. Используется только для поля, расположенного в таблице (колонки);
26. ТолькоПросмотр(ReadOnly) - Булево. Используется только для поля, расположенного в таблице (колонки);
27. Отображать(Show) - Булево. Использует только для поля, расположенного в таблице (колонки).
Столкнулся с похожей ситуацией, в итоге выяснилось по чему не работало.
Оказалось дело в том что столбец по которому идет сравнение должен быть виден в списке (прим. номенклатура)
если скрыть видимость то условное форматирование перестает работать.
Кто-нибудь сталкивался с ситуацией когда одно и тоже условное оформление работает если указать его в условном оформлении формы и не работает если его же установить программно в модуле формы?
(23) bmk74, да не, все правильно. ибо если руками создано оформление то работает, а программно "как бы" не применяется. однако если "Видимость" не работает, то "Отображение" - нет
код выкладывать не буду - уже похерил. грубо говоря:
ЭтаФорма.УсловноеОформление.Элементы[0].Отбор.Элементы[0].ЛевоеЗначение = ...
Стандартный принцип формирования своего условного оформления примерно такой
Элемент = Форма.УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Форма.ИмяПоля.Имя"); //имя поля для которого применяется УО
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");//указываете путь к реквизиту от которого зависит условное оформление
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств; //Ну тут и так все понятно
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Показать
Или вы пытаетесь переназначить ? уже установленное в форме ?
Если вдруг у Вас не получилось сделать это в конфигураторе несмотря на всё вышепрочитанное - мне помогло снять галочку: "Включать в пользовательские настройки" на странице динамического списка.
(26) А вот я тоже колыхну этот боян! Мне наоборот, галочка "Включать в пользовательские настройки" помогла, после ее установки условное оформление стало работать для пользователей.
Что не так с условным оформлением? Почему оно непонятным образом зависит от подобных флагов? А самое главное, почему одним помогает установка этого флага, а другим его снятие?
(26) Огромнейшее спасибо, помогло. Ситуация еще более интересная:
-мобильный клиент, форма документа, на ней 3 страницы и на каждой свой динамический список. Списки с практически одинаковыми запросами, но с чуть разными условиями (сравнивается количество - больше/меньше/равно).
Понадобилось раскрасить каждый список своим цветом для наглядности: добавил всем условное оформление без условий и отборов по полям и задал цвет: в итоге раскрасился только третий список. Много чего пробовал - результат одинаковый. И тут наткнулся на это сообщение, снял у всех (на всякий случай) динамических списков галочку - и ура, все раскрасилось
(26) Реально помог, спасибо! Два дня мучился - писал программно и в "Настройке списка" делал УО - ничего не работало, пока не снял флажок "Включать в пользовательские настройки". Весьма странное поведение программы, на одной конфигурации нужно поставить флажок, а в другой снять.
На всякий случай выкладываю скрин для "начинающих" юзеров, чтобы время сэкономить
Не удалось воспроизвести работающий код условного оформления параметров "Доступность" и "Отображать" для ячейки табличного поля с типом "Строка", часа 3 потратил. Брал платформы с 8.3.8 по 8.3.18.
Работает "Только просмотр" и "Видимость", как программно так и через интерфейс конфигуратора, и только при условии что таблица формы является реквизитов объекта.
Еще раз колыхнем. Еще бывает причина в том, что в форме списка размещен Динамический список. Задавая условное оформление для формы списка, оно не отрабатывает для динамического списка. Нужно задавать именно для динамического списка условное оформление.
Платформа 8.3.20
Есть реквизит шапки документа, выведен на форму. Установил для него 2 условных оформления по одному и тому же условию:
1) цвет текста
2) видимость
Первое работает. Второе нет.
В чем может быть причина?
1С:Предприятие 8.3 (8.3.22.2411)
Управление нашей фирмой, редакция 3.0 (3.0.6.126)
Есть реквизит в шапке документа - тип справочник
Делаю УО:
Условие: Объект.СтатусДокумента Равно "Справочник.пмСтатусыСервиса.Выдан"
Оформление: Цвет фона, Цвет текста, Шрифт (полужирный)
Оформляемое поле: СтатусДокумента
Под админом красится все - фон, текст и становится жирным шрифт
По обычным пользователем - фон не красится, остальное применяется
Странная избирательность )
ОТБОЙ ВОЗДУШНОЙ ТРЕВОГИ )
Оказалось, делал для пользователя документ в статусе Выдан ТолькоЧтение
и этот режим меняет фон УО поля.