Имя: Пароль:
1C
 
присоединение в печатной форме
0 x-a-d
 
23.12.10
14:30
Добрый день! На работе один из отчетов формирует 4 листа формата А4. Листы состоят из нескольких областей, которые формируются по некоторуму алгоритму. Например, Лист1
Область1
Область2
Область3
Стала задача разместить эти листы на формат А3. Т.е. должно получиться:
Лист4 Лист1
Лист2 Лист3

Я попробовал каждый из листов поместить в табличный документ, а потом их собрать вышеуказанным способом. Я попробовал это сделать так:

Лист1 = Новый ТабличныйДокумент;
Лист2 = Новый ТабличныйДокумент;
Лист3 = Новый ТабличныйДокумент;
Лист4 = Новый ТабличныйДокумент;

Далее заполняю эти 4 листа и пробую в один документ объединить все:
Полный = Новый ТабличныйДокумент;
Полный.Вывести(Лист4);
Полный.Присоединить(Лист1);
Полный.Вывести(Лист2);
Полный.Присоединить(Лист3);

Но в итоге получаю вывод листов по-порядку:
Лист4
Лист1
Лист2
Лист3

Что я делаю не так? Как можно сформировать 4 листа, чтобы потом их вывести на А3? Переделывать макеты и алгоритм хотелось бы только в крайнем случае.
1 x-a-d
 
23.12.10
15:17
ап
2 PVV65
 
23.12.10
15:18
ТабДок = Новый ТабличныйДокумент;
   
   Макет = ПолучитьМакет("Макет");
   Макет1 = ПолучитьМакет("Макет1");
   
   Обл = Макет.ПолучитьОбласть("Область1");
   ТабДок.Вывести(Обл);
   ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
   Обл1 = Макет1.ПолучитьОбласть("Область1");
   ТабДок.ВставитьОбласть(Обл1.Область("R1C1"),ТабДок.Область("R1C10"));
   ТабДок.Показать();
3 SalavatUlaev
 
23.12.10
15:20
Параметры страницы поменял на A3 ?
4 Темный
 
23.12.10
15:26
Кстати, сейчас как раз делаю похожую штуку. Вывожу отчет сверху-вниз слева-направо (ну, типа шахматки). "присоединить" работает нормально, но не знаю, как "перевести каретку" обратно вверх страницы. Присединяет снизу, после последней строки. Как можно вывести область в первой строке печ. формы, но в следующем стобце?
5 PVV65
 
23.12.10
15:27
(4) см. (2)
6 Темный
 
23.12.10
15:34
(5) Немного не допонял. Я могу вывести область в ячейку R1C1, но в следующей итерации это уже должно быть R1C2...
7 PVV65
 
23.12.10
15:41
(6) ТабДок - это итоговый табличный документ. В любой момент в любую область этого документа можно вставить другую область.
В примере область "Обл1.Область("R1C1")" вставляется в первую строку десятую колонку итогового ТД, когда вывод уже осуществлялся. Кроме того в примере показано, что вставлять можно любые области (в т.ч. из других макетов (это к (0)).
8 Темный
 
23.12.10
15:51
То есть, нужно динамически формировать новый адрес ячейки (число преобразовывать в строку), и потом выводить в начале цикла в этот адрес? Более простого способа нет?
9 PVV65
 
23.12.10
15:54
(8) Обычно хватает стандартных методов работы ТД. Применение методов работы с областями подразумевает расчеты.
10 KirWas
 
23.12.10
16:04
Примерно так:

ТД.Очистить();
ТДН13 = Новый ТабличныйДокумент ;

ТДН13.Вывести(ТДН);
ТДН13.Вывести(ТДН2);


ТДН24 = Новый ТабличныйДокумент ;
ТДН24.Вывести(ТДН1);
ТДН24.Вывести(ТДН3);

ТД.Присоединить(ТДН13);
// ТД.ВывестиВертикальныйРазделительСтраниц();
ТД.Присоединить(ТДН24);


Где ТДНх:
ТДНх = Новый ТабличныйДокумент ;
ТДНх.Вывести(ТД.ПолучитьОбласть(2,мПеременная[2]+1,Ни1+1 ,мПеременная[3]+4));
11 x-a-d
 
23.12.10
16:22
(3) параметры страницы на А3 в 8.1 не знаю как поменять. нашел только как сделать Ландшафт

(7) а когда я выведу Лист2, то я не знаю с какой строки он начинается. как быть тогда?

(10) я не понял последнюю строчку
ТДНх.Вывести(ТД.ПолучитьОбласть(2,мПеременная[2]+1,Ни1+1 ,мПеременная[3]+4));
что за мПеременная, что за Ни1
12 PVV65
 
23.12.10
16:34
(11) Лист2 начинается со строки ТабДок.ВысотаТаблицы+1.
13 x-a-d
 
24.12.10
08:41
(2) (10) (11) спасибо!
14 x-a-d
 
24.12.10
08:42
предыдущее (11) ==> (12) спасибо!
Программист всегда исправляет последнюю ошибку.