При разработке и доработке управляемых форм часто возникает задача визуального выделения данных в табличной части: подсветить незаполненные обязательные поля, выделить цветом строки с определенным статусом или акцентировать внимание пользователя на критических значениях. Однако многие разработчики сталкиваются с тем, что в свойствах самого элемента управления «Таблица» или реквизита табличной части привычный пункт условного оформления отсутствует. Выясним причину такого поведения платформы и разберем по шагам, как настроить подсветку полей.
Проанализируем архитектуру управляемых форм «1С:Предприятия». В отличие от динамических списков, у которых условное оформление настраивается непосредственно в свойствах реквизита, для табличных частей и таблиц значений механизм работает иначе. У элементов управления «Таблица» и реквизитов объекта нет персонального свойства для оформления.
В управляемой форме оформление табличных частей задается централизованно — на уровне всей формы. Коллекция правил применяется ко всем элементам формы, а конкретная табличная часть или колонка указывается непосредственно внутри правила в качестве оформляемого поля.
Разберем по шагам, как быстро перейти к настройке оформления табличной части в конфигураторе:
Форма.УсловноеОформление и нажмем гиперссылку «Открыть».После открытия окна условного оформления формы создадим новое правило для окрашивания пустых ячеек. Рассмотрим подробнее каждый этап настройки:
Объект.ИмяТабличнойЧасти.ИмяРеквизита).Если требуется формировать правила динамически в коде, важно учитывать контекст выполнения. Коллекция УсловноеОформление доступна для модификации исключительно на сервере. Попытка изменить элементы этой коллекции на клиенте приведет к ошибке выполнения. Обычно такую настройку выполняют в обработчике ПриСозданииНаСервере.
Также проанализируем поведение в режиме «1С:Предприятие»: обычный пользователь через стандартное меню формы «Еще — Изменить форму» не может настраивать условное оформление для табличной части документа или обработки. В отличие от динамических списков с их пунктом «Настроить список...», для табличных частей оформление задается только разработчиком в конфигураторе или кодом.
Кроме того, помните о производительности: правила условного оформления формы рассчитываются на стороне клиента при выводе строк. Чрезмерное количество сложных условий на больших таблицах может вызывать заметные задержки при прокрутке строк и вводе данных.
Если единственная цель настройки — показать пользователю, что поле обязательно для заполнения, можно обойтись без условного оформления. Платформа предоставляет встроенный визуальный маркер:
АвтоОтметкаНезаполненного (либо свойство ОтметкаНезаполненного у самого реквизита объекта).В этом случае платформа будет самостоятельно выделять пустое поле стандартной красной пунктирной рамкой до тех пор, пока значение не будет введено пользователем.