Условное оформление табличной части управляемой формы не работает

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

Условное оформление

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

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

Пример

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

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

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

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

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

Вывод

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

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

Источник

УФ. Не работает условное оформление.

Вроде бы простейшая задача, но почему то не получается.

На управляемой форме есть переключатель (2 положения) и реквизит. Если переключатель стоит в первом положении, то реквизит должен быть доступен для редактирования, если во втором, то не доступен.

Делаю условным оформлением. Добавил такое условие:

Оформление | Условие | Оформляемые поля
Только просмотр Истина | Переключатель Равно «2» | ПолеВвода

Почему то не работает. Что я не так делаю?

? Видимость – используется только для отключения отображения полей таблицы: поле надписи, поле ввода, поле переключателя, поле картинки. Место ячеек с отключенным отображением занимается за счет изменения размера соседних ячеек. Алгоритм растягивания ячеек может различаться в различных клиентских приложениях.

? Доступность – используется только для отключения доступности полей таблицы: поле надписи, поле ввода, поле переключателя, поле картинки.

? Только просмотр – используется только для включения режима Только просмотр для полей таблицы: поле надписи, поле ввода, поле переключателя, поле картинки.

? Отображать – используется только для отключения видимости значений полей таблицы: поле надписи, поле ввода, поле переключателя, поле картинки.

Кто-нибудь пользовался условным оформлением для управления доступностью реквизитов?

(5) Я сделал на этой же форме условное оформление для числового реквизита. Если он меньше нуля то окрашивается в красный. Это работает.

Значит управление видимостью и доступностью только для табличных полей?

Источник

Не работает условное оформление управляемой формы. Почему?

Есть два элемента:
«Элемент1» (поле ввода, путь к данным «Объект.Реквизит1» с типом Перечисление)
«Элемент2» (поле ввода, путь к данным «Объект.Реквизит2» с типом Строка)

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

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

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

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

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

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

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

Источник

Условное оформление управляемой формы в 1С

Условное оформление формы в 1с 8 служит для управления видимостью, доступностью, цветом элементов таблиц управляемой формы (а также оно используется в СКД и динамических списках). Удобство его использования заключается в том, что вы один раз задаете условие по которому должно меняться оформление вашей формы. После этого при работе пользователя с формой, при срабатывании условия оформление будет меняться автоматически. Не нужно использовать события формы и писать лишний код.

Следует заменить, что условное оформление форм работает только в конфигурациях использующих управляемое приложение (Бухгалтерия 3.0, ЗУП 3.0/3.1, Управление торговлей 11 и т.п.)

Условное оформление 1с. Интерактивная настройка

Еще один плюс условного оформления — его можно настроить не написав ни строчки кода. Для этого в форме необходимо:

  • Открыть свойства формы -> вкладка оформление -> УсловноеОформление Открыть;

  • Откроется таблица Настройка условного оформления;
  • В первом столбце необходимо выбрать оформление (или сразу несколько);
  • Во втором столбце задать условие, по которому будет срабатывать выбранное оформление;
  • С третьем столбце необходимо выбрать элементы формы на которые будет действовать выбранное оформление.

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

Условное оформление формы. Пример интерактивной настройки

Для примера мной была написана простейшая обработка, на формы которой добавлен реквизит с типом ТаблицаЗначений, с тремя колонками. А также три реквизита с типом булево. Скачать обработку можно Здесь.

Форма обработки выглядит так:

Настроим следующее условное оформление данной формы: при установке реквизита СкрытьКолонку1 в значение Истина, в таблице форме скрывать реквизит Колонка1.

  • Откроем настройку условного оформления формы;
  • Добавим в таблицу новую строку;
  • В колонке Оформление нажмем на кнопку с тремя точками и выберем параметр Видимость, значение Нет;

  • В колонке Условие нажмем на кнопку с тремя точками, в открывшемся окне добавим новый отбор. Пропишем туда следующие значения: Левое значение — СкрытьКолонку1, Вид сравнения — Равно, Правое значение — Да;

  • В колонке Оформляемые поля нажмем на кнопку с тремя точками, в открывшемся окне добавим новый элемент, и выберем значение ТаблицаФормыКолонка1;
  • В итоге у нас должна получиться настройка условного оформления, такая же как на следующем рисунке;

  • Нажмем кнопку Ок, сохраним нашу обработку и запустим ее в режиме 1С Предприятие;
  • При установке флажка Скрыть колонку 1, будут происходить следующие изменения в оформлении формы.

Условное оформление 8.3. Пример программной настройки

Используя ту же внешнюю обработку, что и в предыдущем пункте, приведем пример программной настройки условного оформления. Необходимо сделать следующее: при установке реквизита ПоменятьЦветКолонки2 в значение Истина, в таблице формы раскрашивать фон Колонки 2, при установке реквизита СделатьНедоступнойКолонку3 в значение Истина, в таблице формы делать недоступным реквизит Колонка3.

В модуле формы создадим серверную процедуру, назовем ее УстановитьУсловноеОформление и сразу же допишем ее вызов в процедуре ПриСозданииНаСервере.

Весь следующий код будем писать в процедуре УстановитьУсловноеОформление. Нам необходимо добавить новый элемент условного оформления формы, для этого используем стандартную коллекцию формы УсловноеОформление.

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

Таким образом мы создали оформление для второй колонки таблицы. Для третьей колонки оно делается аналогичным образом, поэтому не будем на нем подробно останавливаться. Итоговый код процедуры УстановитьУсловноеОформление будет выглядеть следующим образом:

Напомню, что скачать обработку написанную на основе разобранных примеров можно Здесь.

Источник

Условное оформление табличной части документа есть ли способ реализовать?

При переходе на управляемые формы возникла задача, которая ранее решалась по событию ПриВыводеСтроки.

Имеем документ с табличной частью, в таблице представлен список сотрудников, в первой колонке находится полное ФИО сотрудника

Например: Иванов Иван Иванович — но пользователь должен видеть: Иванов И.И. и только при редактировании поля появляется полное ФИО.

Ранее задача решалась так по событию ПриВыводеСтроки:
ОформлениеСтроки.Ячейки.ФИО.УстановитьТекст(СокращенноеФИО(ОформлениеСтроки.Ячейки.ФИО.Значение));

Пример условный, но отражает суть проблемы.

Возможно ли реализовать данный функционал на управляемых формах через условное форматирование, если можно подскажите как это сделать?

(1) Зачем же так сразу, бывают разные ситуации.
Вы и раскрашивание строк по условию не приемлете?

Какие ваши доказательства?

Ну если опасность в этом, то здесь такого количества не будет. И 10 уже много.

Интересует скорее возможность такой реализации, чем размышления надо ли это.

(8) Иногда приблуда нужна при стыковке разных концепций. Например дополнение к типовой, когда большой универсальности не требуется, но наглядность нужна.

Хорошо, получается исходя из примера, нужно иметь отдельное поле в таблице — ПредставлениеФИО которое и показывать пользователю, а реальное только для хранения использовать?

Нужно при изменении строк сделать процедуру обновления
и прописать программное создание условного оформления.

Правда придется это делать у тебя в цикле для каждой строки.
Ну по сути один фиг да — циклом бегать. Но при этом будет одно поле в котором просто будет нужный текст.

Вот тебе процедура с помощью которой ты можешь все сделать

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

Источник

Читайте также:  Не работает щиток ваз 2112 с европанелью
Оцените статью