8.х 3 таблицы на одной странице при печати

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем smaximaa, 4 май 2017.

  1. TopicStarter Overlay
    smaximaa
    Offline

    smaximaa Опытный в 1С

    Регистрация:
    18 ноя 2015
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Делаю отчёт для УПП, Прайс-лист, надо чтоб при печати выводилось по горизонтали 3 таблицы: на первой странице заголовок, дальше шапки таблиц и строки, на второй и далее только шапки и строки. В итоге выглядеть должно так:

    Страница 1
    Заголовок
    Шапка1 Шапка2 Шапка3
    Строки1 Строки2 Строки3
    Страница 2
    Шапка1 Шапка2 Шапка3
    Строки1 Строки2 Строки3

    Как это можно реализовать?
  2. TopicStarter Overlay
    smaximaa
    Offline

    smaximaa Опытный в 1С

    Регистрация:
    18 ноя 2015
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Сделал в итоге через буферные табдоки, заполняю 3 таб дока через циклы (3 цикла вложенные в общий цикл) и вывожу в итоговый таб док(поле табличного документа). Но возникла проблема, с выводом: 1 табдок вывожу через метод Вывести, 2 и 3 через метод присоединить, но 2 не присоединяется 1, 2 к 3 присоединяется.
    Если изменить ДокументРезультат.Вывести(Страница1) на Присоединить, то в итоге все табдоки присоединяются как надо, но в итоге все страницы на поле табдока выводятся по горизонтали (при печати нормально) что некрасиво выглядит, и при повторном формировании отчёта таблицы свдигаются вправо, как будто области остаются, хотя сами табдоки очищаю перед формированием отчёта. Сам цикл обхода:
    Код:
    Сч3 = 0;
    Для Сч = Сч3 по СтаршийИндекс Цикл
        Если Сч = 0 Тогда
            Страница1.Вывести(ОбластьЗаголовок);
            Страница2.Вывести(ОбластьЗаголовокПустышка);
            Страница3.Вывести(ОбластьЗаголовокПустышка);
        КонецЕсли;
       
        Страница1.Вывести(ОбластьШапка);
        Страница2.Вывести(ОбластьШапка);
        Страница3.Вывести(ОбластьШапка);
       
        Для Сч1 = Сч по СтаршийИндекс Цикл
            ОбластьСписок.Параметры.Артикул = Результат[Сч1].Артикул;
            ОбластьСписок.Параметры.Номенклатура = Результат[Сч1].Номенклатура.Наименование;
            ОбластьСписок.Параметры.Расшифровка = Результат[Сч1].Номенклатура;
            ОбластьСписок.Параметры.Цена = Строка(Формат(Результат[Сч1].Цена, "ЧДЦ=2")) + " " + Результат[Сч1].Валюта;
            ОбластьСписок.Параметры.ЕдиницаИзмерения = Результат[Сч1].ЕдиницаИзмерения;
            Страница1.Вывести(ОбластьСписок);
            Если НЕ Страница1.ПроверитьВывод(ОбластьСписок) Тогда
                Прервать;
            КонецЕсли;
            ОбработкаПрерыванияПользователя();
        КонецЦикла;
       
        Для Сч2 = Сч1 + 1  по СтаршийИндекс Цикл
            ОбластьСписок.Параметры.Артикул = Результат[Сч2].Артикул;
            ОбластьСписок.Параметры.Номенклатура = Результат[Сч2].Номенклатура.Наименование;
            ОбластьСписок.Параметры.Расшифровка = Результат[Сч2].Номенклатура;
            ОбластьСписок.Параметры.Цена = Строка(Формат(Результат[Сч2].Цена, "ЧДЦ=2")) + " " + Результат[Сч2].Валюта;
            ОбластьСписок.Параметры.ЕдиницаИзмерения = Результат[Сч2].ЕдиницаИзмерения;
            Страница2.Вывести(ОбластьСписок);
            Если НЕ Страница2.ПроверитьВывод(ОбластьСписок) Тогда
                Прервать;
            КонецЕсли;
            ОбработкаПрерыванияПользователя();
        КонецЦикла;
       
        Для Сч3 = Сч2 + 1  по СтаршийИндекс Цикл
            ОбластьСписок.Параметры.Артикул = Результат[Сч3].Артикул;
            ОбластьСписок.Параметры.Номенклатура = Результат[Сч3].Номенклатура.Наименование;
            ОбластьСписок.Параметры.Расшифровка = Результат[Сч3].Номенклатура;
            ОбластьСписок.Параметры.Цена = Строка(Формат(Результат[Сч3].Цена, "ЧДЦ=2")) + " " + Результат[Сч3].Валюта;
            ОбластьСписок.Параметры.ЕдиницаИзмерения = Результат[Сч3].ЕдиницаИзмерения;
            Страница3.Вывести(ОбластьСписок);
            Если НЕ Страница3.ПроверитьВывод(ОбластьСписок) Тогда
                Прервать;
            КонецЕсли;
            ОбработкаПрерыванияПользователя();
        КонецЦикла;
        Сч = Сч3;
       
        ДокументРезультат.Вывести(Страница1);
        ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        ДокументРезультат.Присоединить(Страница2);
        ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        ДокументРезультат.Присоединить(Страница3);
        ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
       
        Страница1.Очистить();
        Страница2.Очистить();
        Страница3.Очистить();
       
        ОбработкаПрерыванияПользователя();
    КонецЦикла;
    1.png 2.png