8.х Табличные документы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alexxmmt, 12 дек 2009.

  1. TopicStarter Overlay
    alexxmmt
    Offline

    alexxmmt

    Регистрация:
    12 дек 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток.
    Платформа 8.1.14.69
    Создал макет, написал процедуру вывода на печать.
    Макет содержит данные и две таблицы между ними. При выводе таблиц со строкой
    Код:
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ТоварыШапка");
    
    сталкиваюсь с проблемами: либо выводится шапка вообще на каждой странице (подчеркнул красным), даже если таблица не попадает на страницу с данными после нее, либо не выводится вообще, а вместо нее выводится аналогичным образом шапка другой таблицы, если были заполнены ее значения, и дошло до строки
    Код:
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("УслугиШапка");
    
    Подскажите, как сделать нормальную проверку/вывод шапок на печать?

    [​IMG]

    Весь код:

    Код:
    ТабДок = Новый ТабличныйДокумент;
    Макет = Документы.ЗаказПоставщику.ПолучитьМакет("НужныйМакет");
    // Заголовок
    Область = Макет.ПолучитьОбласть("Заголовок");
    Область.Параметры.Заполнить(ЭтотОбъект);
    ТабДок.Вывести(Область);
    // Шапка
    ИНН = Контрагент.ИНН;
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ЭтотОбъект);
    ТабДок.Вывести(Шапка);
    // Товары
    Если ЭтотОбъект.Товары.Количество() > 0 Тогда
    ОбластьШапкиТовары = Макет.ПолучитьОбласть("ТоварыШапка");
    ТабДок.Вывести(ОбластьШапкиТовары);
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ТоварыШапка");
    ОбластьТовары = Макет.ПолучитьОбласть("Товары");
    РазмерТаблицы = Макет.ПолучитьОбласть("Товары").ВысотаТаблицы;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
    ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
    ТабДок.Вывести(ОбластьТовары);
    КонецЦикла;
    КонецЕсли;
    // Услуги
    Если ЭтотОбъект.Услуги.Количество() > 0 Тогда
    ОбластьШапкиУслуги = Макет.ПолучитьОбласть("УслугиШапка");
    ТабДок.Вывести(ОбластьШапкиУслуги);
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("УслугиШапка");
    ОбластьУслуги = Макет.ПолучитьОбласть("Услуги");
    Для Каждого ТекСтрокаУслуги Из Услуги Цикл
    ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги);
    ТабДок.Вывести(ОбластьУслуги);
    КонецЦикла;
    КонецЕсли;
    // Подвал
    Подвал = Макет.ПолучитьОбласть("Подвал");
    Подвал.Параметры.Заполнить(ЭтотОбъект);
    Если Не ТабДок.ПроверитьВывод(Подвал) Тогда
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    ТабДок.Вывести(Подвал);
    
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    
    
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    См. ПроверитьВывод()

Поделиться этой страницей