Покрасить фон строк табличной части программно через УсловноеОформление

1. A1nurich 16.01.25 09:46 Сейчас в теме
УТ 11.5.17.140
1С 8.3.24.1586

Изучил УсловноеОформление, почитал форумы, где у всех ошибки вылазили или не получалось, вроде всё уже четко сделал. Но ничего не работает. Мне кажется у меня проблемы где-то в Условии, но я не вижу ошибки....
Вот код:

&НаСервере
Процедура ГАФ_ПриЧтенииНаСервереПосле(ТекущийОбъект)
	МассивИменКолонокДляПодсветки = Новый Массив;
    Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
        МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
	КонецЦикла;     
	
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона",  Новый Цвет(204, 255, 204));
    
 	ЭлементУсловия                = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.СегментНоменклатуры.Родитель.Наименование");
	ЭлементУсловия.ПравоеЗначение = "Сегменты по ликвидности";
    ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;   
    ЭлементУсловия.Использование  = Истина;
    
    Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
        ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
        ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
	КонецЦикла;
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
25. A1nurich 16.01.25 14:42 Сейчас в теме
(21) ахахах, я нашел)
В основном конфигураторе, в документе ЗаказПоставщику, в процедуре "УстновитьУсловноеОформление", есть очистка условных оформлений, вот тут он походу и чистил, попробовал его в тестовой базе закоментить, всё заработало )
26. antz 16.01.25 14:43 Сейчас в теме
(20) Нет, я говорю про модуль формы в основной конфе, там может устанавливаться свое условное оформление в ПриСозданииНаСервере (которая вызывается после ПриЧтенииНаСервере), и в которой удаляются все элементы УО - в конфигураторе они созданы или программно - пофиг.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107191 16.01.25 09:51 Сейчас в теме
Просто
ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");
Без всяких циклов и массивов.

И путь к данным наименования проверь все-таки.
7. A1nurich 16.01.25 10:25 Сейчас в теме
(2) Сути не поменяло)
Всё также ничего не выводит
10. user2107191 16.01.25 10:31 Сейчас в теме
(7)
Сути не поменяло)
Но стало понятнее и красивее.
11. A1nurich 16.01.25 10:35 Сейчас в теме
(10) Ну ладно, убедили :D
Но если не получится, все равно код коту под хвост
3. antz 16.01.25 10:11 Сейчас в теме
Что-то мне кажется, не взлетит. Если руками так нельзя сделать - то программно можно, что ли?
Прикрепленные файлы:
4. A1nurich 16.01.25 10:21 Сейчас в теме
(3) В инете на разных форумах многие пишут, что да...
Поэтому и копаю в эту сторону уже на протяжении двух дней
5. antz 16.01.25 10:24 Сейчас в теме
(4) Добавь реквизит формы в ТЧ Товары, тип булево, в отдельной процедуре его заполняй по этому вот условию (вызываешь ее при создании на сервере/при изменении ТЧ Товары), по этому реквизиту крась.
6. A1nurich 16.01.25 10:25 Сейчас в теме
(5) Эхь, костыль конечно, задумывался на счет этого, хотел нормально без лишнего сделать, но походу придется прибегнуть к такому варианту решения проблемы.....
8. antz 16.01.25 10:31 Сейчас в теме
(6) Костыль не костыль, а в типовых юзается)
12. A1nurich 16.01.25 10:35 Сейчас в теме
13. user2107191 16.01.25 10:38 Сейчас в теме
(6)
костыль конечно
Вообще не костыль. Адекватная подготовка данных.
14. A1nurich 16.01.25 11:35 Сейчас в теме
(13) Ну приходится лишний реквизит создать....
17. A1nurich 16.01.25 14:19 Сейчас в теме
(5) Слушай, попробовал так, но даже так он что-то не выходит )
Походу что-то не дает запустить обработку условного оформления с моего расширения. По точке остановки там всё доходит, всё ровно, но он не применяется )
Мем
18. antz 16.01.25 14:23 Сейчас в теме
(17) А в присозданиинасервере дальше уо не устанавливается (там вроде все элементы при этом трутся)?
19. A1nurich 16.01.25 14:31 Сейчас в теме
(18) Да не, я весь код закоментил, через конфигуратор установил, добавив новый реквизит булево, но всё равно не применяется
21. user2107191 16.01.25 14:35 Сейчас в теме
(19)
Да не, я весь код закоментил
Это ни о чем не говорит. Есть всякие БСП.
Надо в расширении использовать директиву &После
добавив новый реквизит булево
И заполнил его, да? И проверил заполнение, да? И путь к нему указал правильный в отборе УО?
23. A1nurich 16.01.25 14:39 Сейчас в теме
(21) Да, заполнил)
Заполнение проверил точкой остановкой, визуально и тд
И путь посмотрел, всё там норм )
24. A1nurich 16.01.25 14:40 Сейчас в теме
(21) В расширении После и использую :(
25. A1nurich 16.01.25 14:42 Сейчас в теме
(21) ахахах, я нашел)
В основном конфигураторе, в документе ЗаказПоставщику, в процедуре "УстновитьУсловноеОформление", есть очистка условных оформлений, вот тут он походу и чистил, попробовал его в тестовой базе закоментить, всё заработало )
28. user2107191 16.01.25 14:52 Сейчас в теме
(25) Именно поэтому и надо свой код про УО всегда добавлять гарантированно &После всех типовых вызовов серверного открытия/создания формы.
И ни в коем случае не пытаться править УО в типовых документах с помощью конструктора формы.
20. A1nurich 16.01.25 14:33 Сейчас в теме
(18) Воть
Прикрепленные файлы:
22. user2107191 16.01.25 14:36 Сейчас в теме
(20) А заполняется булево-то?
26. antz 16.01.25 14:43 Сейчас в теме
(20) Нет, я говорю про модуль формы в основной конфе, там может устанавливаться свое условное оформление в ПриСозданииНаСервере (которая вызывается после ПриЧтенииНаСервере), и в которой удаляются все элементы УО - в конфигураторе они созданы или программно - пофиг.
27. A1nurich 16.01.25 14:45 Сейчас в теме
(26) Да, как раз таки это и мешало. Госпади, почему всегда, когда подобные ошибки, мозг замудряет всё и не думает логично, всё ведь перед лицом, на блюдочке предоставлено....
9. user2107191 16.01.25 10:31 Сейчас в теме
(3)
Если руками так нельзя сделать - то программно можно, что ли?
Вот по этому и
И путь к данным наименования проверь все-таки.
15. Nigmatul 16.01.25 13:30 Сейчас в теме
Пример простого рабочего кода )

Процедура УстановитьУсловноеОформление()
 
 УсловноеОформление.Элементы.Очистить();
 
 Элемент = УсловноеОформление.Элементы.Добавить();

 ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
 ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Отпуска.Имя);

 ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
 ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

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


 Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Роса);

КонецПроцедуры
Показать
16. A1nurich 16.01.25 14:18 Сейчас в теме
(15) Спасибо конечно, но чем он отличается от моего кода ?
Кроме как очистки условного оформления ? (С ним я тоже пробовал, безуспешно)
Оставьте свое сообщение

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