Программное окрашивание строки по условию в таблице значений

1. IgorHoy 09.12.24 15:03 Сейчас в теме
При вызове данной процедуры ругается, что Поле объекта не обнаружено (ЦветФона). Подскажите, что тут не так и как это можно исправить. Вызывается из другой процедуры на клиенте.

&НаКлиенте
Процедура ВыделитьСтроки()
    МинКод = Неопределено;
    МаксКод = Неопределено;
	
    Для Каждого Строка Из ТаблицаРезультатов Цикл
        Если МинКод = Неопределено Или Строка.ЧисловойКод < МинКод Тогда
            МинКод = Строка.ЧисловойКод;
        КонецЕсли;
        Если МаксКод = Неопределено Или Строка.ЧисловойКод > МаксКод Тогда
            МаксКод = Строка.ЧисловойКод;
        КонецЕсли;
	КонецЦикла;
	
	 	Для Каждого Строка Из ТаблицаРезультатов Цикл
		Если Строка.ЧисловойКод = МинКод Тогда
			Строка.ЦветФона = Новый Цвет(255, 100, 100); // Красный оттенок
        ИначеЕсли Строка.ЧисловойКод = МаксКод Тогда
            Строка.ЦветФона = Новый Цвет(100, 255, 100); // Зеленый оттенок
		КонецЕсли;
    КонецЦикла;
КонецПроцедуры
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 09.12.24 15:07 Сейчас в теме
(1) Все не так.
Оформление необходимо задавать условным оформлением.
3. IgorHoy 09.12.24 15:22 Сейчас в теме
(2) а как не подскажете? В интернете по этой теме инфы не особо много
4. Denis_CFO 49 09.12.24 15:27 Сейчас в теме
(3) Смотрите "Условное оформление управляемые формы". Можно отсюда начать - Ссылка для тех, которым по этой теме инфы не особо много:)
Sashares; +1 Ответить
5. IgorHoy 09.12.24 16:09 Сейчас в теме
(4) Исходя из материалов по вашей ссылке получилось вот что. Но теперь выдаёт ошибку Поле объекта не обнаружено (УсловноеОформление)
&НаСервере
Процедура ВыделитьСтрокиНаСервере()
    МинКод = Неопределено;
    МаксКод = Неопределено;
    Для Каждого Строка Из ТаблицаРезультатов Цикл
        Если МинКод = Неопределено Или Строка.ЧисловойКод < МинКод Тогда
            МинКод = Строка.ЧисловойКод;
        КонецЕсли;
        Если МаксКод = Неопределено Или Строка.ЧисловойКод > МаксКод Тогда
            МаксКод = Строка.ЧисловойКод;
        КонецЕсли;
    КонецЦикла;

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

    // Условное оформление для максимального кода
    ЭлементОформленияМаксКод = ТаблицаРезультатов.УсловноеОформление.Элементы.Добавить();
    ЭлементОтбораМаксКод = ЭлементОформленияМаксКод.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбораМаксКод.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЧисловойКод");
    ЭлементОтбораМаксКод.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбораМаксКод.ПравоеЗначение = МаксКод;
    ЭлементОтбораМаксКод.Использование = Истина;
    ЭлементОформленияМаксКод.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(100, 255, 100)); // Зеленый оттенок
    ЭлементОформленияМаксКод.Использование = Истина;
КонецПроцедуры
Показать
7. Denis_CFO 49 09.12.24 16:15 Сейчас в теме
(5) Да, с чтением у Вас плохо.
Зачем Вы полезли сразу в программное оформление? Попробуйте на уровне визуальных возможностей формы всё сделать (не читайте ту статью дальше второго параграфа).
8. IgorHoy 10.12.24 08:47 Сейчас в теме
(7) Вы абсолютно правы! Не стоило усложнять себе жизнь
6. Sashares 35 09.12.24 16:10 Сейчас в теме
(5) ЭлементОформленияМинКод = ТаблицаРезультатов.УсловноеОформление.Элементы.Добавить();
ТаблицаРезультатов тут лишнее

Ну и стоит понимать, что при каждом нажатии кнопки будет создаваться новое условное оформление в дополнение к существующим.
Поэтому стоит добавлять какой-нибудь комментарий, и перед добавлением УО по этому комментарию находить те, что уже есть и удалять.
Denis_CFO; +1 Ответить
Оставьте свое сообщение

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