Вход | Регистрация

1С:Предприятие ::

Метки: 

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

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

Элемент.Использование = Истина;
ПолеЭлемента.Использование = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТоварыТендера."+МассивИмен[ИндексВыбранногоПоставщика-1]);// пробовал разные варианты, с объектом, без точек и т.п.

ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = 10;// для примера - были разные варианты

ОтборЭлемента.Использование = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный);

   Код - в процедуре ПриСозданииНаСервере. Не работает.
   Более того, добавил на самой форме конструктором условное 
оформление поля "Количество" - сравнение с функцией Заполнено().
Тоже не работает!
   В отладчике видно, что элемент условного оформления этот код 
добавляет. Также добавляется элемент, заданный конструктором.
Но на форме ни один из них не срабатывает.
   Подскажите, в чём тут может быть дело.
 
 
   Fragster
 
1 - 18.12.17 - 12:52
а оформляемые поля дядя вова будет заполнять?
   Фиген
 
2 - 18.12.17 - 13:27
Оформляемое поле "Количество" указано в конструкторе. И оно не оформляется. В коллекции элементов условного оформления, во время выполнения процедуры, поля присутствуют. Но не работает.
   Фиген
 
3 - 18.12.17 - 13:47
(1) Fragster, пардон. Ввёл в заблуждение - УО из конструктора работает. Смотрю в отладчике в чём разница между программным оформлением и оформлением из конструктора и не нахожу её.
Имеешь в виду, что УО работает по ячейкам таблицы и надо на каждой из них его задавать в соответствующем поле?
   Фиген
 
4 - 19.12.17 - 17:23
По поводу полей - а это что, не поля?
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТоварыТендера"+МассивИмен[ИндексВыбранногоПоставщика-1])// определяем поле


ПолеЭлемента.Использование = Истина;

Так никто и не откликнется?
   Фиген
 
5 - 13.01.18 - 15:10
Для тех, кто споткнулся о тот же камень - всё работает, если к полю компоновки данных - в примере ПолеЭлемента.Поле - задать путь данных без указания объекта по той причине, что это реквизит формы, а не объекта. В моём случае это -МассивИмен[ИндексВыбранногоПоставщика-1].
Я сначала посмотрел в отладчике как система делает это сама с другим полем и вносил те же данные, не учитывая того, что поле системы было полем объекта.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует