Установить условное оформление поля дата. Устанавливает представление поля Дата в списках, содержащих реквизит с составом даты Дата и время.
// Устанавливает представление поля Дата в списках, содержащих реквизит с составом даты Дата и время.
// Подробнее см. стандарт "Поле "Дата" в списках".
//
// Параметры:
// ЭтотОбъект - ФормаКлиентскогоПриложения - форма со списком.
// ПолноеИмяРеквизита - Строка - полный путь к реквизиту типа "Дата" в формате "<ИмяСписка>.<ИмяПоля>".
// ИмяЭлемента - Строка - имя элемента формы, связанного с реквизитом списка типа "Дата".
//
// Пример:
//
// Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект);
//
Процедура УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект,
ПолноеИмяРеквизита = "Список.Дата", ИмяЭлемента = "Дата") Экспорт
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата",
"ЭтотОбъект",
ЭтотОбъект,
Тип("ФормаКлиентскогоПриложения"));
ЧастиПолногоИмени = СтрРазделить(ПолноеИмяРеквизита, ".");
Если ЧастиПолногоИмени.Количество() <> 2 Тогда
// Недопустимое значение параметра ПолноеИмяРеквизита.
// Имя реквизита должно быть в формате ""<ИмяСписка>.<ИмяПоля>""'");
Возврат;
КонецЕсли;
ИмяСписка = ЧастиПолногоИмени[0];
РеквизитСписок = ЭтотОбъект[ИмяСписка];
Если ТипЗнч(РеквизитСписок) = Тип("ДинамическийСписок") Тогда
// ДинамическийСписок позволяет установить условное оформление с помощью собственного компоновщика.
// При этом параметр ИмяЭлемента игнорируется, потому что компоновщик динамического списка
// не знает как будут отображены реквизиты списка, потому путем к реквизиту и значения отбора и оформления
// является имя реквизита динамического списка.
УсловноеОформление = РеквизитСписок.УсловноеОформление;
ПутьКРеквизиту = ЧастиПолногоИмени[1];
ИмяОформляемогоПоля = ПутьКРеквизиту;
Иначе
// Остальные списки, например, ДанныеФормыДерево:
// не имеют собственного компоновщика, потому используют компоновщик самой формы.
УсловноеОформление = ЭтотОбъект.УсловноеОформление;
ПутьКРеквизиту = ПолноеИмяРеквизита;
ИмяОформляемогоПоля = ИмяЭлемента;
КонецЕсли;
Если Не ЗначениеЗаполнено(УсловноеОформление.ИдентификаторПользовательскойНастройки) Тогда
УсловноеОформление.ИдентификаторПользовательскойНастройки = "ОсновноеОформление";
КонецЕсли;
// По умолчанию используется представление "10.06.2012".
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОформления.Представление = НСтр("ru = 'Представление даты: ""10.06.2012""'");
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Формат", "ДЛФ=D");
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяОформляемогоПоля);
// Для сегодняшнего дня используется представления "09:46".
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОформления.Представление = НСтр("ru = 'Представление даты сегодня: ""09:46""'");
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Формат", "ДФ=ЧЧ:мм");
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяОформляемогоПоля);
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКРеквизиту);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = Новый СтандартнаяДатаНачала(ВариантСтандартнойДатыНачала.НачалоЭтогоДня);
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКРеквизиту);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ЭлементОтбора.ПравоеЗначение = Новый СтандартнаяДатаНачала(ВариантСтандартнойДатыНачала.НачалоСледующегоДня);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
УстановитьУсловноеОформлениеДереваПодсистем (БСП)
Условное оформление на обычных формах (ОФ)
УстановитьУсловноеОформлениеСпискаСертификатов (БСП)
1с83. Шаблон кода для программной установки условного оформления поля динамического списка
ЗаполнитьУсловноеОформлениеСпискаФайлов (БСП)
ЗаполнитьУсловноеОформлениеСпискаПапок (БСП)