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

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

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

Уровни условного оформления в управляемых формах

В платформе 1С:Предприятие 8.3 для динамических списков существует несколько независимых уровней настройки оформления. Выясним причину, почему правила оформления сложно обнаружить сразу:

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

Важно: если одно и то же свойство отображения (например, цвет фона или цвет текста) задано одновременно в условном оформлении формы и в условном оформлении динамического списка, приоритет имеет условное оформление формы.

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

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

  1. Проверка условного оформления формы. Откроем форму, перейдем на закладку элементов или реквизитов, выделим самый верхний элемент дерева — корень формы. В окне свойств найдем строку УсловноеОформление и откроем диалог настройки.
  2. Проверка условного оформления динамического списка. Перейдем на закладку Реквизиты формы, найдем реквизит с типом ДинамическийСписок, в его свойствах откроем пункт НастройкиКомпоновкиДанных, а затем вкладку Условное оформление.
  3. Поиск в программном коде. Выполним глобальный поиск по модулю формы по ключевым словам УсловноеОформление, ЦветФона, ЦветТекста, ОформлениеСтрок.

Программная установка условного оформления по стандартам 1С

Стандарты разработки 1С рекомендуют задавать условное оформление программно в обработчике ПриСозданииНаСервере, а не в визуальном редакторе. Это упрощает сравнение и объединение конфигураций при параллельной разработке и позволяет учитывать права доступа и функциональные опции. Рассмотрим подробнее программный способ добавления правила оформления:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Создаем новый элемент условного оформления формы
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    
    // 1. Задаем оформление (например, зеленый цвет фона)
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
    
    // 2. Указываем условие применения оформления
    ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Сопоставлено");
    ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементУсловия.ПравоеЗначение = Истина;
    ЭлементУсловия.Использование = Истина;
    
    // 3. Указываем оформляемые поля формы
    ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("СписокНоменклатура");
    ОформляемоеПоле.Использование = Истина;
    
КонецПроцедуры

Альтернативные способы оформления данных динамического списка

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

  1. Обработчик «ПриПолученииДанныхНаСервере». В свойствах таблицы формы динамического списка можно подключить событие ПриПолученииДанныхНаСервере. Через параметр ОформленияСтрок (коллекция ОформлениеСтрокиДинамическогоСписка) можно программно управлять цветом и шрифтом каждой строки. Этот подход эффективен, когда логика подкраски требует вызова сложных функций или выборки из дополнительных регистров, которые нежелательно соединять в основном запросе списка.
  2. Вычисление признака в запросе динамического списка. Сложные условия сопоставления или статусов оптимально рассчитывать прямо в тексте запроса с помощью конструкции ВЫБОР КОГДА ... ТОГДА ... КОНЕЦ, формируя булевый флаг или код состояния. После этого в условном оформлении настраивается простое правило по значению полученного поля.
← На главную