1C-CodeКак сделать → Как задать условное оформление таблицы на форме

Условное оформление таблицы на форме в 1С

Через УсловноеОформление формы: элемент оформления, условие отбора и оформляемое поле. Красить строки кодом при выводе нельзя — управляемая форма так не работает.

Код

&НаСервере
Процедура НастроитьОформление()

	Элемент = УсловноеОформление.Элементы.Добавить();

	// что красим
	Поле = Элемент.Поля.Элементы.Добавить();
	Поле.Поле = Новый ПолеКомпоновкиДанных("ТоварыКоличество");

	// при каком условии
	Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	Отбор.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Товары.Количество");
	Отбор.ВидСравнения   = ВидСравненияКомпоновкиДанных.Меньше;
	Отбор.ПравоеЗначение = 0;

	// как красим
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательного);

КонецПроцедуры

Что здесь важно

1. Оформление описывается, а не применяется

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

2. Имена полей в отборе и в оформлении разные

В отборе — путь к данным: Товары.Количество. В оформляемых полях — ИМЯ ЭЛЕМЕНТА ФОРМЫ: ТоварыКоличество. Их путают постоянно, а ошибка выглядит как «оформление не работает».

3. Пустой список полей красит всю строку

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

4. Цвета лучше брать из стиля

ЦветаСтиля подстраиваются под оформление платформы и тёмную тему. Захардкоженный красный на тёмном фоне читается плохо.

Где обычно спотыкаются

Условное оформление считается при каждой перерисовке списка. Сложные правила на таблице в тысячи строк заметно тормозят открытие формы — это одна из частых причин, по которой «форма стала долго открываться».

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

Открыть тренажёр

Разобраться глубже

Другие вопросы

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