|
Условное оформление УФ
Волшебник, 2S, Чеширский, mishaPH, Калиостро, Chameleon1980, DeeK, mortal, bolder, Мультук, mikecool, sikuda, RomanYS, p-soft, ДолекоДо1Са, Bazooka, Prog_man, Tarlich, , okmail, crotnn, Лирик, who respawn
| ☑ |
0
ДолекоДо1Са
16.03.25
✎
00:38
|
Здравствуйте, опять я. Не могу понять почему не меняется цвет строк в табличной части, может что то не то делаю.
&НаСервере
Процедура ИзменитьЦвет(НомерСтроки)
УсловноеОформление.Элементы.Очистить();
ЦветОформление = УсловноеОформление.Элементы.Добавить();
ЦветОформление.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);
ЭлементОформления = ЦветОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерСтроки");
ЭлементОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОформления.ПравоеЗначение = НомерСтроки;
ЭлементОформления.Использование = Истина;
Поле = ЦветОформление.Поля.Элементы.Добавить();
Поле.Поле = Новый ПолеКомпоновкиДанных("Значение");
Элементы.ПроизвольныеСтроки.Обновить();
КонецПроцедуры
|
|
1
Chameleon1980
16.03.25
✎
08:37
|
(0) я бы предложил сделать руками УО и посмотреть (сравнить) в отладчике что не так.
|
|
2
Мультук
гуру
16.03.25
✎
09:22
|
(0)
https://its.1c.ru/db/v8std/content/710/hdoc
и вообще
google:
1C УсловноеОформление
Сначала повторите чей-то готовый пример, потом делайте свой
|
|
3
RomanYS
16.03.25
✎
09:40
|
(0) ошибка здесь:
... = Новый ПолеКомпоновкиДанных("НомерСтроки");
|
|
4
ДолекоДо1Са
16.03.25
✎
14:28
|
(3) &НаСервере
Процедура ИзменитьЦвет(Номер)
УсловноеОформление.Элементы.Очистить();
ЦветОформление = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = ЦветОформление.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПроизвольныеСтрокиЗначение.Имя);
ЭлементОформления = ЦветОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПроизвольныеСтроки[Номер - 1].НомерСтроки);
ЭлементОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОформления.ПравоеЗначение = Новый ПолеКомпоновкиДанных(Номер);
ЭлементОформления.Использование = Истина;
ЦветОформление.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);
Элементы.ПроизвольныеСтроки.Обновить();
КонецПроцедуры
Сделал так, но почему то окрашиваются все строки
|
|
5
ДолекоДо1Са
16.03.25
✎
14:29
|
(4) А не те которые соответствуют условию
|
|
6
ДолекоДо1Са
16.03.25
✎
14:38
|
Спасибо всем, исправил.
Вот рабочий код
&НаСервере
Процедура ИзменитьЦвет(Номер)
УсловноеОформление.Элементы.Очистить();
ЦветОформление = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = ЦветОформление.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПроизвольныеСтрокиЗначение.Имя);
ЭлементОформления = ЦветОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПроизвольныеСтроки.НомерСтроки");
ЭлементОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОформления.ПравоеЗначение = Номер;
ЭлементОформления.Использование = Истина;
ЦветОформление.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);
Элементы.ПроизвольныеСтроки.Обновить();
КонецПроцедуры
|
|
7
Chameleon1980
16.03.25
✎
17:54
|
Просто нужно внимательней и вникнуть что зачем написано.
|
|
8
Волшебник
16.03.25
✎
18:47
|
В обычных формах всё гораздо проще. Изучайте обычные формы
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший