Условное оформление табличной части документа.
Добрый день, уважаемые форумчане.
Интересует следующий момент, а именно:
Хочу разрисовать табличную часть документа в зависимости от нескольких условий, например:
У меня есть две колонки в табличной части ("заказано","доступно") если хотя бы одна из них не заполнена то шрифт текста в данной строке быть желтым,
если не заполнены обе колонки, то красным.
Сейчас я написал вот такой код:
Интересует следующий момент, а именно:
Хочу разрисовать табличную часть документа в зависимости от нескольких условий, например:
У меня есть две колонки в табличной части ("заказано","доступно") если хотя бы одна из них не заполнена то шрифт текста в данной строке быть желтым,
если не заполнены обе колонки, то красным.
Сейчас я написал вот такой код:
МассивИменКолонокДляПодсветки = Новый Массив;
Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
КонецЦикла;
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", ИСТИНА);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.СероСиний);
ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
//ЭлементУсловия.ПравоеЗначение = ТестНоменклатура;
//ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия.Использование = Истина;
Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
КонецЦикла;
ПоказатьПо теме из базы знаний
- Загрузка данных из табличного документа в справочники, документы, планы видов характеристик, планы видов расчетов, планы счетов, бизнес-процессы, задачи, в движения документов, поточная загрузка документов (EXCEL, управляемые формы, универсальная)
- Гиперссылка в табличной части управляемых форм
- Работа с отчетами 1С для "чайников" часть 2
- Модульная (open source) конфигурация "INFOSTART ERP community edition"
- Пользовательская СКД. beta-версия
Найденные решения
Да. Я так понимаю основная проблема с И/Или? Добавьте группы условий, что то вида
ЭлементУсловияГруппа = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЭлементУсловияГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных .ГруппаИ;
ЭлементУсловия1 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия1.ПравоеЗначение = 0;
ЭлементУсловия1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия2 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия2.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ЭлементУсловия2.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
.....
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Дополню:
Дано три колонки
"Количество" | "Заказано" | "Доступно"
3 2 1
Если у меня "заказано" и "доступно" не равны 0 и хотябы одна из них не равна количеству, то раскрашиваю желтым.
Можно ли такое условие написать в условном оформлении?
Дано три колонки
"Количество" | "Заказано" | "Доступно"
3 2 1
Если у меня "заказано" и "доступно" не равны 0 и хотябы одна из них не равна количеству, то раскрашиваю желтым.
Можно ли такое условие написать в условном оформлении?
Да. Я так понимаю основная проблема с И/Или? Добавьте группы условий, что то вида
ЭлементУсловияГруппа = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЭлементУсловияГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных .ГруппаИ;
ЭлементУсловия1 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия1.ПравоеЗначение = 0;
ЭлементУсловия1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия2 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия2.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ЭлементУсловия2.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
.....
Показать
(3) Спасибо за ответ, дело пошло. Но есть такая проблема:
Сейчас у меня код написан во так, и все отрабатывает как и должно:
Но если я добавляю еще одну группу вот таким образом, то он вообще перестает красить строки, любые
Сейчас у меня код написан во так, и все отрабатывает как и должно:
//новый вариант
МассивИменКолонокДляПодсветки = Новый Массив;
Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
КонецЦикла;
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый);
ЭлементУсловияГруппа = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЭлементУсловияГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ЭлементУсловияГруппа.Использование = Истина;
ЭлементУсловия2 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия2.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ЭлементУсловия2.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия2.Использование = Истина;
ЭлементУсловия4 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия4.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Доступно");
ЭлементУсловия4.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ЭлементУсловия4.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия4.Использование = Истина;
Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
КонецЦикла;
ПоказатьНо если я добавляю еще одну группу вот таким образом, то он вообще перестает красить строки, любые
//равны 0
ЭлементОформления2 = УсловноеОформление.Элементы.Добавить();
ЭлементОформления2.Использование = Истина;
ЭлементОформления2.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
ЭлементУсловияГруппа2 = ЭлементОформления2.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЭлементУсловияГруппа2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ЭлементУсловияГруппа2.Использование = Истина;
ЭлементУсловия5 = ЭлементУсловияГруппа2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия5.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Заказано");
ЭлементУсловия5.ПравоеЗначение = 0;
ЭлементУсловия5.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия5.Использование = Истина;
ЭлементУсловия6 = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия6.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Доступно");
ЭлементУсловия6.ПравоеЗначение = 0;
ЭлементУсловия6.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия6.Использование = Истина;
Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
ОформляемоеПоле = ЭлементОформления2.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
КонецЦикла;
Показать
(5)
В своем примере ЭлементУсловия1 , ЭлементУсловия2 я использовал для наглядности, можно везде оставить ЭлементУсловия.
Вероятно Вы запутались с этими индексами... Первое условие добавляется в ЭлементУсловияГруппа2, второе условие добавляется в просто ЭлементУсловияГруппа (без двойки). Может тут проблема....?
В своем примере ЭлементУсловия1 , ЭлементУсловия2 я использовал для наглядности, можно везде оставить ЭлементУсловия.
Вероятно Вы запутались с этими индексами... Первое условие добавляется в ЭлементУсловияГруппа2, второе условие добавляется в просто ЭлементУсловияГруппа (без двойки). Может тут проблема....?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот