Где найти и как настроить условное оформление табличной части на управляемой форме в 1С?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

При разработке и доработке управляемых форм часто возникает задача визуального выделения данных в табличной части: подсветить незаполненные обязательные поля, выделить цветом строки с определенным статусом или акцентировать внимание пользователя на критических значениях. Однако многие разработчики сталкиваются с тем, что в свойствах самого элемента управления «Таблица» или реквизита табличной части привычный пункт условного оформления отсутствует. Выясним причину такого поведения платформы и разберем по шагам, как настроить подсветку полей.

Почему свойства условного оформления нет у элемента таблицы?

Проанализируем архитектуру управляемых форм «1С:Предприятия». В отличие от динамических списков, у которых условное оформление настраивается непосредственно в свойствах реквизита, для табличных частей и таблиц значений механизм работает иначе. У элементов управления «Таблица» и реквизитов объекта нет персонального свойства для оформления.

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

Поиск и настройка условного оформления в конфигураторе

Разберем по шагам, как быстро перейти к настройке оформления табличной части в конфигураторе:

  1. Откроем нужную управляемую форму в конфигураторе.
  2. В окне элементов формы (левая верхняя панель) выделим самый верхний элемент — корень дерева с именем Форма.
  3. Перейдем в окно «Свойства» (обычно расположено справа). Чтобы не искать пункт вручную среди множества параметров, воспользуемся строкой поиска в верхней части палитры свойств и введем слово «условное».
  4. В группе свойств «Оформление» найдем строку УсловноеОформление и нажмем гиперссылку «Открыть».

Настройка правила для подсветки незаполненных полей

После открытия окна условного оформления формы создадим новое правило для окрашивания пустых ячеек. Рассмотрим подробнее каждый этап настройки:

  1. Настройка оформления: на первой вкладке отмечаем флажком необходимое свойство, например, «Цвет фона» или «Цвет текста», и выбираем требуемый оттенок (например, светло-красный или серый).
  2. Настройка условия: переходим на вкладку «Условие». Добавляем новую строку:
    • В поле «Левое значение» выбираем реквизит нашей табличной части (путь будет выглядеть как Объект.ИмяТабличнойЧасти.ИмяРеквизита).
    • В поле «Вид сравнения» выбираем стандартный оператор «Не заполнено». Это оптимальный выбор, так как платформа автоматически обработает пустые строки, нулевые числа, пустые даты и пустые ссылки без создания лишних проверок.
  3. Выбор оформляемых полей: переходим на третью вкладку «Оформляемые поля» и обязательно добавляем колонку таблицы, которую хотим окрасить. Обратите внимание: если оставить список оформляемых полей пустым, платформа применит выбранный цвет ко всей строке таблицы целиком, а не к конкретной незаполненной ячейке.

Программная установка и ограничения платформы

Если требуется формировать правила динамически в коде, важно учитывать контекст выполнения. Коллекция УсловноеОформление доступна для модификации исключительно на сервере. Попытка изменить элементы этой коллекции на клиенте приведет к ошибке выполнения. Обычно такую настройку выполняют в обработчике ПриСозданииНаСервере.

Также проанализируем поведение в режиме «1С:Предприятие»: обычный пользователь через стандартное меню формы «Еще — Изменить форму» не может настраивать условное оформление для табличной части документа или обработки. В отличие от динамических списков с их пунктом «Настроить список...», для табличных частей оформление задается только разработчиком в конфигураторе или кодом.

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

Штатная альтернатива: отметка незаполненного

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

  1. В дереве элементов формы выделим нужное поле ввода внутри таблицы.
  2. В палитре свойств включим флаг АвтоОтметкаНезаполненного (либо свойство ОтметкаНезаполненного у самого реквизита объекта).

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

← На главную