Программно сделать условное оформление формы списка документа

1. Q-Q 30 05.07.12 16:38 Сейчас в теме
У документа есть реквизит "ДатаОкончания".
Если ДатаОкончания меньше текущей даты, то нужно фон строки этого документа сделать красным.
Как это сделать программно?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lehis_S 05.07.12 16:47 Сейчас в теме
Наверное где-то так.

Обычное приложение.

Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
	
	Если ДанныеСтроки.Ссылка.ДатаОкончания < ТекущаяДата()Тогда
		ОформлениеСтроки.ЦветФона = WebЦвета.Красный;
	КонецЕсли;
	
КонецПроцедуры
user1046602; assa; +2 Ответить
11. user1046602 06.09.21 11:53 Сейчас в теме
(2) Почему то параметры процедуры Элемент, ОформлениеСтроки, ДанныеСтроки - неопределено. Процедура не работает. Не управляемые формы. Где задаются эти параметры?
Прикрепленные файлы:
3. Q-Q 30 05.07.12 16:50 Сейчас в теме
Да, забыл написать. Управляемое приложение.
5. lehis_S 05.07.12 16:58 Сейчас в теме
(3) Q-Q,
вот пример попался
&НаКлиенте
Перем Отбор;

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

КонецПроцедуры // КонтрагентПриИзменении()

Показать
mchell; dimknyazev; ImHunter; Q-Q; +4 Ответить
7. Q-Q 30 05.07.12 17:14 Сейчас в теме
(5) lehis_S, Спасибо, Добрый Человек! Заработало.
9. 1cProfit 13.04.17 15:39 Сейчас в теме
(5) УсловноеОформление не доступно на клиенте !
10. kolya_tlt 87 13.04.17 15:48 Сейчас в теме
(5) очень плохой пример. УФ нужно задать один раз, при создании формы на сервере

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

КонецПроцедуры
Показать
Slypower; legenda-nsh; Atticus2; +3 Ответить
4. asved.ru 36 05.07.12 16:54 Сейчас в теме
Запускаем отладчик, настраиваем в клиенте оформление, делаем выход на останов и среди ЭтаФорма.ЭлементыФормы находим нужный элемент (динамический список), смотрим у него параметры условного оформления и тут же пишем код, их устанавливающий.
6. Q-Q 30 05.07.12 17:08 Сейчас в теме
(4) asved.ru,
Несколько смущает "и тут же пишем код, их устанавливающий".
То есть нужно "вручную собирать" переменную типа КоллекцияЭлементовУсловногоОформленияКомпановкиДанных?
8. asved.ru 36 05.07.12 17:36 Сейчас в теме
(6) Q-Q, Зачем, она же уже есть. Мы только добавляем в нее нужные элементы и условия их применения (т.е. отбор)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот