|
Условное оформление в списке | ☑ | ||
---|---|---|---|---|
0
Prog_man
гуру
18.06.24
✎
14:53
|
Добрый день
подскажите как настроить условное оформление в списке на два условия |
|||
1
Prog_man
гуру
18.06.24
✎
14:53
|
УО = УсловноеОформление.Элементы.Добавить();
УО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",WebЦвета.Красный); УО.Использование = Истина; ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ГруппаОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ; ЭлементОтбора.Использование = Истина; ЦветПоле = УО.Поля.Элементы.Добавить(); ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Список.Контрагент"); |
|||
2
Prog_man
гуру
18.06.24
✎
14:54
|
вот такой код не работает, что поправить?
|
|||
3
Мультук
гуру
18.06.24
✎
15:18
|
(0) Имхо точечка лишняя
ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("СписокКонтрагент"); |
|||
4
Prog_man
гуру
18.06.24
✎
15:26
|
(3) так тоже не работает(
|
|||
5
spiller26
18.06.24
✎
15:34
|
(4) ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("СписокКонтрагент");
Только что проверил. |
|||
6
Prog_man
гуру
18.06.24
✎
15:37
|
(5) ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент");
вот так работает на первое условие, второе игнорирует. |
|||
7
spiller26
18.06.24
✎
15:37
|
Первое через форму создано для проверки, второе программно.
|
|||
8
Prog_man
гуру
18.06.24
✎
15:44
|
(7) спорить не буду, у меня оформление работает
ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент"); но проблема не в этом, как сделать чтобы второе условие срабатывало ? вот тут ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); |
|||
9
spiller26
18.06.24
✎
15:48
|
(8) мНачДатаЭДО, оно всегда будет заполнено, если это дата.
|
|||
10
Prog_man
гуру
18.06.24
✎
15:50
|
второе тоже работает но как то не правильно, мНачДатаЭДО = 01.04.2024. а условное оформление срабатывает с начала года
|
|||
11
Prog_man
гуру
18.06.24
✎
15:52
|
(9) вот и нет, за прошлый года УО не срабатывает
|
|||
12
dmt
18.06.24
✎
15:58
|
(10) возможно, твое УО не единственное
|
|||
13
Prog_man
гуру
18.06.24
✎
16:06
|
(12) полный код процедуры
&НаСервере Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); // Номер СФ/УПД ЭлементУО = УсловноеОформление.Элементы.Добавить(); КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(ЭлементУО.Поля, "НомерСФУПД"); ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор, "Список.НомерСФУПД", ВидСравненияКомпоновкиДанных.НеЗаполнено); ЭлементУО.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '--'")); //Вставка УО = УсловноеОформление.Элементы.Добавить(); УО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",WebЦвета.Красный); УО.Использование = Истина; ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ГруппаОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора.Использование = Истина; ЦветПоле = УО.Поля.Элементы.Добавить(); ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент"); //КонецВставки КонецПроцедуры |
|||
14
spiller26
18.06.24
✎
16:08
|
(11) Всё срабатывает, что не так?
по условию как вы хотели. 1. мНачДатаЭДО должно быть заполнено 2. Дата >= мНачДатаЭДО
|
|||
15
Prog_man
гуру
18.06.24
✎
16:09
|
благодарю за советы, разобрался, это у меня не правильно дата заполнена была. сейчас все работает
|
|||
16
spiller26
18.06.24
✎
16:11
|
(15)
&НаСервере Процедура КомандаТестНаСервере() УО = УсловноеОформление.Элементы.Добавить(); УО.Оформление.УстановитьЗначениеПараметра("ЦветТекста",WebЦвета.Зеленый); УО.Использование = Истина; ГруппаОтбора = УО.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ГруппаОтбора.Использование = Истина; ЭлементОтбора1 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата"); ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбора1.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора1.Использование = Истина; ЭлементОтбора2 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.мНачДатаЭДО"); ЭлементОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; //ЭлементОтбора2.ПравоеЗначение = Истина; ЭлементОтбора2.Использование = Истина; ЦветПоле = УО.Поля.Элементы.Добавить(); ЦветПоле.Поле = Новый ПолеКомпоновкиДанных("СписокКонтрагент"); КонецПроцедуры |
|||
17
dmt
18.06.24
✎
16:11
|
(13) и о чем это говорит? надо в отладчике после открытия формы смотреть УО формы и УО списка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |