Имя: Пароль:
1C
1С v8
Как изменить цвет строки табличного документа
,
0 volkVVV
 
20.10.14
16:24
Всем доброго времени суток.
есть вопрос.
Как изменить цвета фона строки табличного документа при определенном условии?

кусок моего кода:
Пока Выборка.Следующий() Цикл
            Строка.Параметры.Заполнить(Выборка);
            Если Строка.Параметры.КоличествоОстаток < Строка.Параметры.MIN Тогда
                
ОбластьФона = ТабДок.Область("Строка");
ЦветФонаОбласти = Новый Цвет(0, 255, 0);
ОбластьФона.ЦветФона = ЦветФонаОбласти;    
Сообщить ("ТУРУРУ");
                
КонецЕсли;    
ТабДок.Присоединить(Строка);
КонецЦикла;
1 volkVVV
 
20.10.14
16:25
(0) но так не работает, каким способом можно сделать? или что тут неправильно?
2 vicof
 
20.10.14
16:28
Строка.ЦветФона = ЦветФонаОбласти;
3 volkVVV
 
20.10.14
16:29
(2) не работает, такого метода нет
4 volkVVV
 
20.10.14
16:30
(3) говорит поле объекта не обнаружено
5 volkVVV
 
20.10.14
16:41
никто не вкурсе?
6 pessok
 
20.10.14
16:42
а отладчиком посмотреть что у тебя в ОбластьФона?
7 volkVVV
 
20.10.14
16:44
(6) в том то и дело, что ругается, говорит ошибка при вызове метода контекста
8 pessok
 
20.10.14
16:44
(7) а теперь внимательно посмотри в СП как работает метод Область
9 volkVVV
 
20.10.14
16:45
(6) хотя даже в СП так описано:
ИменованнаяОбласть = ТабДок.Область("Шапка");
10 pessok
 
20.10.14
16:46
(9) ты путаешь ТабДок и Макет
11 volkVVV
 
20.10.14
16:47
(10) где конкретно я напутал?
12 vicof
 
20.10.14
16:48
(3) Какого метода? Я там ни одного метода не писал.
13 volkVVV
 
20.10.14
16:54
(2) Строка.ЦветФона = ЦветФонаОбласти; на это ругается, поле объекта не обнаружено (не так выразился)
14 Ёпрст
 
20.10.14
17:00
(0)

Пока Выборка.Следующий() Цикл
            Строка.Параметры.Заполнить(Выборка);
            Если Строка.Параметры.КоличествоОстаток < Строка.Параметры.MIN Тогда
                
        Строка.Область().ЦветФона = Новый Цвет(0, 255, 0);
КонецЕсли;    
ТабДок.Присоединить(Строка);
КонецЦикла;
15 volkVVV
 
20.10.14
17:02
(14) так всю область целиком красит, даже те строки, которые условию не удовлетворяют
16 Looser-1c
 
20.10.14
17:03
(15)
Иначе
Строка.Область().ЦветФона = Новый Цвет(255, 255, 255);
17 Ёпрст
 
20.10.14
17:09
или так еще:

Пока Выборка.Следующий() Цикл
            Строка.Параметры.Заполнить(Выборка);
            Обл = ТабДок.Присоединить(Строка);  
            Если Строка.Параметры.КоличествоОстаток < Строка.Параметры.MIN Тогда
                  Обл.ЦветФона = Новый Цвет(0, 255, 0);
             КонецЕсли;    

КонецЦикла;
18 volkVVV
 
20.10.14
17:10
(16) (17) спасибо, работает отлично! только вот не очень красиво то, что цвет выходит за границы таблицы...
19 Ёпрст
 
20.10.14
17:11
как в (17) не должен выходить..
20 Ёпрст
 
20.10.14
17:11
Можно и.. областью ограничить, что хочешь.
21 volkVVV
 
20.10.14
17:21
(20) ограничить область, можно подробнее?
22 Ёпрст
 
20.10.14
17:27
Строка.Область(1,1,1,10).ЦветФона
23 volkVVV
 
20.10.14
17:31
(22) вот так сделал, все равно красит лишнее
Если Строка.Параметры.КоличествоОстаток < Строка.Параметры.MIN Тогда
Строка.Область(1,1,1,10).ЦветФона = Новый Цвет(0, 255, 0);
Иначе
Строка.Область(1,1,1,10).ЦветФона = Новый Цвет(255, 255, 255);    
КонецЕсли;
24 Ёпрст
 
20.10.14
17:32
(23) а есть уверенность, что нужно красить 10 столбцов ? а не 2 или 5 ?
25 Ёпрст
 
20.10.14
17:32
можно задать и шириной табличного документа
26 Ёпрст
 
20.10.14
17:32
если табличка меняется
27 volkVVV
 
20.10.14
17:34
(25) ок, понял, у меня не с первого столбца макет начинался
28 volkVVV
 
20.10.14
17:34
(25) спасибо большое, все получилось