Выделение цветом строки табличной части с условием.

1. user606894_schana1w3 22.03.17 16:27 Сейчас в теме
Здравствуйте, подскажите пожалуйста как сделать нечто подобное
На форме есть табличная часть "ТО" у нее 4 реквизита : "Номер машины", "Текущий пробег", "Норма", "Тех. осмотр через". Получается что-то вроде (х100 АЕ 11, 11000, 5000, -6000
И нужно выделить красным цветом всю строку в случае если в колонке "Тех. осмотр через" будет значение с ---.
Допустим "текущий пробег" 5000, а норма "6000" * на 10% то когда будет "текущий пробег" 5400 то строка выделяется желтым.
Я тут что-то накалякал
&НаСервере
Процедура ПриОткрытииНаСервере()
	
	 	
	ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	элементыПолей = ЭлементОформления.Поля.Элементы;
	элементыОтбора = ЭлементОформления.Отбор.Элементы;

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ПриОткрытииНаСервере();
	
КонецПроцедуры
Показать

Просто, чтобы понять как выделение программно сделать.
Вопрос в чем, куда условие писать? сюда ? "элементОтбора.ПравоеЗначение"
+
Найденные решения
3. ditp 91 22.03.17 17:02 Сейчас в теме
(1) так:
?

см. вложение
Прикрепленные файлы:
ВнешняяОбработка1.epf
Oldsad; Khalimon; Zweimor; maxst22; user606894_schana1w3; +5
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. ditp 91 22.03.17 17:02 Сейчас в теме
(1) так:
?

см. вложение
Прикрепленные файлы:
ВнешняяОбработка1.epf
Oldsad; Khalimon; Zweimor; maxst22; user606894_schana1w3; +5
4. user606894_schana1w3 22.03.17 17:11 Сейчас в теме
(3)а как вы так сделали? через условное оформление формы?
+
5. user606894_schana1w3 22.03.17 17:15 Сейчас в теме
(3)Все, просек, спасибо.
+
2. Velesstroy_OOO 22.03.17 16:55 Сейчас в теме
В "элементОтбора.ПравоеЗначение" указывается значение условия, с которым сравнивается значение в поле "элементОтбора.ЛевоеЗначение".

Таким образом для желтого выделения. Вычисляем норму пробега, подставляем значение в "элементОтбора.ПравоеЗначение" в "элементОтбора.ВидСравнения" вид сравнения указываем больше либо равно.
+
6. user606894_schana1w3 22.03.17 17:21 Сейчас в теме
А так прокатит При открытии()? тоесть открываю обработку и там уже заполненная табличная часть.
+
7. ditp 91 22.03.17 17:47 Сейчас в теме
(6) В приОткрытии нужно будет пробежаться по строкам ТЧ и заполнить нужное
+
8. user606894_schana1w3 23.03.17 09:55 Сейчас в теме
(7)
обежаться по строкам ТЧ и заполнить нужное

Что-то я не совсем понял как в при открытии это сделать, типа циклом пробежался и вызов вот этой процедуры при окончании редактирования?
+
9. ResetAtreides 23.03.17 10:30 Сейчас в теме
А зачем, вообще, чего-то выполнять? Условное оформление на форме в конфигураторе настройте и будет всегда работать
KAV2; yaroslav.artem; +2
10. yaroslav.artem 23.03.17 10:51 Сейчас в теме
Условное оформеление на форме в конфигураторе.. В УФ формах по другому не нашел как сделать, нет события ПриВыводеСтроки()
+
11. user606894_schana1w3 23.03.17 11:58 Сейчас в теме
Все, всем спасибо. Сделал по схеме настройки усл. оформления и добавления реквизитов и расчета их в запросе.

А если ручками при открытии вот рабочий код
//элементОформления = УсловноеОформление.Элементы.Добавить();
	//ЭлементыПолей = элементОформления.Поля.Элементы;
	//элементОтбора = элементОформления.Отбор.Элементы;
	//
	//элементОтбора = элементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	//элементОтбора.ЛевоеЗначение= Новый ПолеКомпоновкиДанных("Объект.СкороТО1.Дельта1");//Полный путь до реквизита вашей табличной части 
	//элементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
	//элементОтбора.ПравоеЗначение = 0;
	//элементОтбора.Использование=Истина;
	//
	//элементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Лосось);
	//элементОформления.Использование = Истина;
	//
	//ПолеОформления = элементОформления.Поля.Элементы.Добавить();
	//ПолеОформления1 = элементОформления.Поля.Элементы.Добавить();
	//ПолеОформления2 = элементОформления.Поля.Элементы.Добавить();
	//ПолеОформления3 = элементОформления.Поля.Элементы.Добавить();
	//ПолеОформления4 = элементОформления.Поля.Элементы.Добавить();
	//ПолеОформления.Поле= Новый ПолеКомпоновкиДанных("СкороТО1Дельта1");//Название реквизитатабличнойчасти(Табличная часть - СкороТО1, реквизит Дельта1)
	//ПолеОформления1.Поле= Новый ПолеКомпоновкиДанных("СкороТО1НомерСтроки");
	//ПолеОформления2.Поле= Новый ПолеКомпоновкиДанных("СкороТО1Автомобиль");
	//ПолеОформления3.Поле= Новый ПолеКомпоновкиДанных("СкороТО1ПробегТО1");
	//ПолеОформления4.Поле= Новый ПолеКомпоновкиДанных("СкороТО1НормаТО1");
	//ПолеОформления.Использование = Истина;
	//ПолеОформления1.Использование = Истина;
	//ПолеОформления2.Использование = Истина;
	//ПолеОформления3.Использование = Истина;
	//ПолеОформления4.Использование = Истина;
Показать
+
Внимание! Тема сдана в архив

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