УстановитьОформлениеЗадач (БСП)

Автор: 1С
ОбщийМодуль.БизнесПроцессыИЗадачиСервер
БСП

Установить оформление задач. Вызывается при создании формы списка задач на сервере.

// Вызывается при создании формы списка задач на сервере.
//
// Параметры:
//  СписокЗадачИлиЕгоУсловноеОформление - ДинамическийСписок, УсловноеОформлениеКомпоновкиДанных - условное
//   оформление списка задач.
//
Процедура УстановитьОформлениеЗадач(Знач СписокЗадачИлиЕгоУсловноеОформление) Экспорт
	
	Если ТипЗнч(СписокЗадачИлиЕгоУсловноеОформление) = Тип("ДинамическийСписок") Тогда
		УсловноеОформлениеСпискаЗадач = СписокЗадачИлиЕгоУсловноеОформление.КомпоновщикНастроек.Настройки.УсловноеОформление;
		УсловноеОформлениеСпискаЗадач.ИдентификаторПользовательскойНастройки = "ОсновноеОформление";
	Иначе
		УсловноеОформлениеСпискаЗадач = СписокЗадачИлиЕгоУсловноеОформление;
	КонецЕсли;
	
	// Удаление предустановленных элементов оформления.
	Предустановленные = Новый Массив;
	Элементы = УсловноеОформлениеСпискаЗадач.Элементы;
	Для каждого ЭлементУсловногоОформления Из Элементы Цикл
		Если ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный Тогда
			Предустановленные.Добавить(ЭлементУсловногоОформления);
		КонецЕсли;
	КонецЦикла;
	Для каждого ЭлементУсловногоОформления Из Предустановленные Цикл
		Элементы.Удалить(ЭлементУсловногоОформления);
	КонецЦикла;
		
	// Установка оформления для просроченных задач.
	ЭлементУсловногоОформления = УсловноеОформлениеСпискаЗадач.Элементы.Добавить();
	ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СрокИсполнения");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	ЭлементОтбораДанных.Использование = Истина;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СрокИсполнения");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
	ЭлементОтбораДанных.ПравоеЗначение = ТекущаяДатаСеанса();
	ЭлементОтбораДанных.Использование = Истина;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Выполнена");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбораДанных.ПравоеЗначение = Ложь;
	ЭлементОтбораДанных.Использование = Истина;
	
	ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
	ЭлементЦветаОформления.Значение =  Метаданные.ЭлементыСтиля.ПросроченныеДанныеЦвет.Значение;   
	ЭлементЦветаОформления.Использование = Истина;
	
	// Установка оформления для выполненных задач.
	ЭлементУсловногоОформления = УсловноеОформлениеСпискаЗадач.Элементы.Добавить();
	ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Выполнена");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбораДанных.ПравоеЗначение = Истина;
	ЭлементОтбораДанных.Использование = Истина;
	
	ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("ЦветТекста");
	ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ВыполненнаяЗадача.Значение; 
	ЭлементЦветаОформления.Использование = Истина;
	
	// Установка оформления для задач, не принятых к исполнению.
	ЭлементУсловногоОформления = УсловноеОформлениеСпискаЗадач.Элементы.Добавить();
	ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПринятаКИсполнению");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбораДанных.ПравоеЗначение = Ложь;
	ЭлементОтбораДанных.Использование = Истина;
	
	ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("Шрифт");
	ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.НеПринятыеКИсполнениюЗадачи.Значение; 
	ЭлементЦветаОформления.Использование = Истина;
	
	// Установка оформления для незаполненного поля "Срок".
	ЭлементУсловногоОформления = УсловноеОформлениеСпискаЗадач.Элементы.Добавить();
	ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("СрокИсполнения");
	ОформляемоеПоле.Использование = Истина;
	
	ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СрокИсполнения");
	ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбораДанных.ПравоеЗначение = Истина;
	ЭлементОтбораДанных.Использование = Истина;
	
	ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("ЦветТекста");
	ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
	ЭлементЦветаОформления.Использование = Истина;
	
	ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("Текст");
	ЭлементЦветаОформления.Значение = НСтр("ru = 'Срок не указан'");
	ЭлементЦветаОформления.Использование = Истина;
	
	// Установка оформления для внешних пользователей, поле Автор пустое.
	Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда
			ЭлементУсловногоОформления = УсловноеОформлениеСпискаЗадач.Элементы.Добавить();
			ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

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

			ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("Текст");
			ЭлементЦветаОформления.Значение = НСтр("ru = 'Представитель организации'");
			ЭлементЦветаОформления.Использование = Истина;
	КонецЕсли;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

УстановитьУсловноеОформлениеДереваПодсистем (БСП)

УстановитьУсловноеОформлениеСпискаСертификатов (БСП)

ЗаблокироватьЗадачи (БСП)

УстановитьПараметрыСпискаМоихЗадач (БСП)

УстановитьОформлениеБизнесПроцессов (БСП)

УстановитьПометкуУдаленияЗадач (БСП)

УстановитьОтображениеЗаголовковГрупп (БСП)

УстановитьУсловноеОформлениеПоляДата (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз