Условное оформление колонок табличной части документа на форме #810497


#0 by Фиген
Всем привет! Упускаю какой-то небольшой, но важный, момент при попытке применить условное оформление к табличной части документа на форме. Документ - Тендер - имеет реквизит "ВыбранныйПоставщик" и три табличные части - ТоварыТендера, Поставщики, ЦеныТендера. Первые две части задаются пользователем на форме, третья - формируется в результате разложения первых двух на строки и колонки. На форме взял за основу ТЧ "ТоварыТендера" - количество строк соответствует количеству товаров. К ней программно добавляю колонки "Поставщик1", "Поставщик2" и т.д., в зависимости от того, сколько этих поставщиков во второй ТЧ документа. Хотелось бы подсветить колонку одного из поставщиков другим цветом, если поставщик уже выбран - заполнен реквизит "Выбранный поставщик". Попытки сделать это через условное оформление к успеху не привели. Озадачился вопросом почему? Код взял из примеров в Интернете. Элемент = УсловноеОформление.Элементы.Добавить;    Код - в процедуре ПриСозданииНаСервере. Не работает.    Более того, добавил на самой форме конструктором условное оформление поля "Количество" - сравнение с функцией Заполнено. Тоже не работает!    В отладчике видно, что элемент условного оформления этот код добавляет. Также добавляется элемент, заданный конструктором. Но на форме ни один из них не срабатывает.    Подскажите, в чём тут может быть дело.
#1 by Fragster
а оформляемые поля дядя вова будет заполнять?
#2 by Фиген
Оформляемое поле "Количество" указано в конструкторе. И оно не оформляется. В коллекции элементов условного оформления, во время выполнения процедуры, поля присутствуют. Но не работает.
#3 by Фиген
Fragster, пардон. Ввёл в заблуждение - УО из конструктора работает. Смотрю в отладчике в чём разница между программным оформлением и оформлением из конструктора и не нахожу её. Имеешь в виду, что УО работает по ячейкам таблицы и надо на каждой из них его задавать в соответствующем поле?
#4 by Фиген
По поводу полей - а это что, не поля? ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТоварыТендера"+МассивИмен[ИндексВыбранногоПоставщика-1]);// определяем поле Так никто и не откликнется?
#5 by Фиген
Для тех, кто споткнулся о тот же камень - всё работает, если к полю компоновки данных - в примере ПолеЭлемента.Поле - задать путь данных без указания объекта по той причине, что это реквизит формы, а не объекта. В моём случае это -МассивИмен[ИндексВыбранногоПоставщика-1]. Я сначала посмотрел в отладчике как система делает это сама с другим полем и вносил те же данные, не учитывая того, что поле системы было полем объекта.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С