Как подсветить активную строку в табличном документе

1. 18.06.19 08:41 Сейчас в теме
Доброго дня.
Каким образом можно можно подсветить др.цветом всю строку в табличном документе, а не только ту ячейку на которой стоишь?
Сам табличный документ располагается на форме внешней обработки(форма обычна, т.е. не управляемая). Есть возможность установить цвет фона самой активной ячейки, а вот чтобы всю строку - такого не нашла.
Кто-то может сталкивался, какие есть варианты?
Заранее благодарю.
Найденные решения
3. SlavaKron 18.06.19 09:21 Сейчас в теме
Перем ПредыдущийНомерСтроки;

Процедура ТабДокПриАктивизацииОбласти(Элемент)
	НомерСтроки = ЭлементыФормы.ТабДок.ТекущаяОбласть.Верх;
	Если ПредыдущийНомерСтроки <> Неопределено И НомерСтроки <> ПредыдущийНомерСтроки Тогда
		ЭлементыФормы.ТабДок.Область(ПредыдущийНомерСтроки,,ПредыдущийНомерСтроки).ЦветФона = Новый Цвет;		
	КонецЕсли;
	ЭлементыФормы.ТабДок.Область(НомерСтроки,,НомерСтроки).ЦветФона = WebЦвета.АкварельноСиний;
	ПредыдущийНомерСтроки = НомерСтроки;
КонецПроцедуры
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. НовенькийЯ 18.06.19 08:52 Сейчас в теме
Свойства табличного поля - Режим выделения строки - Строка
4. Gal_B 18.06.19 10:30 Сейчас в теме
(2)
строки

нет такого в свойствах поля табличного документа (у нас 1С 8.3)
3. SlavaKron 18.06.19 09:21 Сейчас в теме
Перем ПредыдущийНомерСтроки;

Процедура ТабДокПриАктивизацииОбласти(Элемент)
	НомерСтроки = ЭлементыФормы.ТабДок.ТекущаяОбласть.Верх;
	Если ПредыдущийНомерСтроки <> Неопределено И НомерСтроки <> ПредыдущийНомерСтроки Тогда
		ЭлементыФормы.ТабДок.Область(ПредыдущийНомерСтроки,,ПредыдущийНомерСтроки).ЦветФона = Новый Цвет;		
	КонецЕсли;
	ЭлементыФормы.ТабДок.Область(НомерСтроки,,НомерСтроки).ЦветФона = WebЦвета.АкварельноСиний;
	ПредыдущийНомерСтроки = НомерСтроки;
КонецПроцедуры
Показать
5. Gal_B 18.06.19 10:44 Сейчас в теме
(3) дело в том, что табличное поле не является реквизитом обработки, а значит и обратиться к нему через ЭлементыФормы не получится
6. antz 18.06.19 10:55 Сейчас в теме
(5)
>Сам табличный документ располагается на форме внешней обработки
>табличное поле не является реквизитом обработки

