MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Установить программно условное оформление
05.07.2017
16:54
Текстовые метки: 1c_forms
Раздел: Программирование - 1с - forms

Программная работа с условным оформлением (УО).

Начнем с того, что работа с УО доступна только:

&НаСервере

Для Добавления элемента УО в списке нужно обратится к списку и добавить элемент УО:

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

Для УО формы добавление происходит через прикладной объект УсловноеОформление:

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

Далее алгоритмы будут похожими. Для УО нам нужно задать условие отбора, задать значение свойства УО и добавить оформляемые поля.

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

Значение свойства УО:

// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент ЭлементОформления.Оформление.Элементы[0];
Элемент.Значение Цвет;
//2.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона"WebЦвета.СеребристоСерый);

Элемент.Использование = Истина;

Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления);
ПолеОформления.Использование = Истина;

В качестве ИменПолей нужно передавать строковое представление ИМЕНИ реквизита.


Пример:

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

ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Рецензент");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;

ЭлементОтбора.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;

ЭлементОтбора.Использование = Истина;


Пример с использованием БСП:

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

ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(

ЭлементОформления.Отбор,

"Рецензент",

ВидСравненияКомпоновкиДанных.Равно,

ПараметрыСеанса.ТекущийПользователь,

,

Истина);




Так же в этом разделе:
 
MyTetra Share v.0.46
Яндекс индекс цитирования