|
v7: Раскраска отчета | ☑ | ||
---|---|---|---|---|
0
vladimirpetrov11
01.11.13
✎
10:02
|
Добрый день! Такой вопрос: можно ли в 1с 7.7 программно раскрашивать отдельные столбцы в отчете? Может какие то хитрые методы как с журналом через Formex
|
|||
1
oslokot
01.11.13
✎
10:03
|
Можно
|
|||
2
oslokot
01.11.13
✎
10:03
|
нету хитростей
|
|||
3
Ёпрст
01.11.13
✎
10:06
|
В отчете раскрашивается всё штатно, без всяхих формексов.
|
|||
4
vladimirpetrov11
01.11.13
✎
10:08
|
Да ну штатно то я знаю, просто работы много получится( все варианты раскраски перебрать...
|
|||
5
vladimirpetrov11
01.11.13
✎
10:09
|
(1) Как?
|
|||
6
Ёпрст
01.11.13
✎
10:12
|
(4) Че ?
|
|||
7
oslokot
01.11.13
✎
10:14
|
(5) штатно, или хош формекс (через расшифровку в ячейке)
|
|||
8
Ёпрст
01.11.13
✎
10:15
|
(7) внимательно послушаю, как раскрасить Таблицу формексом
|
|||
9
oslokot
01.11.13
✎
10:18
|
(8) в расшифровку ячейки Раскрасить()
вот пример http://infostart.ru/public/79083/ |
|||
10
Ёпрст
01.11.13
✎
10:20
|
(9) п..ц
Ты хоть сам то читал, что там написано ? Там формекс нужон исключительно для выбора цвета. К прасскраске Таблицы он не имеет никакого отношения |
|||
11
oslokot
01.11.13
✎
10:21
|
(10) неа, не читал
|
|||
12
oslokot
01.11.13
✎
10:21
|
пониже спустись - там таблица отчета в картинках
|
|||
13
mikecool
01.11.13
✎
10:22
|
(6) +1 )))))))))))))))
|
|||
14
mikecool
01.11.13
✎
10:22
|
ура, наконец пришла пятница!
|
|||
15
Ёпрст
01.11.13
✎
10:27
|
(11) без комментариев.
|
|||
16
oslokot
01.11.13
✎
10:29
|
(15) а ты внимательно все прочитал? до рисунков 4,5 дошел?
|
|||
17
Ёпрст
01.11.13
✎
10:42
|
(16)
1. rtfm 2. Формекс к раскраске области Таблицы не имеет никакого отношения. Если че, у него вообще всего лишь пара методов для работы с Таблицей есть: ИсходнаяТаблица и Опции А Таблица красится штатно, через область Таблицы штатными методами ЦветФона 3. см.1 |
|||
18
trad
01.11.13
✎
10:44
|
(17) может быть человека беспокоит доступ к 64+ цветам, а вы и не догадываетесь?
|
|||
19
oslokot
01.11.13
✎
10:45
|
(17) да, я был не прав.
|
|||
20
ДенисЧ
01.11.13
✎
10:50
|
(18) а только зачем, в 77 всё равно он не выведет много цветов....
|
|||
21
vladimirpetrov11
01.11.13
✎
11:04
|
Меня беспокоит раскраска отчета. Formex применяется для раскраска журнала документов. То есть хотелось бы в идеале так: Если такое то условие выполняется, тогда вывести строку в которой по первым 3 столбцам будет цвет такой то по 4 и 5 столбцу другой, а по оставшимся третий цвет. Я понимаю придется в отчете стандартно фон выбирать и кучу строк делать, больше никак
|
|||
22
ADirks
01.11.13
✎
11:47
|
(21) типа
Обл = Т.Область(нНачСтр, 1, нКонСтр, Т.ШиринаТаблицы()); Обл.ЦветФона(цветСветлоЖелтый); |
|||
23
1dvd
01.11.13
✎
11:50
|
(21) Делаешь в макете одиннаковые секции с разными фонами. Потом, в зависимости от условий, выводишь разные секции
|
|||
24
vladimirpetrov11
01.11.13
✎
11:58
|
(22) Спасибо!
(23) я так и делал ;) Всем спасибо!! |
|||
25
vladimirpetrov11
01.11.13
✎
11:59
|
вот так я делал: http://s49.radikal.ru/i123/1311/33/b994731e5ea6.jpg, теперь буду как в (22)
|
|||
26
1dvd
01.11.13
✎
12:06
|
(25) про ПрисоединитьСекцию() Вы, видимо, не слышали
|
|||
27
trad
01.11.13
✎
12:48
|
(20) ну например 256 вполне реально
http://rghost.ru/49860061 |
|||
28
vladimirpetrov11
05.11.13
✎
11:54
|
(26) Слышали))
|
|||
29
vladimirpetrov11
05.11.13
✎
13:35
|
Таб.ВывестиСекцию("СтрокаЖ|С1");
ОбластьКД=Таб.ПолучитьСекцию("СтрокаЖ|С2"); ОбластьКД.ЦветФона(192,220,250); Таб.ПрисоединитьСекцию(ОбластьКД); Таб.ПрисоединитьСекцию("СтрокаЖ|С3"); Если так делаю ошибка следующая:ОбластьКД.ЦветФона(192,220,250); {D:\МОНИТОРИНГ С_В_Д 8D.ERT(441)}: Поле агрегатного объекта не обнаружено (ЦветФона) |
|||
30
vladimirpetrov11
05.11.13
✎
13:39
|
ВсЁЁ!! Пропустил метод Обл=ОбластьКД.Область(); ))
|
|||
31
vladimirpetrov11
05.11.13
✎
15:03
|
А не не все! Смотрите как выводится при присоединении секций: http://i047.radikal.ru/1311/ac/7c667d6e105b.jpg
|
|||
32
vladimirpetrov11
05.11.13
✎
15:03
|
Вот блок :
//********Первый БЛОК**** // Заполнение полей по цветам Если (ПустоеЗначение(Запрос.Док.ДатаD3D4)=1) или (ПустоеЗначение(Запрос.Док.СрокРазD1D3)=1) тогда Обл1.ЦветФона(255,0,0); //красный Таб.ВывестиСекцию(Область1); //ИначеЕсли ПустоеЗначение(Запрос.Док.СрокРазD1D3)=1 тогда // Таб.ВывестиСекцию(Область1); ИначеЕсли (Запрос.Док.ДатаD3D4<=Запрос.Док.СрокРазD1D3) тогда Обл2.ЦветФона(0,255,0); //Зеленый! Таб.ВывестиСекцию(Область1); ИначеЕсли (Запрос.Док.ДатаD3D4>Запрос.Док.СрокРазD1D3) тогда Обл2.ЦветФона(31,174,233); //Зеленый! Таб.ВывестиСекцию(Область1); Иначе Таб.ВывестиСекцию(Область1); КонецЕсли; //********Второй БЛОК**** Если (Запрос.Док.ДатаСрокВып<ТекущаяДата()) и (Запрос.Док.ДатаСрокДокум>=ТекущаяДата()) и (ПустоеЗначение(Запрос.Док.Подтверж_Док)=0) тогда Обл2.ЦветФона(247,242,26); //Желтый! Таб.ПрисоединитьСекцию(Область2); ИначеЕсли (Запрос.Док.ДатаСрокВып<ТекущаяДата()) и (Запрос.Док.ДатаСрокДокум<ТекущаяДата()) и (ПустоеЗначение(Запрос.Док.Подтверж_Док)=1) тогда Обл2.ЦветФона(255,36,0); //Алый! Таб.ПрисоединитьСекцию(Область2); ИначеЕсли (Запрос.Док.ДатаСрокВып<ТекущаяДата()) и (Запрос.Док.ДатаСрокДокум<ТекущаяДата()) и (ПустоеЗначение(Запрос.Док.Подтверж_Док)=0) тогда Обл2.ЦветФона(0,255,0); //Зеленый! Таб.ПрисоединитьСекцию(Область2); Иначе Таб.ПрисоединитьСекцию(Область2); КонецЕсли; //********Третий БЛОК**** Если (ПустоеЗначение(Запрос.Док.ДатаD3D4)=1) или (ПустоеЗначение(Запрос.Док.СрокРазD1D3)=1) тогда Обл3.ЦветФона(255,0,0); //красный Таб.ПрисоединитьСекцию(Область3); // ИначеЕсли Запрос.Док.СрокРазD1D3=" . . " тогда // Таб.ВывестиСекцию(Область3); ИначеЕсли (Запрос.Док.ДатаD3D4<=Запрос.Док.СрокРазD1D3) тогда Обл3.ЦветФона(0,255,0); //Зеленый! Таб.ПрисоединитьСекцию(Область3); ИначеЕсли (Запрос.Док.ДатаD3D4>Запрос.Док.СрокРазD1D3) тогда Обл3.ЦветФона(31,174,233); //Зеленый! Таб.ПрисоединитьСекцию(Область3); Иначе Таб.ПрисоединитьСекцию(Область3); КонецЕсли; |
|||
33
Cthulhu
05.11.13
✎
16:21
|
1с-ина оперирует только теми цветами, которые перечислены в свойствах ячейки таблицы - сводя весь остальной спектр (при указании в параметрах методов управления цветом текста и фона области) к одному из них, но при этом оставляя в "недрах" результирующего мокселя кривизну, которая отражается при переводе мокселя, например, в XLS.
Поэтому простейший способ - это слепить обработку "в лоб": 1) шаблон таблицы - нарисовать ручками, тупо по-ячеечно залить всеми возможными цветами из свойств ячейки (8х7=56) 2) на морду единственную кнопку, по которой вызов вот этой процедуры: Процедура Сформировать() Перем ПечТаб,ПечСтр,ПечКол; ПечТаб=СоздатьОбъект("Таблица"); ПечТаб.ИсходнаяТаблица("Таблица"); ПечТаб.Вывести(); Для ПечСтр=1 По ПечТаб.ВысотаТаблицы() Цикл Для ПечКол=1 По ПечТаб.ШиринаТаблицы() Цикл ПечТаб.Область(ПечСтр,ПечКол).Текст=""+ПечТаб.Область(ПечСтр,ПечКол).ЦветФона() КонецЦикла КонецЦикла; ПечТаб.Опции(0,0); ПечТаб.Показать("Цвета в 1С для копипасты"); Предупреждение("Копипасти, прог, на здоровье!",12); КонецПроцедуры |
|||
34
Ёпрст
05.11.13
✎
17:32
|
(32) красишь везде одну область, а выводишь другую..
|
|||
35
Cthulhu
05.11.13
✎
17:34
|
и тово. не лучше сначала выводить/присоединять а потом уже красить?..
|
|||
36
vladimirpetrov11
06.11.13
✎
08:46
|
(33) Понятно, но хотелось бы использовать поболее гамму цветов(( Метод главное есть, а воспользоваться не получается...
(34) если выводить область обл1, выдает ошибку: Таб.ПрисоединитьСекцию(Обл1); {D:\МОНИТОРИНГ С_В_Д 8D.ERT(394)}: Секция не найдена (35) Так не красится вообще. |
|||
37
Ёпрст
06.11.13
✎
09:02
|
(36) больше кода.
А так, можно либо -получить секцию, раскрасить область в этой секции, присоединить/вывести эту секцию в Таблицу либо -вывести/присоединить секцию в Таблицу, раскрасить область в Таблице. либо -выводить/присоединять заранее разукрашенные секции из самого макета в Таблицу. Какой вариант у тебя - хз, нам отсюда не видно |
|||
38
Cthulhu
06.11.13
✎
11:21
|
(36): странно. у меня - красится.
|
|||
39
vladimirpetrov11
06.11.13
✎
11:29
|
(38) Скинь свой код пожалуйста
|
|||
40
Cthulhu
06.11.13
✎
11:53
|
//(39): ахренеть. ну на:
ПечТаб.ВывестиСекцию("ТекДокум"); ПечТаб.Область(ПечТаб.ВысотаТаблицы(),1,ПечТаб.ВысотаТаблицы(),ПечТаб.ШиринаТаблицы()).ЦветФона(255,0,0); |
|||
41
Ёпрст
06.11.13
✎
12:40
|
или так
Секция = ПечТаб.ПолучитьСекцию("ТекДокум"); Секция.Область(1,1,1,10).ЦветФона(255,0,0); ПечТаб.ВывестиСекцию(Секция); |
|||
42
vladimirpetrov11
06.11.13
✎
13:09
|
(40), (41)Спасибо!!! все вышло как надо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |