Всем привет,
Задача раскрасить строки товаров в заказе в УТ11 если цена ниже чем в установке цен
Делаю через расширение
Добавил реквизит в таблицу, вывел галку что цена ниже прайса, но при добавлении условного оформления ничего не красится
(пробовал руками добавить в расширение на форму УО - ничего не наработает)
Задача раскрасить строки товаров в заказе в УТ11 если цена ниже чем в установке цен
Делаю через расширение
Добавил реквизит в таблицу, вывел галку что цена ниже прайса, но при добавлении условного оформления ничего не красится
(пробовал руками добавить в расширение на форму УО - ничего не наработает)
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
Для Каждого ТекТовары из Объект.товары Цикл
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
| И ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены";
Запрос.УстановитьПараметр("ВидЦены", ТекТовары.ВидЦены);
Запрос.УстановитьПараметр("Номенклатура", ТекТовары.Номенклатура);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ТекТовары.Цена < ВыборкаДетальныеЗаписи.Цена тогда
ТекТовары.Расш1_ЦенаНижеПрайса= истина;
иначе
ТекТовары.Расш1_ЦенаНижеПрайса= Ложь;
КонецЕсли;
КонецЦикла;
КонецЦикла;
УсловноеОформление.Элементы.Очистить();
ЭлементУО = УсловноеОформление.Элементы.Добавить();
//устанавливаем само оформление
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
//добавляем условие
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//что сравниваем()
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("объект.Товары.Расш1_ЦенаНижеПрайса");
//как сравниваем
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
//с чем сравниваем
ЭлементУсловия.ПравоеЗначение =истина;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Расширения конфигурации. Нюансы поведения
- [Взрыв шаблона!] Новый способ программной настройки условного оформления
- Оформление подбора или цветовая дифференциация штанов
- Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)
- Использование типовых возможностей 1С и их расширение. Часть 1
Найденные решения
(10)Спасибо добрый человек
все заработало
вот итоговое решение
все заработало
вот итоговое решение
УсловноеОформление.Элементы.Очистить();
ЭлементУО = УсловноеОформление.Элементы.Добавить();
//устанавливаем само оформление
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
//добавляем условие
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//что сравниваем()
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Расш1_ЦенаНижеПрайса");
//как сравниваем
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//с чем сравниваем
ЭлементУсловия.ПравоеЗначение =истина;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
осталось от экспериментов
добавил что оформлять - все равно не работает (может ка кто не так добавил поле на оформление)
Больше? При сравнении булево?
осталось от экспериментов
добавил что оформлять - все равно не работает (может ка кто не так добавил поле на оформление)
УсловноеОформление.Элементы.Очистить();
ЭлементУО = УсловноеОформление.Элементы.Добавить();
//устанавливаем само оформление
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
//добавляем условие
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//что сравниваем()
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("объект.Товары.Расш1_ЦенаНижеПрайса");
//как сравниваем
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//с чем сравниваем
ЭлементУсловия.ПравоеЗначение =истина;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("объект.Товары.Расш1_ЦенаНижеПрайса");
Показать
(3) Дополню комментарий из (5)
Если Вы хотите окрасить всю строку целиком, нужно указать имя элемента таблицы на форме. Т.е. скорее всего просто "Товары":
В отличие от условного оформления динамических списков, для таблиц формы обязательно указывать оформляемое поле.
Если Вы хотите окрасить всю строку целиком, нужно указать имя элемента таблицы на форме. Т.е. скорее всего просто "Товары":
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");
В отличие от условного оформления динамических списков, для таблиц формы обязательно указывать оформляемое поле.
все равно не работает - что то где то я упускаю
УсловноеОформление.Элементы.Очистить();
ЭлементУО = УсловноеОформление.Элементы.Добавить();
//устанавливаем само оформление
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
//добавляем условие
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//что сравниваем()
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТоварыРасш1_ЦенаНижеПрайса");
//как сравниваем
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//с чем сравниваем
ЭлементУсловия.ПравоеЗначение =истина;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");
УсловноеОформление.Элементы.Очистить();
ЭлементУО = УсловноеОформление.Элементы.Добавить();
//устанавливаем само оформление
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
//добавляем условие
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//что сравниваем()
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТоварыРасш1_ЦенаНижеПрайса");
//как сравниваем
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//с чем сравниваем
ЭлементУсловия.ПравоеЗначение =истина;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");
Прикрепленные файлы:
(10)Спасибо добрый человек
все заработало
вот итоговое решение
все заработало
вот итоговое решение
УсловноеОформление.Элементы.Очистить();
ЭлементУО = УсловноеОформление.Элементы.Добавить();
//устанавливаем само оформление
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
//добавляем условие
ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//что сравниваем()
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Расш1_ЦенаНижеПрайса");
//как сравниваем
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//с чем сравниваем
ЭлементУсловия.ПравоеЗначение =истина;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Товары");
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот