Имя: Пароль:
1C
1С v8
Присоединение табличного документа
,
0 Liova
 
29.08.12
10:49
Делаю отчет из нескольких частей - имеются общие строки, далее часть с одной группировкой колонок, потом с другой группировкой колонок (данные разнородные в разрезе колонок, одинаковые только строки).

Сделал два ТД, в одном левая часть, в другом - правая, строки совпадают.

Теперь хочу Присоединить() правую часть к левой, но получается аналог Вывести().

ТД и ТД2 - табличные документы

   ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТД);    
   ЭлементыФормы.ПолеТабличногоДокумента.Присоединить(ТД2);    

ЧЯДНТ? Пробовал Присоединить(ТД.ПолучитьОбласть()) - всё аналогично
1 Liova
 
29.08.12
11:57
Ап
2 kosts
 
29.08.12
11:59
(0) Зачем сливать 2 в 1. Сразу формируй в один ТД.
3 rutony
 
29.08.12
12:01
Попробуй табличные документы засунуть в области и выводить, присоединять
4 Liova
 
29.08.12
12:01
(2) Неудобно сначала выводить кучу шапок (состав колонок зависит от итогов) а потом кучу данных. А так каждый отдельный блок есть, в код легко поменять местами/убрать/добавить что-нибудь.
5 Liova
 
29.08.12
12:02
(3) Что имеется ввиду под "засунуть"?
6 Rie
 
29.08.12
12:03
(0) Поподробнее - что такое ТД и ТД2.
Если ты ТД получил из области, тянущейся в бесконечность (например, "R8") - то не сможет от Присоединить.
7 Liova
 
29.08.12
12:07
(6) ТД - Табличный документ, к которому из макета выводились и присоединялись области.
ТД2 - аналогично.

Если, например, я присоединю к ТД ТД2, то ТД2 выведется справа от последней строки ТД.
8 Rie
 
29.08.12
12:09
(7) Откуда берётся этот табличный документ?
9 1Сергей
 
29.08.12
12:10
(7) ПолучитьМакет()
10 Liova
 
29.08.12
12:12
(8) Выводом и присоединением Макет.ПолучитьОбласть("Строка|Колонка")
11 kosts
 
29.08.12
12:12
Формируй не в табличные документы, а сохраняй области в таблицу значений.
Потом пробегись по таблице значений вытащи области в тебе нужном порядке и выведи в табличный документ.
12 Rie
 
29.08.12
12:13
Похоже, что (3) прав.
Или не
Вывести(ТД);
а
Вывести(ТД.ПолучитьОбласть(ТаОбластьЧтоРеальноЗаполнена));
13 Liova
 
29.08.12
12:29
(12) Работает. Только туплю с тем, как мне получить область или её размеры, не считать же при выводе?
14 Liova
 
29.08.12
12:58
ОбщийТД = Новый ТабличныйДокумент;
   //ОбщийТД.Вывести(ТД.ПолучитьОбласть());
   //ОбщийТД.Присоединить(ТД2.ПолучитьОбласть());    
   ОбщийТД.Вывести(ТД.ПолучитьОбласть(1, 1, ТД.ВысотаТаблицы, ТД.ШиринаТаблицы));
   ОбщийТД.Присоединить(ТД2.ПолучитьОбласть(1, 1, ТД2.ВысотаТаблицы, ТД2.ШиринаТаблицы));    

Так получает то, что мне надо. Причем закоментированный код дает совсем другие области.