Не работает условное оформление табличной части

1. user1713496 28.04.23 15:06 Сейчас в теме
Добрый день. Подскажите, пожалуйста, почему не выполняется условное оформление? Что упустил?
&НаСервере
Процедура расш_ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)

ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Использование = Истина;
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный); 
    
    ЭлементУсловия                = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
    ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Количество"); 
    ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.НеРавно;
    ЭлементУсловия.Использование  = Истина;
	
	Для Каждого Колонка Из Элементы.Товары.ПодчиненныеЭлементы Цикл
		ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
		ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Колонка.Имя); 
	КонецЦикла;
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 28.04.23 17:06 Сейчас в теме
(1) В коде ошибок нет. Попробуйте сделать обработчик После вместо Перед. Убедитесь, что ваш обработчик указан в событиях формы.
3. user1713496 28.04.23 17:27 Сейчас в теме
(2)
После вместо Перед
пробовал, результат такой же. В событиях формы обработчик указан. Пробовал в ПравоеЗначение 0 ставить - все равно без изменений.
4. SlavaKron 28.04.23 17:30 Сейчас в теме
(3) А как определяете, что оформление не работает?
6. user1713496 28.04.23 17:32 Сейчас в теме
(4) есть строки, где различается количество и количество упаковок. И они таким же цветом, как и остальные. А должны выделиться красным. Или я ошибаюсь?
7. SlavaKron 28.04.23 17:33 Сейчас в теме
(6) Извиняюсь за глупый вопрос, а как вы определяете, что они различаются?
8. user1713496 28.04.23 17:36 Сейчас в теме
(7)Количество = 2, количество упаковок = 5. Или не по этим данным идет сравнение в условном оформлении?
10. SlavaKron 28.04.23 17:40 Сейчас в теме
(8) По этим. Если всё так, как говорите, то должно работать. Просто я подумал, что колонки на форме могут называться не так, как реквизиты ТЧ. Проверьте, выполняется ли в принципе код из расширения.
11. user1713496 28.04.23 17:45 Сейчас в теме
(10)
Проверьте, выполняется ли в принципе код из расширения.
проверял. Выполняется. По поводу реквизитов, я сначала на форме смотрел какой реквизит к какому из объект.товары относится. Причем количествоУпаковок - реквизит, который добавляется программно в этой же процедуре ПриСозданииНаСервере. Думал, что на программно добавленный реквизит условное оформление не отработает, и вместо него оставил левое значение = реквизит количество, правое значение = 0. Но строки так и не были окрашены.
12. user1713496 28.04.23 17:48 Сейчас в теме
(10) вот так еще пробовал
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Использование = Истина;
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный); 
	
	ЭлементУсловия                = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Количество");
	ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок"); 
	ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.НеРавно;
	ЭлементУсловия.Использование  = Истина;
	
	ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары"); 
	ОформляемоеПоле.Использование = Истина;
Показать
13. SlavaKron 28.04.23 17:52 Сейчас в теме
(12) Тогда у меня только 2 предположения: либо условное оформление где-то переопределяется после ПриСозданииНаСервере, затирая ваше, либо действительно значения в колонках Количество и КоличествоУпаковок совпадают, а на форме выводится что-то другое.
Кстати, проверьте вид сравнения "Равно", чтобы всё окрасилось в красный.
15. user1713496 28.04.23 18:04 Сейчас в теме
(13)
Кстати, проверьте вид сравнения "Равно", чтобы всё окрасилось в красный.
пробовал, и не только "Равно", "БольшеИлиРавно", и другие пробовал. Результат везде одинаковый. Пробовал еще сравнение реквизита номенклатура = Справочники.Номенклатура.ПустаяСсылка(), по идее все должны в красный окраситься, так как нет строк с пустой номенклатурой. Так же не работает. В типовой форме нашел только одну процедуру, где используется условное оформление, это "УстановитьУсловноеОформление", вместо нее вызывал процедуру со своим кодом - не работает. Вызывал вместо нее модифицированную процедуру Расш_УстановитьУсловноеОформление со своим кодом в конце - не работает. Пробовал в расширении безопасный режим и защиту от опасных действий включить/отключить, создавал расширение с другим назначением - и не работает. Сейчас попробовал на ут другой версии - все работает. А тут ни в какую.
9. user1713496 28.04.23 17:37 Сейчас в теме
(7)
Прикрепленные файлы:
5. user1713496 28.04.23 17:31 Сейчас в теме
(2) еще пробовал &Вместо("УстановитьУсловноеОформление") свою процедуру вызывать, думал конфликтует процедура формы, которая изначально уже задана, с моей. В конце указывал нужные условия - без изменений.
14. spacecraft 28.04.23 18:00 Сейчас в теме
(1) насколько помню, цвет фона в таблице на форме такси не меняется. Он в одного цвета (или чередование при включении соответствующего свойства).
Настраивайте цвет текста.
16. user1713496 28.04.23 18:05 Сейчас в теме
(14) так в другой версии ут все работает, хотя там тоже такси. Только что пробовал.
17. spacecraft 28.04.23 18:07 Сейчас в теме
(16) там именно ТЧ, или таки (ТаблицаЗначений)
18. user1713496 28.04.23 18:09 Сейчас в теме
(17) тч
Прикрепленные файлы:
19. spacecraft 28.04.23 18:11 Сейчас в теме
(16) хотя нет. для ТЧ должно работать.
Но попробуйте для начала изменять цвет текста.
20. user1713496 28.04.23 18:29 Сейчас в теме
(19)
Но попробуйте для начала изменять цвет текста.
цвет текста поменялся. Но не совсем понятно, почему вот так цвет фона меняется, а программно - нет
Прикрепленные файлы:
22. Bob_Dobr 05.11.24 15:29 Сейчас в теме
(20) Что то получилось? Сейчас наткнулся на такую же ситуевину
23. Bob_Dobr 05.11.24 18:27 Сейчас в теме
21. lev6975 27.10.24 04:11 Сейчас в теме
Никогда эта штука корректно не работала у меня кроме как с числами. Ни строковые ни булевы!
Делаю допколонку с числовым типом и программирую цвета 1 - цвет фона зеленый 2 цвет фона красный итд
Потом просто в коде в отдельной процедуре каждый раз вычисляю условия и ставлю нужную цифирку в колонку. Только так работает
мегаглючный механизм этот условного оформления - хочет - работает, хочет - нет
Оставьте свое сообщение

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