Имя: Пароль:
1C
1С v8
Обычные формы. Изменить шрифт строки ТЧ при активизации строки другой ТЧ по соответствию
0 Mechanik21
 
15.10.19
10:16
На форме есть две табличные части. Между ними есть соответствие. Задача: сделать так, чтобы при активизации строки верхней тч шрифт соответствующих нижних строк становился жирным. Соответствие определяется полем "ключ", которое есть у каждой строки. например, строке 1 верхней ТЧ соответствует три строки из нижней ТЧ, значит у трёх нижних строк ключ будет равен 1. Оформление вроде как на обычных формах можно менять только при выводе строки, но даже ставя условие на ключ, я получаю жирной всю нижнюю таблицу независимо от активной строки в верхней. Как достучаться до шрифта строки?
1 ДенисЧ
 
15.10.19
10:29
При выводе строки проверяй соответствие данных выбранной вверху строки и тогда только жирни шрифт. Если не соответствует - тогда разжирняй.
2 Йохохо
 
15.10.19
10:38
(1) хлебников и хармс сменили позу)
3 Mechanik21
 
15.10.19
10:42
вот так не работает
Процедура КорректировкаРасшифровкаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
    Если ЭлементыФормы.КорректировкаОсновная.ТекущиеДанные <> Неопределено Тогда
        Для каждого Стр Из КорректировкаРасшифровка Цикл
            Если Стр.Ключ = ЭлементыФормы.КорректировкаОсновная.ТекущиеДанные.Ключ Тогда
                ОформлениеСтроки.Шрифт = Новый Шрифт(,,Истина);
            Иначе
                ОформлениеСтроки.Шрифт = Новый Шрифт(,,Ложь);
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
КонецПроцедуры
4 Фрэнки
 
15.10.19
10:45
(3) насколько я помню из своего опыта - нужно брать готовый шрифт из оформления и в нем что-то изменять, а ты создаешь прямо Новый, а это не сработает.
5 hhhh
 
15.10.19
10:47
(3) приколист.

вот это

Для каждого Стр Из КорректировкаРасшифровка Цикл

что за хрень?
6 catena
 
15.10.19
10:52
(3)Оформление нужно делать через оформление.
7 ДенисЧ
 
15.10.19
10:57
(6) Чта? Ещё скажи - через условное...
8 catena
 
15.10.19
11:01
(7)При чем тут условное? Через ОформлениеСтроки, а не через перебор ТЧ
9 D_E_S_131
 
15.10.19
11:01
1. При Активизации строки "Верхней ТЧ" нужно вызвать обновление строк "Нижней ТЧ".
2. Для "Нижней ТЧ" прописать процедура события "ПриВыводеСтроки".
3. В этой процедуре и устанавливаешь новый шрифт, проверяя значение в текущей строки в "Верхней ТЧ".
10 ДенисЧ
 
15.10.19
11:05
(8)
Процедура КорректировкаРасшифровкаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
....
                ОформлениеСтроки.Шрифт = Новый Шрифт(,,Истина);

Или я чего-то не понял?
11 catena
 
15.10.19
11:09
(10)        Для каждого Стр Из КорректировкаРасшифровка Цикл

                ОформлениеСтроки.Шрифт = Новый Шрифт(,,Истина);
12 palpetrovich
 
15.10.19
11:12
пользуй ПриПолученииДанных
https://its.1c.ru/db/metod8dev#content:2805:hdoc
13 mistеr
 
15.10.19
11:20
Отбор надо делать, а не жирный шрифт. И все надуманные проблемы уйдут, ибо в платформе все предусмотрено.
14 Mechanik21
 
15.10.19
11:40
Спасибо всем
особенно (9) и (12) помогли
15 Mechanik21
 
15.10.19
11:41
(9) а как вызвать обновление строк нижней тч?
16 Mechanik21
 
15.10.19
11:42
а, затупил
ЭлементыФормы.КорректировкаРасшифровка.ОбновитьСтроки();
помогло
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.