Имя: Пароль:
1C
1С v8
Цвет текста в текущей ячейке Табличного Документа
0 volkVVV
 
11.11.15
09:23
Доброго времени суток.

Знаю, что вопрос уже заезженый, но что то ни одним из загугленных методов не получается.

Вообщем, при выводе детальных записей в ТабДок, нужно изменить цвет ячейки с условием, например если ТехСостояние = НеИсправен, тогда красить цвет текста ячейки в красный.

Подскажите люди добрые.
1 ДенисЧ
 
11.11.15
09:23
УФ/ОФ?
2 Горогуля
 
11.11.15
09:24
(1) ТабДокумент
(0) кроме гугленья что-то ещё пробовал?
3 UFO
 
11.11.15
09:28
Вот так я вчера делал:
    Для Каждого СтрТ из тдост Цикл
        ОбластьСтр.Параметры.Заполнить(СтрТ);
        ОбластьСтр.Параметры.ПеревозчикАМ = ""+СтрТ.Перевозчик+" "+СтрТ.АМ;
        ОбластьСтр.Параметры.ЦенаФакт =?(СтрТ.Километраж<>0,Окр(СтрТ.СуммаФакт/СтрТ.Километраж),"");
        ОбластьСтр.Параметры.мСуммаФакт = СтрТ.ВыставленоКлиенту-СтрТ.СуммаФакт;
        ОбластьСтр.Параметры.Норма = Окр(1000*СтрТ.РасценкаН*СтрТ.Километраж/СтрТ.ТоннажН);
        ОбластьСтр.Параметры.ТоннажФакт = Окр(1000*?(СтрТ.Тоннаж = 0,СтрТ.СуммаФакт,СтрТ.СуммаФакт/СтрТ.Тоннаж));
        ОбластьСтр.Параметры.ТоннажФ = СтрТ.Тоннаж;
        ОбластьСтр.Параметры.Тоннаж = Окр(1000*?(СтрТ.Тоннаж = 0,СтрТ.ВыставленоКлиенту,СтрТ.ВыставленоКлиенту/СтрТ.Тоннаж));
        Т.Вывести(ОбластьСтр);
        // Виктор ++++
        Проценты = 0;
        Проценты = СтрТ.Тоннаж * 100 / СтрТ.ТоннажН;
        Если Проценты > 100 Тогда
            Проценты = Проценты - 100;
        Иначе
            Проценты = 100 - Проценты;
        КонецЕсли;
        Если Проценты >= 20 Тогда
            Т.Область(Т.ВысотаТаблицы,7,Т.ВысотаТаблицы,8).ЦветФона = Новый Цвет(255,181,241);
        КонецЕсли;
        // ++++ Виктор
Где т табличный документ
4 UFO
 
11.11.15
09:29
7 и 8 номера колонок
5 volkVVV
 
11.11.15
09:32
(2) (3) вот я так и делал
Если Результат.ТехСостояние = Перечисления.ТехническоеСостояние.НеИсправен Тогда
                   ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветФона = Новый Цвет(255,181,241);  
                   Строка.Параметры.ТехническоеСостояние = Результат.ТехСостояние;

только красит не те ячейки,
у меня параметр находится в ячейке R9C9
6 UFO
 
11.11.15
09:33
Сначала выведи а потом окрашивай
А иначе надо минусовать ряд - 1
7 UFO
 
11.11.15
09:34
А лучше все-таки сначала вывести, а потом окрашивать, потому как если не выведено, то окрашивать непонятно что
8 Горогуля
 
11.11.15
09:36
а я у области красил. прямо в первой строке на каждой итерации
9 UFO
 
11.11.15
09:37
(8) ну может и так.. я с 8-й еще года нету занимаюсь, поэтому не все тонкости знаю
10 volkVVV
 
11.11.15
09:38
Если Результат.ТехСостояние = Перечисления.ТехническоеСостояние.НеИсправен Тогда              
                   ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветФона = Новый Цвет(255,181,241);
КонецЕсли;

Строка.Параметры.ТехническоеСостояние = Результат.ТехСостояние;

вот так сделал, все равно красит только первую ячейку в колонке
11 UFO
 
11.11.15
09:39
так может у тебя условие только на первую строку срабатывает?
12 volkVVV
 
11.11.15
09:40
(11) да нет, на него наоборот и не срабатывает, но все равно красит
13 UFO
 
