Выделение цветом строки табличной части с условием.
Здравствуйте, подскажите пожалуйста как сделать нечто подобное
На форме есть табличная часть "ТО" у нее 4 реквизита : "Номер машины", "Текущий пробег", "Норма", "Тех. осмотр через". Получается что-то вроде (х100 АЕ 11, 11000, 5000, -6000
И нужно выделить красным цветом всю строку в случае если в колонке "Тех. осмотр через" будет значение с ---.
Допустим "текущий пробег" 5000, а норма "6000" * на 10% то когда будет "текущий пробег" 5400 то строка выделяется желтым.
Я тут что-то накалякал
Просто, чтобы понять как выделение программно сделать.
Вопрос в чем, куда условие писать? сюда ? "элементОтбора.ПравоеЗначение"
На форме есть табличная часть "ТО" у нее 4 реквизита : "Номер машины", "Текущий пробег", "Норма", "Тех. осмотр через". Получается что-то вроде (х100 АЕ 11, 11000, 5000, -6000
И нужно выделить красным цветом всю строку в случае если в колонке "Тех. осмотр через" будет значение с ---.
Допустим "текущий пробег" 5000, а норма "6000" * на 10% то когда будет "текущий пробег" 5400 то строка выделяется желтым.
Я тут что-то накалякал
&НаСервере
Процедура ПриОткрытииНаСервере()
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
элементыПолей = ЭлементОформления.Поля.Элементы;
элементыОтбора = ЭлементОформления.Отбор.Элементы;
//Создаем условия отбора
элементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//имя поля
элементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Пробег.Пробег");
//задаем значение для отбора
элементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
//элементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(Элементы.ПробегПробег);
элементОтбора.Использование = Истина;
//Установка значения элемента УО
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
ЭлементОформления.Использование = Истина;
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ПробегПробег");
ПолеОформления.Использование=Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриОткрытииНаСервере();
КонецПроцедуры
ПоказатьПросто, чтобы понять как выделение программно сделать.
Вопрос в чем, куда условие писать? сюда ? "элементОтбора.ПравоеЗначение"
Найденные решения
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
В "элементОтбора.ПравоеЗначение" указывается значение условия, с которым сравнивается значение в поле "элементОтбора.ЛевоеЗначение".
Таким образом для желтого выделения. Вычисляем норму пробега, подставляем значение в "элементОтбора.ПравоеЗначение" в "элементОтбора.ВидСравнения" вид сравнения указываем больше либо равно.
Таким образом для желтого выделения. Вычисляем норму пробега, подставляем значение в "элементОтбора.ПравоеЗначение" в "элементОтбора.ВидСравнения" вид сравнения указываем больше либо равно.
Все, всем спасибо. Сделал по схеме настройки усл. оформления и добавления реквизитов и расчета их в запросе.
А если ручками при открытии вот рабочий код
А если ручками при открытии вот рабочий код
//элементОформления = УсловноеОформление.Элементы.Добавить();
//ЭлементыПолей = элементОформления.Поля.Элементы;
//элементОтбора = элементОформления.Отбор.Элементы;
//
//элементОтбора = элементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//элементОтбора.ЛевоеЗначение= Новый ПолеКомпоновкиДанных("Объект.СкороТО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.Использование = Истина;
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)