1C-Code → Как сделать → Как задать условное оформление таблицы на форме
Через УсловноеОформление формы: элемент оформления, условие отбора и оформляемое поле. Красить строки кодом при выводе нельзя — управляемая форма так не работает.
&НаСервере
Процедура НастроитьОформление()
Элемент = УсловноеОформление.Элементы.Добавить();
// что красим
Поле = Элемент.Поля.Элементы.Добавить();
Поле.Поле = Новый ПолеКомпоновкиДанных("ТоварыКоличество");
// при каком условии
Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Товары.Количество");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
Отбор.ПравоеЗначение = 0;
// как красим
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательного);
КонецПроцедуры
Вы задаёте правило один раз — обычно в ПриСозданииНаСервере, — а платформа применяет его сама при каждой отрисовке. Пытаться покрасить конкретную строку в цикле бессмысленно: управляемая форма не даёт доступа к отрисовке.
В отборе — путь к данным: Товары.Количество. В оформляемых полях — ИМЯ ЭЛЕМЕНТА ФОРМЫ: ТоварыКоличество. Их путают постоянно, а ошибка выглядит как «оформление не работает».
Если не добавлять ни одного поля, оформление применится ко всей строке. Это чаще и нужно: выделить строку целиком, а не одну ячейку.
ЦветаСтиля подстраиваются под оформление платформы и тёмную тему. Захардкоженный красный на тёмном фоне читается плохо.
Условное оформление считается при каждой перерисовке списка. Сложные правила на таблице в тысячи строк заметно тормозят открытие формы — это одна из частых причин, по которой «форма стала долго открываться».
Проверить на практике. В тренажёре такой код запускается на настоящем интерпретаторе языка 1С с демонстрационной базой: справочники, документы, регистры. Без установки платформы и без риска для рабочей базы.