Имя: Пароль:
1C
1С v8
Разделить лист А3 на 2 при выводе табличного документа
0 MistaEr
 
18.12.17
12:55
Здравствуйте!

Нужно вывести табличный документ в формат А3, чтоб потом сложить и получилась как книга.

Пишу такой вывод

    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДокБольшой = Новый ТабличныйДокумент;
    ТабДокБольшой.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДокБольшой.РазмерСтраницы = "A3";
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Очистить();
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДок.РазмерСтраницы = "A4";
    ТабДок.Вывести(ОбластьШапкаТаблицы);

    Выборка = Результат.Выбрать();
    ПервыйХод = Истина;
    а = 1;
    Пока Выборка.Следующий() Цикл
        
        ОбластьДетальныхЗаписей.Параметры.Заполнить(Выборка);
        Если ТабДок.ПроверитьВывод(ОбластьДетальныхЗаписей) Тогда
            ТабДок.Вывести(ОбластьДетальныхЗаписей);
        Иначе
            Если а = 1 Тогда
                Если ПервыйХод Тогда
                    ПервыйХод = Ложь;
                Иначе
                    ТабДокБольшой.ВывестиГоризонтальныйРазделительСтраниц();
                КонецЕсли;
                ТабДокБольшой.Вывести(ТабДок);
                а = 2;
            Иначе
                ТабДокБольшой.Присоединить(ТабДок);
                а = 1;
            КонецЕсли;
            
            ТабДок.Очистить();
            ТабДок.Вывести(ОбластьШапкаТаблицы);
        КонецЕсли;
        
    КонецЦикла;
    
    ТабДокБольшой.Показать();

Не присоединяет
1 MistaEr
 
18.12.17
13:11
Понимаю, задача не интересная)
2 Леха Дум
 
18.12.17
13:46
А что в итоге получается?
3 MistaEr
 
18.12.17
13:52
(2) Просто выводит ниже, вместо того чтоб присоединить справа
4 Скиурус
 
18.12.17
14:23
Твой код, если ТабДок не влазит на А4, выводит его без изменений (не влазящий) На А3 два раза. Очевидно, нужно ТабДок разбивать.
5 Скиурус
 
18.12.17
14:27
(4) а не, это я не доглядел. Попробуй завести три табДока, в промежуточный сохраняй две страницы методом Присоединить, а в результирующий выводи уже соединенные страницы.
6 Леха Дум
 
18.12.17
14:40
А что в отладчике происходит? Есть как минимум одно место, из-за которого у тебя всегда идет вывод - ТабДок.ПроверитьВывод(ОбластьДетальныхЗаписей)
7 MistaEr
 
18.12.17
15:07
(6) Конечно есть, даже Присоединить есть
8 MistaEr
 
18.12.17
15:18
(5) Добавил ТабДокПромежуточный, вывожу там просто ТабДок - ВысотаТаблицы = 72, Присоединяю - становится 144
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.