В 1С Предприятии 8.2 Управляемое Приложение к табличной части можно применить такое же условное оформление, как и к динамическому списку. Но в отличие от динамического списка, где настройка списка доступна и в пользовательском режиме, сделать это можно только в режиме конфигуратора или из встроенного языка. Для этого нужно использовать свойство УсловноеОформление формы. Например, нам требуется оформить строки табличной части приходной накладной так, чтобы строки с суммой больше 10000 были выделены зеленым фоном, а ячейки Товар и Количество строк табличной части с количеством больше 10 единиц были выделены синим текстом.
Выполним условное оформление интерактивно. Есть форма документа ПоступлениеТоваровИУслуг, выделим корень элементов формы (строку Форма) и откроем ее свойства. В строке УсловноеОформление нажмем ссылку Открыть.
В появившемся окне Настройка оформления нажмем кнопку Добавить.
Сначала укажем Оформление для выделения полей. Нажмем кнопку выбора в поле Оформление и установим зеленый цвет фона.
Затем укажем условие, при наступлении которого будет применяться оформление, то есть когда фон строк табличной части будет зеленым. Нажмем кнопку выбора в поле Условие и в появившемся окне добавим Новый элемент отбора.
Для этого нажмем на кнопку Добавить и укажем в графе Левое значение – поле табличной части Объект.Товары.Сумма, в графе Вид сравнения – Больше, а в графе Правое значение выберем 10000.
Затем укажем список оформляемых полей. В отличии от оформления динамического списка, построенного на системе компоновки данных, если мы хотим выделить полностью строку, здесь нужно перечислить все поля строки табличной части.
Нажмем кнопку выбора в поле Оформляемые поля, затем нажмем Добавить и добавим поочередно все поля табличной части в список оформляемых полей.
Затем создадим еще одно условие для полей табличной части Товар и Количество, чтобы цвет текста этих полей был синим, в случае если значение в поле Количество больше 10.
Таким образом, мы добились требуемого оформления табличной части формы документа ПоступлениеТоваровИУслуг.
Подобным образом можно оформить не только строки табличной части, но и все поля документа.
Автор: Сергей Сопелев
Как создать на форме таблицу и сделать для неё подсветку содержимого колонки в строке по условию?
Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем массив добавляемых реквизитов, который будет называться МассивДобавляемыхРеквизитов.
Обратите внимание, что элементы массива у нас типа РеквизитФормы. Дальше помимо таблицы значений, нам надо добавить колонки таблицы, например будем добавлять три колонки:
Во время добавления колонок в МассивДобавляемыхРеквизитов обязательно надо указать путь к создаваемому реквизиту, в нашем случае это «План», который был добавлен в массив ранее. Обратите внимание, что путь к создаваемому реквизиту не включает в себя сам реквизит. После того, как массив сформирован, можно вызывать изменение реквизитов:
После изменения реквизитов у нас уже есть нужный нам реквизит формы «План» типа ТаблицаЗначений с тремя колонками. Если вам надо будет обратиться к значению реквизита, то вы можете это сделать используя ЭтаФорма["План"]. Можно приступать к созданию элементов формы, для отображения данных. Сначала создадим элемент формы типа ТаблицаФормы.
Как вы видите из приведенного когда, во время создания элемента мы тут же определяем действия на события. После создания элемента План типа ТаблицаФормы создадим подчиненные ему элементы типа ПолеФормы, которые будут отвечать у нас за вывод данных в колонки таблицы. Для этого в цикле перебора колонок таблицы необходимо выполнить следующий код (на примере одной из итераций цикла):
Обратите внимание, что во время добавления элемента мы указываем родителя Элементы.План. Так же путь к данным у нас состоит из наименования реквизита типа ТаблицаЗначений и имени колонки, разделенные точкой. После того, как вы в цикле создадите все элементы для колонок форма будет готова к выводу и вводу данных в таблицу.
Теперь можно перейти ко второй части задачи про подсветку цветом колонки Номенклатура. Например условие у нас будет накладываться на колонку Разница и когда она будет равно 100 строку надо будет подсвечивать колонку Номенклатуры серым цветом.
Для реализации этой части задачи мы будем использовать объект УсловноеОформление, который доступен на стороне сервера. Сначала в элементы условного оформления необходимо добавить новый элемент. Затем мы добавляем оформляемые поля. Если надо подсвечивать всю строку, то можно обойти в цикле колонки и добавить все их поля ввода в оформляемые. Так же необходимо потом добавить отбор. В левом значении отбора указываем поле, по которому будет идти сравнение. Поле указывает с точкой, как путь к данным во время добавления колонки.