Как окрасить текущую строку в списке документов
Все знают, что при просмотре большого или точнее длинного и широкого списка документов возникает проблема визуального восприятия пространства на экране: пользователю сложно в большом количестве колонок и строк определить данные в активной строке. Например, Вы выделяете в списке документ «Заказ покупателя» и хотите просмотреть его параметры, не открывая его: контрагент, договор контрагента, дата оплаты и прочее. Визуально сложно быстро обозначить границы строки в списке.
Конечно, для того что бы определить на какой строке находятся данные можно в конфигураторе для списка указать параметр: «Режим выделения строки» в «Строка», но тогда вся строка будет синей и Вы не сможете понять на какой колонке стоит курсор, а это плохо воспринимается пользователем.
Поэтому, поняв проблему, я решил все другим способом. Возможно он не идеален, но что есть, то есть. 🙂
В конфигураторе для списка я определил «Режим выделения строки» в «Ячейка», а в предопределенной функции списка «ПриВыводеСтроки» код:
1 2 3 4 5 6 7 8 9 10 |
ТекСтрока = ЭлементыФормы.СписокДокументов.ТекущаяСтрока; Если ТекСтрока = Неопределено Тогда Возврат; КонецЕсли; Если ДанныеСтроки.Ссылка = ТекСтрока Тогда ОформлениеСтроки.ЦветФона = WebЦвета.БледноЛиловый; Иначе ОформлениеСтроки.ЦветФона = WebЦвета.Белый; КонецЕсли; |
Далее в процедуре «ПриАктивизацииСтроки» указал код, который сразу после активизации строки обновляет строки списка и заставляет окрашивать всю строку. Во время этого программа проверяет, если выбранная строка в списке, а это ссылка на документ равна реквизиту «Ссылка» текущих данных списка, тогда обновляемая строка и есть текущая, а значит её надо окрасить по условию.
1 2 3 |
Процедура СписокДокументовПриАктивизацииСтроки(Элемент) ЭлементыФормы.СписокДокументов.ОбновитьСтроки(); КонецПроцедуры |
Теперь при активизации строки происходит автоматическая окраска строки, а старая строка если она была активной ранее окрашивается в белый стандартный цвет. Собственно вот и все. Легко и изящно. Мелочь, а приятно. 🙂