Имя: Пароль:
1C
1С v8
Группировка на макете
,
0 depthzer0
 
08.11.12
03:45
Всем здравствуйте!
Создаю отчёт по старинке, на обычном макете. Выглядит примерно так
http://s55.radikal.ru/i147/1211/50/976d1d4b36a3.png
т.е. строки сразу забиты. Мне нужна группировка, добавил прямо на макет через меню Таблица - Группы - Объединить в группу. При выводе в табличный документ не отображается. В коде Начать группировку строк смысла не имеет, потому что строк как таковых нет. Подскажите, пожалуйста, как можно решить.
1 Wobland
 
08.11.12
04:35
вывести область, указав нужный уровень
2 depthzer0
 
08.11.12
08:13
(1) т.е. нужно разбить текущую на несколько? это единственный вариант?
3 cw014
 
08.11.12
08:16
А чем тебе "НачатьГруппировкуСтрок" не нравится? Судя по всему, ты выводишь макет кодом. Значит разбей группируемую область и не группируемую область. Там где группируемая область начинается - делаешь НачатьГруппировкуСтрок"
4 depthzer0
 
08.11.12
08:36
(3) так этим и не нравится, что надо разбивать. В уже существующей области никак нельзя задать группировку программно? типа у таких то строк такой то уровень...
5 Wobland
 
08.11.12
08:38
(4) можно
6 depthzer0
 
08.11.12
08:39
(5) воооот! )) отличная идея
7 Wobland
 
08.11.12
08:43
(6) а посмотри, может, кто-то уже советовал
8 depthzer0
 
08.11.12
09:10
9 Wobland
 
08.11.12
09:12
(8) и там я в первом посте отметился ;)
10 depthzer0
 
08.11.12
11:22
ОК.
Помогите, пожалуйста, потому что ничего лучше, чем разбить на горизонтальные области, мне в голову не приходит. А разбивать не хочется, потому что их много, больше чем на рисунке, + ещё присоединение колонок, короче в целом новый гемор.
Вернее приходит конечно :) (см. (4)), но как это сделать, не доходит совсем.
11 Wobland
 
08.11.12
11:25
что, оба первых поста не сработали?
12 depthzer0
 
08.11.12
11:37
(11) сработали, но несколько своеобразно :)
у меня на макете области:

ОбластьШапка = Макет.ПолучитьОбласть("Данные|Шапка");
ОбластьПериодСумма = Макет.ПолучитьОбласть("Данные|ПериодСумма");
ОбластьПериодСтроки = Макет.ПолучитьОбласть("Данные|ПериодСтроки");

Вывод происходит примерно так:

ТабДокумент.Вывести(ОбластьШапка);
ТабДокумент.Присоединить(ОбластьПериодСумма);
ТабДокумент.Присоединить(ОбластьПериодСумма);

И теперь, чтобы там появились группы, как я понял и постов (как они сработали), нужно горизонтальную область Данные разделить на области соответствующие новым группировкам и выводить соответственно, например:

ТабДокумент.Вывести(ОбластьШапкаГруппа1, 1);
ТабДокумент.Присоединить(ОбластьПериодСуммаГруппа1, 1);
ТабДокумент.Присоединить(ОбластьПериодСуммаГруппа1, 1);

ТабДокумент.Вывести(ОбластьШапкаГруппа2, 2);
ТабДокумент.Присоединить(ОбластьПериодСуммаГруппа2, 2);
ТабДокумент.Присоединить(ОбластьПериодСуммаГруппа2, 2);

ТабДокумент.Вывести(ОбластьШапкаГруппа3, 1);
ТабДокумент.Присоединить(ОбластьПериодСуммаГруппа3, 1);
ТабДокумент.Присоединить(ОбластьПериодСуммаГруппа3, 1);

и т.д.

И это именно то, чего хотелось бы избежать. Хотелось бы чтобы

ОбластьШапка = Макет.ПолучитьОбласть("Данные|Шапка");
ОбластьПериодСумма = Макет.ПолучитьОбласть("Данные|ПериодСумма");
ОбластьПериодСтроки = Макет.ПолучитьОбласть("Данные|ПериодСтроки");

МагическаяФункция(ОбластьШапка); // вуаля, внутри уже всё по группам
МагическаяФункция(ОбластьПериодСумма);
МагическаяФункция(ОбластьПериодСтроки);

Просто никак не могу понять, как это сделать )) не могу найти нужных свойств и методов, для реализации, увы.
13 depthzer0
 
08.11.12
12:08
Так можно вообще сделать или нет, вот это не могу окончательно понять.
14 depthzer0
 
08.11.12
12:57
Бинго!! ))) Получилось.

Оцените, пожалуйста, оптимальность решения.

ОбластьНачало = ТабДокумент.НайтиТекст("Товарный запас"); ОбластьКонец = ТабДокумент.НайтиТекст("Замена");
ТабДокумент.Область("R" + ОбластьНачало.Верх + ":R" + ОбластьКонец.Низ).Сгруппировать();
15 Wobland
 
08.11.12
12:58
зависит от текста содержимого. некультурно
16 depthzer0
 
08.11.12
13:03
(15) у меня, в принципе, левая колонка всегда с одним содержимым. но может и поменяться... но с другой стороны требования к группировкам именно относительно той или иной строки. даже не знаю, к чему ещё можно привязаться.
17 Wobland
 
08.11.12
13:20
(16) у тебя всё осложняется присоединяемыми областями - не могу умозрительно. а пробовать на практике некогда. дома гляну, если более бородатые ничего не скажут
18 depthzer0
 
08.11.12
13:49
(17) ОК. это не обязательно, конечно, но интересно.
2 + 2 = 3.9999999999999999999999999999999...