Приветствую Вас ГостьСуббота, 18.05.2024, 10:25

Каталог статей


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

Источник https://infostart.ru/public/181336/

В конфигураторе условное оформление существует на уровне самой формы (как в формах объекта, так и списка):

В формах списка условное оформление существует и на уровне самого динамического списка, если источником данных для списка является основная таблица:

Интересный глюк: условное оформление для списка можно настроить только если задана основная таблица (например Документ.Счет). Если потом, в силу каких-то причин, источником данных для списка сделать запрос, то условное оформление для списка станет недоступным для изменения, но будет продолжать действовать. Вернуться к нему можно только если источником сделать снова основную таблицу.

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

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

&НаСервере

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

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

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

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

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

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

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

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

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

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

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

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

Пример процедуры выделения жирным цветом значения в ячейке таблицы.

"Отчет" - название элемента таблицы на форме.

"Роль" - имя колонки по которому производим сравнение.

"ОтчетРоль" - имя колонки

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


Отображение столбцов в динамическом списке.

Если надо чтобы в динамическом списке не отображались столбцы, но их можно было добавить через изменение формы, то в свойствах элементов этих столбцов надо убрать галку в свойстве "Пользовательская видимость" - Видимость. 


Чтобы к столбцу можно было обращаться, даже если он не включен в список отображаемых элементов, у соответствующего реквизита динамического списка надо поставить свойство "Использовать всегда".

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

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

 

Категория: Формы | Добавил: leshic (29.04.2019)
Просмотров: 628 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [41]
Администрирование [35]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0