Имя: Пароль:
1C
1С v8
СКД. Программное создание условного оформления
0 nemoxp
 
15.09.16
12:20
Для отчета на СКД нужно создать программно условное оформление. Источник данных для отчета - запрос. Написал такой код в обработчике при открытии:

ЭлементОформления = КомпоновщикНастроек.Настройки.Структура[0].УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.Структура[0].УсловноеОформление.ДоступныеПоляПолей.Элементы.Найти("Номенклатура").Элементы.Найти("Номенклатура.СтатусТовара").Поле;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Справочники.ПланированиеЗаказов.НайтиПоКоду("000000002");
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 126, 126));


Открываю настройки отчета, на закладке Условное Оформление пусто. Настроить через интерфейс СКД не устраивает тем, что функционал урезан.

Ошибок не выдает. Кто знает - помогите плз!
1 nemoxp
 
15.09.16
12:21
платформа 8.2
2 nemoxp
 
15.09.16
13:02
Вот так работает:

ЭлементОформления = КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура.СтатусТовара");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Справочники.ПланированиеЗаказов.НайтиПоКоду("000000002");
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 126, 126));

Так то. Пользуйтесь, неучи.
3 nemoxp
 
15.09.16
13:24
Кто знает, как в правое значение загрузить список номенклатуры с видом сравнения "в списке"?
4 Nuobu
 
15.09.16
13:25
(3) Как неуч неучу отвечу тебе: поменять видСравниения.
5 nemoxp
 
15.09.16
13:29
Пишу "в списке". Создаю новый список значений. А в предприятии список пустой, если его открыть. Везде пустое значение
6 nemoxp
 
15.09.16
13:32
СписокНоменклатуры = новый списокзначений;
Пока Выборка.Следующий() цикл
     СписокНоменклатуры.Добавить(Выборка.Номенклатура);
КонецЦикла;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.ПравоеЗначение = СписокНоменклатуры;

В предприятии открываю этот список и везде "пустое значение". Что не так?
7 nemoxp
 
15.09.16
13:33
Все ок. Вопрос снят. Не то поле установил для отбора.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.