Skip to content

Условное оформление программно

Дополнять условное оформление лучше всего в обработчике формы ПриСозданииНаСервере

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