В процессе разработки часто возникает задача вывода на форму табличной части дополнительных сведений, которые не хранятся непосредственно в объекте, но необходимы пользователю для визуального анализа. Рассмотрим подробно, как правильно организовать вывод таких данных и как настроить для них Условное оформление.
Важно понимать, что управляемые формы имеют свои архитектурные особенности. Если вам нужно просто отобразить дополнительные реквизиты (например, сумму или комментарий, привязанные к документу-основанию), не обязательно хранить их в базе данных. Выполним следующие действия:
Табличная часть на форме добавьте новые колонки.ПриСозданииНаСервере.ПриИзменении поля, содержащего ссылку.Если данные являются реквизитами реквизита (например, Документ.СуммаДокумента), то при добавлении их на форму система сама обеспечит их отображение без необходимости постоянного программного заполнения, если выбран тип ссылки.
Когда требуется визуально выделить строки (например, окрасить текст в синий цвет, если документ не проведен), мы используем Условное оформление. Рассмотрим, как создать такое оформление программно в расширении или модуле формы:
Для программной настройки нам потребуется объект УсловноеОформление. Основной принцип заключается в добавлении элемента в коллекцию, установке отбора и указании полей, к которым применяется оформление.
// Пример программной установки условного оформления
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Синий);
// Настройка отбора
ОтборЭлемента = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокДокументов.Документ.Проведен");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента.Использование = Истина;
// Указание полей для применения оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("СписокДокументов");
ПолеОформления.Использование = Истина;
Проанализируем ситуацию, когда поле Документ имеет Составной тип данных (например, включает Реализация товаров и услуг, Возврат товаров и т.д.).
Важное ограничение: Если у документов, входящих в составной тип, нет общих реквизитов с одинаковым именем, платформа не сможет «раскрыть» их в дереве доступных полей для Условного оформления. В таких случаях:
Использовать всегда в палитре свойств элемента формы, чтобы данные были доступны на клиенте в момент применения оформления.Если вы применили код, но визуальных изменений в табличной части нет, пройдите по пунктам:
ПутьКДанным в поле оформления точно совпадает с именем элемента на форме.Условного оформления, заданными в конфигураторе.Расширении, попробуйте явно проверить доступность полей через отладчик в процедуре ПриСозданииНаСервере.Использование Условного оформления — это наиболее эффективный и производительный способ управления внешним видом данных в современных управляемых формах, так как он работает непосредственно на уровне платформы, не требуя перерисовки строк при каждом обращении.