|
УФ: Условное оформление списка | ☑ | ||
---|---|---|---|---|
0
IKSparrow
15.09.13
✎
23:49
|
Справочник. Форма выбора со списком. У списка есть условное оформление.
Смотрю в отладчике: Список.УсловноеОформление.Элементы - пусто. Но условное оформление исправно работает. На форме того же справочника, так же есть условное оформление. И в отладчике ЭтаФорма.УсловноеОформление.Элементы - там заполнено тем, что установлено в конфигураторе. Теперь вопрос - а где находятся настройки условного оформления у списка? Хочу их на лету поменять. У формы такой трюк прокатывает. |
|||
1
IKSparrow
16.09.13
✎
00:51
|
Фиг с ними, отсутствующими элементами. Пошёл другим путём. А именно, сделал программно свои настройки условного оформления:
ЭлементУсловногоОформления = Список.УсловноеОформление.Элементы.Добавить(); ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ПолеОформления.Использование = Истина; ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Наименование"); ПолеОтбора = ЭлементУсловногоОформления.Отбор.элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаАктивацииЭКЛЗ"); ПолеОтбора.ПравоеЗначение = Дата('00010101'); ПолеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.ТемноСиний); ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(ЭлементУсловногоОформления.Оформление.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Шрифт")).Значение,,,Истина)); Только вот беда какая. Мне надо сравнивать реквизит каждого объекта ("ДатаАктивацииЭКЛЗ") с определённым значением, а именно ДатаАктивацииЭКЛЗ + 185 дней. Ну и соответственно, при достижении этого срока, раскрашивать строку списка, подавая тем самым пользователю визуальный алярм. Я так понимаю, что условное оформление под мои задачи не подходит? Как тут можно подсветить строки справочника для такой задачи? |
|||
2
IKSparrow
16.09.13
✎
02:51
|
Всё-таки подходит данный механизм.
Итого, получилось следующее: &НаСервере Процедура ПриОткрытииНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА ДОБАВИТЬКДАТЕ(ККМ.ДатаАктивацииЭКЛЗ, ДЕНЬ, 185) >= &КонтрольнаяДата | ТОГДА ККМ.Ссылка | КОНЕЦ КАК Ссылка |ИЗ | Справочник.ККМ КАК ККМ |ГДЕ | ККМ.Владелец В (&Владелец)"; Запрос.УстановитьПараметр("Владелец", ЭтаФорма.Список.Отбор.Элементы[0].ПравоеЗначение); Запрос.УстановитьПараметр("КонтрольнаяДата",КонтрольнаяДата); ВыборкаЗапроса = Запрос.Выполнить().Выбрать(); Список.УсловноеОформление.Элементы.Очистить(); Пока ВыборкаЗапроса.Следующий() Цикл Оформление = Список.УсловноеОформление.Элементы.Добавить(); Оформление.Использование = Истина; Отбор = Оформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Отбор.ПравоеЗначение = ВыборкаЗапроса.Ссылка; ЭлементЦвет = Оформление.Оформление.Элементы.Получить(0); ЭлементЦвет.Значение = Новый Цвет(255,0,0); ЭлементЦвет.Использование = Истина; КонецЦикла; КонецПроцедуры |
|||
3
Лодырь
16.09.13
✎
06:09
|
А сформировать список запросом, и наложить условное оформление непрограмно почему не удалось?
|
|||
4
IKSparrow
16.09.13
✎
07:47
|
(3) Если честно то не подумал :( Спасибо за подсказку!
|
|||
5
olegves
16.09.13
✎
08:34
|
(4) еще можешь реквизиты формы задействовать в УО
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |