Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 15:48

Раскрась табличную часть по условию

Автор Funt432286, 27 янв 2023, 01:08

0 Пользователей и 1 гость просматривают эту тему.

Funt432286

Всем доброго времени суток!

Работаю с обычными приложением и на форме есть ТЧ в которой есть необходимость раскрасить строки по определенной форме и алгоритму, но и такая же раскраска должна быть на печатном документе.

Образец раскраски приложен в прикрепленном файле.

antoneus

В ТЧ строки красить в процедуре ПриВыводеСтроки, в печатном документе - после вывода области:

ТабДок.Область(НомерСтроки, НомерКолонки).ЦветФона = Новый Цвет(R, G, B)
Или создать макет с покрашенными областями и дергать из него область с нужным цветом фона по условию.

Максим75

Funt432286,

красить в табличной части - процедура ПриВыводеСтроки, там в самой процедуре есть параметр ОформлениеСТроки, вот через него и красить. ОформлениеСтроки.ЦветФОна =  Новый Цвет(255, 204, 153); типа так.

при печати: если всю строку красить, то уже написали выше.
если ячейку/ячейки в области вывода - тогда создать имя, и можно будет обращаться через имя к областичеек табличного документа, а там уже можно хоть красить, хоть шрифт менять.
синтаксис примерно такой ТабДокумент.Области.Имя области.ЦветФона = Новый Цвет(число,число,число), здесь число заменить на цифры, чтобы нужный цвет получить.

Funt432286

Цитата: Максим75 от 27 янв 2023, 10:39Funt432286,

красить в табличной части - процедура ПриВыводеСтроки, там в самой процедуре есть параметр ОформлениеСТроки, вот через него и красить. ОформлениеСтроки.ЦветФОна =  Новый Цвет(255, 204, 153); типа так.

при печати: если всю строку красить, то уже написали выше.
если ячейку/ячейки в области вывода - тогда создать имя, и можно будет обращаться через имя к областичеек табличного документа, а там уже можно хоть красить, хоть шрифт менять.
синтаксис примерно такой ТабДокумент.Области.Имя области.ЦветФона = Новый Цвет(число,число,число), здесь число заменить на цифры, чтобы нужный цвет получить.

Через оформление строки у меня сейчас все красится по условию нормально, но красится целиком строка. А мне нужно чтобы первые две колонки одного цвета, остальные колонки строки другого!?

antoneus

ОформлениеСтроки.Ячейки содержит коллекцию значений ОформлениеЯчейки для строки.

Максим75

Funt432286, посмотрите в синтаксис-помощнике ПриВыводеСтроки
Описание:

Возникает при выводе строки в табличном поле. В процедуре-обработчике события допускается изменение оформления как строки в целом, так и каждой ячейке в отдельности.

ОформлениеСтроки - это тип, у него есть свойства Ячейки. Значит можно по цепочке через ОФормлениеСтроки.Ячейки[индекс] достучаться до ЦветФона уже нужной ячейки. Индекс начинается как везде в 1С с нуля.

Funt432286

antoneus,

с раскраской на форме модуля все получилось, а вот как раскрасить в таких же цветах на печатной форме разобраться не получается!
Что-то не догоняю пока!

        Табл = Макет.ПолучитьОбласть("РоландСтарый");       
        Табл.Параметры.ТЗ        = СтрТЧ.НомерТЗ;
        Табл.Параметры.Заказчик = СтрТЧ.Заказчик;
        Табл.Параметры.Название = СтрТЧ.Продукция;
       
        //*********** раскарска строки *****************
        //Табл.Область("R"+ НомСтр + "C2:R"+ (НомСтр+1) +"C4").ЦветФона = Новый Цвет(255, 153, 204);
        //**********************************************
       
        НомСтр = НомСтр + 2;
       
        ТабДок.Вывести(Табл);       

antoneus

Кстати, ТабДок.Вывести - это внезапно функция, которая возвращает выведенную область. Вот ее и можно красить.

Funt432286

antoneus,

а как как раз-таки покрасить область

    //*********** раскарска строки *****************
        Табл.Область("R"+ НомСтр + "C2:R"+ (НомСтр+1) +"C4").ЦветФона = Новый Цвет(255, 153, 204);
        //**********************************************

это код красить добавляя новые строки а как раскрасить область выводимой таблицы, как приложенном изображении?
Т.е. ячейки "ТЗ+Заказчик"



Максим75

Funt432286, в макете можно выделить область и задать ей имя.
потом обращаться к области по ее имени и красить.
т.е. вывести нужную область макета ТабДок.Вывести(Табл), а потом обратиться к именованной части области
ТабДок.Области.Имя области.ЦветФОна = нужный цвет.

Как сделать именованную часть: в макете выделить нужную часть (ячейка или ячейки) в меню Таблица --> Имена -->Назначить имя. Задать имя области.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск