Имя: Пароль:
1C
1С v8
1с 8.3 управляемые формы. Окрашивание строк по условию при выводе макета
0 illiona
 
naïve
26.02.18
09:31
Добрый день. Как окрасить строки только по условию. Закрашивает всю таблицу

Для Каждого Стр из Затраты Цикл
    ОбластьСтрока.Параметры.Затрата = Стр.Статья;
    ОбластьСтрока.Параметры.СуммаЗатраты = Стр.Сумма;
        
    Отбор = новый Структура;
    Отбор.Вставить("Наименование",Стр.Статья);
    НайденныеСтроки = ТаблицаГрупп.НайтиСтроки(Отбор);
            
    Если Не НайденныеСтроки.Количество() = 0 тогда
//    ОбластьСтрока.Область(1, 1, 1, 2).ЦветФона = WebЦвета.СеребристоСерый;
    КонецЕсли;
    ТабДок.Вывести(ОбластьСтрока);
    
КонецЦикла;
1 a_alenkin
 
26.02.18
10:08
Сделать счетчик и после вывода
получать область в ТабДок и закрашивать уже ее
2 illiona
 
naïve
26.02.18
10:25
а можно подробнее)?
Если Не НайденныеСтроки.Количество() = 0 тогда
    Если СокрЛП(НайденныеСтроки[0].Наименование) = СокрЛП(Стр.Статья)  тогда
                ОбластьСтрока.Область(1, 1, 1, 2).ЦветФона = WebЦвета.СеребристоСерый;
    КонецЕсли;
КонецЕсли;
Это условие
3 СвинТуз
 
26.02.18
10:29
Могу ошибиться.

мОбласть=ТабДок.Вывести(ОбластьСтрока);
Если УсловиеВыполнено Тогда
    мОбласть..ЦветФона = WebЦвета.СеребристоСерый;
КонецЕсли;
4 СвинТуз
 
26.02.18
10:30
Две точки.
Одна ошибка уже есть
5 a_alenkin
 
26.02.18
10:33
Счетчик = ... // тут номер первой строки - явно сначала выводится шапка

Для Каждого Стр из Затраты Цикл
    ОбластьСтрока.Параметры.Затрата = Стр.Статья;
    ОбластьСтрока.Параметры.СуммаЗатраты = Стр.Сумма;
        
    Отбор = новый Структура;
    Отбор.Вставить("Наименование",Стр.Статья);

    ТабДок.Вывести(ОбластьСтрока);
    
    НайденныеСтроки = ТаблицаГрупп.НайтиСтроки(Отбор);
    Если СокрЛП(НайденныеСтроки[0].Наименование) = СокрЛП(Стр.Статья)  тогда
        ОбластьРаскраски = ТабДок.ПолучитьОбласть(Счетчик, 1, Счетчик, 2);
        ОбластьРаскраски.ЦветФона = WebЦвета.СеребристоСерый;
    КонецЕсли;
    
    Счетчик = Счетчик+1;
    
КонецЦикла;
6 illiona
 
naïve
26.02.18
10:35
Выводит по условию, но у меня два столбца, а закрашивает строку и все столбцы
7 СвинТуз
 
26.02.18
10:42
(6)
Можно имя назначить. А можно по стобцам считать.
8 Тихий омут
 
26.02.18
10:44
(6) в этой строке
ОбластьРаскраски = ТабДок.ПолучитьОбласть(Счетчик, 1, Счетчик, 2);

напиши

"ТабДок.Область(Счетчик" и т.д.
9 a_alenkin
 
26.02.18
10:45
", а закрашивает строку и все столбцы"

не может быть

       ОбластьРаскраски = ТабДок.ПолучитьОбласть(Счетчик, 1, Счетчик, 2);

получаются столбцы с 1 по 2
10 ptiz
 
26.02.18
10:47
(0) А возвращать обычный цвет фона при НЕвыполнении условия Пушкин будет?
11 illiona
 
naïve
26.02.18
10:57
a_alenkin, ошибка Поле объекта не обнаружено (ЦветФона)
12 Тихий омут
 
26.02.18
10:59
(11) - Доктор, меня все игнорируют.
- Следующий...
:) Обрати внимание на (8). Или тоже не работает?
13 illiona
 
naïve
26.02.18
11:04
Тихий омут, Спасибо!
a_alenkin, Спасибо!
2 + 2 = 3.9999999999999999999999999999999...