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

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 человек.
Рекламное место пустует