11.11.15
09:41
Код полностью в студию!
14 UFO
 
11.11.15
09:43
ТабДок.ВысотаТаблицы содрежит в себе полную высоту таблицы после ТабДок.Вывести()
15 volkVVV
 
11.11.15
09:44
(13)
Группа = Макет.ПолучитьОбласть("Группа");
Строка = Макет.ПолучитьОбласть("Строка");

Пока Результат.Следующий() Цикл
        
ТипЗаписи = Результат.ТипЗаписи();
Если ТипЗаписи = ТипЗаписиЗапроса.ИтогПоГруппировке Тогда               Группа.Параметры.Заполнить(Результат);
Группа.Параметры.Транспорт = Результат.ТранспортРодитель;
НомерПП = 0;
ТабДок.Вывести(Группа);
ИначеЕсли ТипЗаписи = ТипЗаписиЗапроса.ДетальнаяЗапись Тогда
НомерПП = НомерПП + 1;
Строка.Параметры.НомерПП = НомерПП;
Строка.Параметры.Транспорт = Результат.Транспорт;
Если Результат.ТехСостояние = Перечисления.ТехническоеСостояние.НеИсправен Тогда                                  ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветФона = Новый Цвет(255,181,241);                 
               ИначеЕсли Результат.ТехСостояние = Перечисления.ТехническоеСостояние.Исправен Тогда                    ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветФона = Новый Цвет(255,0,0);                   //Строка.Параметры.ТехническоеСостояние = Результат.ТехСостояние;
               КонецЕсли;
               Строка.Параметры.ТехническоеСостояние = Результат.ТехСостояние;
ТабДок.Вывести(Строка);
           КонецЕсли;
          
    КонецЦикла;
16 UFO
 
11.11.15
09:46
А ты можешь сделать так, чтобы условие окрашивания вынести после ТабДок.Вывести();
17 Горогуля
 
11.11.15
09:46
ОбластьСтрока(1, 9).ЦветФона=
ТабДокумент.Вывести(ОбалстьСтрока)
не?
18 volkVVV
 
11.11.15
09:47
(16) сейчас попробую
19 UFO
 
11.11.15
09:48
(18) Будь ласка, попробуй
20 Горогуля
 
11.11.15
09:49
а делать две похожие области с разным цветом считаю извращением
21 Fedor-1971
 
11.11.15
09:52
(15) ты ещё ничего не вывел в результирующий документ, но пытаешься оное покрасить, так что:
либо ТабДок.Вывести(Строка); перед Если Результат.ТехСостояние = Перечисления.ТехническоеСостояние.НеИсправен Тогда
либо вместо ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветФона - Строка.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветФона
22 volkVVV
 
11.11.15
09:53
(19)
Строка.Параметры.ТехническоеСостояние = Результат.ТехСостояние;
            
.....

ТабДок.Вывести(Строка);
Если Результат.ТехСостояние = Перечисления.ТехническоеСостояние.НеИсправен Тогда                                  ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветТекста = Новый Цвет(255,0,0);                 
            
ИначеЕсли Результат.ТехСостояние = Перечисления.ТехническоеСостояние.Исправен Тогда
                   ТабДок.Область(ТабДок.ВысотаТаблицы,9,ТабДок.ВысотаТаблицы,9).ЦветТекста = Новый Цвет(0, 0, 0);
КонецЕсли;
23 НЕА123
 
11.11.15
09:54
ежели делать по честному, то (17)
24 volkVVV
 
11.11.15
09:54
(22) вот так вот работает
25 UFO
 
11.11.15
09:54
(24) ну вот и юзай
26 Горогуля
 
11.11.15
09:55
(21) Строка.Область(ТабДок.ВысотаТаблицы
там не будет столько строк
27 Fedor-1971
 
11.11.15
09:55
(26) ошибся, вот так надо Строка.Область(Строка.ВысотаТаблицы,9,Строка.ВысотаТаблицы,9).ЦветФона
28 Горогуля
 
11.11.15
09:55
(26) а, не, найдётся. занятная хрень получится
29 volkVVV
 
11.11.15
09:56
(25) всем спасибо, (17) способ тоже интересен, попробую, результат позже отпишу
30 Горогуля
 
11.11.15
09:56
тоже интересен ему... да, жизнь без геморроя ярка и приятна
31 volkVVV
 
11.11.15
09:57
(30) согласен, поэтому его тоже разъюзаю)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.