Имя: Пароль:
1C
 
Выделение цветом ячеек строки и колонки в которой находится текущая ячейка
0 chigsrOck
 
27.04.10
18:25
Здавствуйте! Надо сделать так, чтобы при активизации любой ячейки в таб. поле, строка и столбец, в которых она находится выделялись цветом(т.е. менялся их фон).
Можно ли это и сделать и каким образом? Спасибо.
1 Mort
 
27.04.10
18:27
Прикольно, а потом стрелочками рисовать в ТП..
Какой тип данных ТП?
2 Mort
 
27.04.10
18:30
Для таблицы значений я делал следующим образом (только раскрашивалось по двойному клику). Добавил служебную колонку, куда загонял массив ячеек которые должны быть раскрашены. По клику, в массив в текущей строке добавлял имя ячейки.
При получении данных читал массив в строке и раскрашивал.
3 bask
 
27.04.10
18:31
(0) разбирайся с событиями табл. поля ПриПолученииДанных, ПриВыводеСтроки
4 chigsrOck
 
27.04.10
18:34
со строкой то проблем не будет, а вот со столбцом..
5 Mort
 
27.04.10
18:35
А чо со столбцом?
6 chigsrOck
 
27.04.10
18:47
блин точнее наборот со столбцом работает просто для обработчика "ПриНачалеРедактирования" пишем обработчик элементыформы.ТабличноеПолеОсновнойЗарплаты.текущаяколонка.ЦветФонаПоля = Новый Цвет(1,0,0); + еще убираем страрую раскраску...
а вот со строками такая фишка вроде не катит...
7 chigsrOck
 
27.04.10
18:49
походу должно быть что-то вроде как в (2)...???
8 Mort
 
27.04.10
18:49
Раскрашивать нужно в событии ПриПолученииДанных или ПриВыводеСтроки. Поищи на форуме.
9 kosts
 
27.04.10
18:50
(7) Накой лишние колонки...
Смотри (3)
10 kosts
 
27.04.10
18:51
А также строку можно раскрасить тем что выделение (синее которое) можно делать на всю строку. Но это если подойдет по смыслу.
11 Mort
 
27.04.10
18:53
(9) А список ячеек которые в каждой строке нужно раскрашивать Пушкин помнить будет?

Можно сделать и соответствие, для ТЗ можно колонку.
12 kosts
 
27.04.10
18:55
(11) Зачем, если нужно красить всю строку, т.е. все ячейки строки подряд...
13 hulio_ekb
 
27.04.10
18:56
(3), (8), (9) Может я сейчас глупость скажу, но при чем тут "ПриПолученииДанных" и "ПриВыводеСтроки"? Раскрашиваться то должно при активизации ячейки
14 Mort
 
27.04.10
18:57
(12) Точно. Неверно прочитал (0). Домой пора походу.
15 kosts
 
27.04.10
18:59
(13) Тем что в этих событиях можно раскрасить ячейки текущей строки.
Колонку конечно можно раскрасить в ПриАктивизацииКолонки()
16 Mort
 
27.04.10
18:59
(13) Таблица нигде не хранит статус ячейки, например когда листаешь строки PgUp - ом, поэтому их надо перекрашивать каждый раз когда получены данные или выведена очередная строка.

Но в случае активизации, возможно подобная раскраска не понадобится...
17 kosts
 
27.04.10
19:01
(16)
>> их надо перекрашивать каждый раз когда получены данные или выведена
>> очередная строка

это так и есть.
18 chigsrOck
 
28.04.10
11:46
В общем делается все очень просто... не знаю насколько это оптимально, но свое отрабатывает и ниипет.

Прописываем следующий код в обработчике ТабПоля "При выводе строки"

СтрокаДляРаскраски=ЭлементыФормы.ТабличноеПолеОсновнойЗарплаты.ТекущаяСтрока;
   Если ОформлениеСтроки.ДанныеСтроки=СтрокаДляРаскраски Тогда
       ОформлениеСтроки.ЦветФона = ЦветаСтиля.ЦветФонаКнопки;//выделили строку серым.
   конецесли;
   ИмяТекущейКолонки=ЭлементыФормы.ТабличноеПолеОсновнойЗарплаты.ТекущаяКолонка.Имя;
   Для каждого ОформлениеЯчейки из ОформлениеСтроки.Ячейки Цикл
       Если ОформлениеЯчейки.Имя=ИмяТекущейКолонки Тогда
           ОформлениеЯчейки.ЦветФона = ЦветаСтиля.ЦветФонаКнопки;//выделили колонку серым
       КонецЕсли;
   КонецЦикла;

Спасибо всем отозвавшимся!:)
19 kosts
 
28.04.10
12:25
Не забудь в начале "При выводе строки"

Если Данные = Неопределено Тогда
Возврат;
КонецЕсли;