Настройка динамического списка. Условное оформление

Здравствуйте, дорогие читатели.

В данной статье я хочу показать программную работу с условным оформлением динамического списка.

Рассмотрим конкретный пример.

Пример.

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

Пример

 Т.е. необходимо реализовать как показано на картинке выше: Сотрудник1 и Сотрудник4, выбранные в табличную часть документа, в списке должны выделяться серым цветом.

Приступим к реализации.

1. В реквизиты формы подбора добавим элемент «ЕстьУслофноеОформление» (Тип — булево)

2. В процедуре формы «При открытии» добавим очистку условного оформления.

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

3. Для динамического списка определяем событие «Выбор«.

В процедуру обработки выбора добавляем следующий код.


СписокВыбранныеСотрудники = Новый СписокЗначений;
Если Не ЕстьУслофноеОформление Тогда
	ЕстьУслофноеОформление = Истина;
	ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Использование = Истина;
	
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Использование = Истина;
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Сотрудник");
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Использование = Истина;
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Подразделение");
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Использование = Истина;
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Должность");
	
	ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.Использование = истина;
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник");
	СписокВыбранныеСотрудники.Добавить(ТекДанные.Сотрудник);
	ЭлементОтбора.ПравоеЗначение = СписокВыбранныеСотрудники;
	
	Оформление = ЭлементОформления.Оформление;
	Оформление.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветТекста"), WebЦвета.СветлоСерый);
Иначе
	ЭлементыОформления = Список.УсловноеОформление.Элементы;
	ЭлементОФормления = ЭлементыОформления[0];
	ОтборЭлементФормления = ЭлементОФормления.Отбор;
	ЭлементыОтбора = ОтборЭлементФормления.Элементы;
	ЭлементОтбора = ЭлементыОтбора[0];
	СписокВыбранныеСотрудники.ЗагрузитьЗначения(ЭлементОтбора.ПравоеЗначение.ВыгрузитьЗначения());
	СписокВыбранныеСотрудники.Добавить(ТекДанные.Сотрудник);
	ЭлементОтбора.ПравоеЗначение = СписокВыбранныеСотрудники;
КонецЕсли; 

Вот вроде и все. Наслаждаемся результатом.

Популярность: 15%

Запись опубликована в рубрике Особенности работы управляемого интерфейса с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.