Так табличный документ или табличное поле? Является или не является?
7. Gal_B 18.06.19 11:06 Сейчас в теме
8. SlavaKron 18.06.19 12:06 Сейчас в теме
(5) Из справки к полю табличного документа:
Поле табличного документа можно использовать для ввода данных пользователем и представления информации, хранимой в системе или полученной в результате расчетов.
Объект является визуальным представлением объекта ТабличныйДокумент и имеет все присущие ему свойства и методы.
9. Gal_B 18.06.19 15:16 Сейчас в теме
Разобралась. Да, действительно через ЭлементыФормы всё отлично работает.
Спасибо огромное!
10. STELEICE 13.10.21 10:14 Сейчас в теме
(3) Ваш код хорош но как вернуть предыдущей строке ее цвет после перемещения на текущую строку.
Новый цвет красит все в белый((
11. Release 13.10.21 10:35 Сейчас в теме
(10) Значит цвет для ячеек изначально был предопределён, а не в значении по умолчанию,т.е. "Авто".
Можно попробовать так:
Перем ПредыдущийНомерСтроки;
Перем ЦветФонаСтроки;

Процедура ТабДокПриАктивизацииОбласти(Элемент)
    НомерСтроки = ЭлементыФормы.ТабДок.ТекущаяОбласть.Верх;
    Если ПредыдущийНомерСтроки <> Неопределено И НомерСтроки <> ПредыдущийНомерСтроки Тогда
        ЭлементыФормы.ТабДок.Область(ПредыдущийНомерСтроки,,ПредыдущийНомерСтроки).ЦветФона = ?(ЦветФонаСтроки <> Неопределено, ЦветФонаСтроки, Новый Цвет);        
    КонецЕсли;
    ОбластьСтроки = ЭлементыФормы.ТабДок.Область(НомерСтроки,,НомерСтроки);
    ЦветФонаСтроки = ОбластьСтроки.ЦветФона;
    ОбластьСтроки.ЦветФона = WebЦвета.АкварельноСиний;
    ПредыдущийНомерСтроки = НомерСтроки;
КонецПроцедуры
Показать
12. STELEICE 13.10.21 11:31 Сейчас в теме
(11) Не взлетает(( все равно красит в белый.
цвета везде не авто.
13. Release 13.10.21 12:11 Сейчас в теме
(12) Значит нужно делать обход ячеек строки - перед установкой фона для каждой запоминать его цвет, потом так же обходом восстанавливать:
Перем ПредыдущийНомерСтроки;
Перем ЦветаФонаСтроки;

Процедура ТабДокПриАктивизацииОбласти(Элемент)
    ТабДок = ЭлементыФормы.ТабДок;

    Если ЦветаФонаСтроки = Неопределено Тогда
        ЦветаФонаСтроки = Новый Соответствие;
    КонецЕсли;

    НомерСтроки = ТабДок.ТекущаяОбласть.Верх;

    Если ПредыдущийНомерСтроки <> Неопределено И НомерСтроки <> ПредыдущийНомерСтроки Тогда
        Для НомерКолонки = 1 По ТабДок.ШиринаТаблицы Цикл
            ОбластьЯчейка = ТабДок.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки);
            ЦветФонаЯчейки = ?(ЦветаФонаСтроки <> Неопределено, ЦветаФонаСтроки.Получить(НомерКолонки), Неопределено);

            ОбластьЯчейка.ЦветФона = ?(ЦветФонаЯчейки <> Неопределено, ЦветФонаЯчейки, Новый Цвет);
        КонецЦикла;
    КонецЕсли;

    Для НомерКолонки = 1 По ТабДок.ШиринаТаблицы Цикл
        ОбластьЯчейка = ТабДок.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки);

        ЦветаФонаСтроки.Вставить(НомерКолонки, ОбластьЯчейка.ЦветФона);
    КонецЦикла;

    ОбластьСтроки.ЦветФона = WebЦвета.АкварельноСиний;

    ПредыдущийНомерСтроки = НомерСтроки;
КонецПроцедуры
Показать
14. STELEICE 14.10.21 09:54 Сейчас в теме
(13) сделал так. Именно то что хотел.

Процедура РезультатПриАктивизацииОбласти(Элемент) 
 ШиринаТаблицы = ЭлементыФормы.Результат.ШиринаТаблицы;
Если ШиринаТаблицы <> 0 Тогда
ТекОбласть = ЭлементыФормы.Результат.ТекущаяОбласть;


НоваяТекОбласть = ЭлементыФормы.Результат.Область(ТекОбласть.Верх, 1, ТекОбласть.Низ, ШиринаТаблицы);

Если ТекОбласть.Имя <> НоваяТекОбласть.Имя Тогда
ЭлементыФормы.Результат.ТекущаяОбласть = НоваяТекОбласть;
КонецЕсли;
КонецЕсли
   КонецПроцедуры
Показать


В идеале можно прописать условие( булево) вкл/откл/ выделения строки или ячейки
15. Release 14.10.21 10:00 Сейчас в теме
(14) Ну, если вас устраивает, то и ладно.

Хотя, к примеру, что делает эта строка?
ЭлементыФормы.Результат.Область("R"+ТекОбласть.Верх+"C1:R"+ТекОбласть.Низ+"C"+ШиринаТаблицы).Шрифт;
16. STELEICE 14.10.21 10:06 Сейчас в теме
(15) подправил. Это строка лишней была.
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Аналитик 1С ERP
Санкт-Петербург
зарплата до 200 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Бизнес-аналитик 1С
Москва
зарплата от 100 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день