Имя: Пароль:
1C
1С v8
Как выделить цветом строку табличного поля при активизации ячейки
0 go1c
 
13.06.12
20:52
Подскажите пожалуйста как можно реализовать следующий "бантик":
Есть табличное поле обычной формы, РежимВыделенияСтроки - Ячейка, как сделать так чтобы при активации любой ячейки выделялась каким-то цветом вся строка (реализовано на уровне платформы в управляемых формах). Менять РежимВыделенияСтроки на Строка не вариант так как при копировании в буфер значения колонки копируется вся строка.
1 oleg_prg
 
13.06.12
21:55
Первое что пришло в голову - это ввести скрытое поле в таблицу.
При активизации строки ставить туда некое значение - например цифру 1
Затем делать по этому признаку раскраску, код раскраски ниже


ЭлементУсловногоОформления        = УсловноеОформление.Элементы.Добавить();
   ОформляемоеПоле                = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
   ОформляемоеПоле.Поле            = Новый ПолеКомпоновкиДанных("ДанныеТЗПоле2");
   ЭлементОтбора                    = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных("ДанныеТЗ.Поле2");
   ЭлементОтбора.ВидСравнения        = ВидСравненияКомпоновкиДанных.Содержит;
   ЭлементОтбора.ПравоеЗначение    = "1";
   ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);

Может как-нибудь вот так...
2 oleg_prg
 
13.06.12
21:56
Естественно при смене строки обнулять значение скрытого поля
3 Vladal
 
13.06.12
22:34
Некрасиво это — полистал строки, а тебе модифицированность формы.

Надо в ПриОтображенииСтроки или ОформленииСтроки перебирать коллекцию колонок и каждой колонке текущей строки менять цвет.

Пример дать н могу, пишу с телефона.
4 DrShad
 
13.06.12
22:38
(0) я что-то так и не понял у тебя то какой режим?
5 go1c
 
13.06.12
22:57
(4)у меня обычные формы. в управляемых отрабатывает по умолчанию (ячейка выделяется синим, а строка голубоватым), нужно сделать аналогично.
6 DrShad
 
13.06.12
23:01
текущаястрока?
7 go1c
 
14.06.12
00:10
8 Vladal
 
14.06.12
09:55
(7) т.е. ты уже нашел ответ?
9 go1c
 
14.06.12
10:34
(8)да, спасибо всем за помощь. сделал так:
Процедура РаботыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   
   Если Элемент.ТекущаяСтрока = ДанныеСтроки Тогда
       ОформлениеСтроки.ЦветФона = WebЦвета.Розовый;
   КонеЦЕсли;
   
КонецПроцедуры

Процедура РаботыПриАктивизацииСтроки(Элемент)
   
   Элемент.ОбновитьСтроки();
   
КонецПроцедуры