8.х Как повторять заголовок таблицы на каждом листе?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 26 сен 2013.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Как в печатной форме реализовать следующую возможность:
    если таблица не влазит на один лист то на следующий лист переносить шапку таблицы. И как при этом случае над таблицей писать Страница 2, Страница 3?
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Покажите код... Напишите условие, где будет разрыв страницы, при выполнении этого условия выводите область шапки
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    для области ячеек можно задать
  4. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Код:
    Область = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    ТабДокумент.Вывести(Область);
    
  5. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Код:
    ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Область("ЗаголовокТаблицы");
    
    С этим понятно, большое спасибо. А как на втором листе перед шапкой проставлять номер страницы?

    Как узнать номер листа?
  6. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    КоличествоСтраниц есть, а как узнать что пошел следующий лист?
  7. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Некорректно выводится Шапка. Нужно выводить только если таблица на следующем листе продолжается, а она выводится на каждом последующем листе.
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а стандартный колонтитул не подходит?
  9. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Мне главное с шапкой разобраться.
  10. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Есть еще вопрос.
    Есть область Подвал. Она последняя в макете. В нем содержится Должность, ФИО и роспись руководителя организации(одна строка).
    Предыдущая область - Таблица. В ней пробегается циклом по таблице документов и выводятся все строчки.
    Как сделать так, чтобы если область Подвал не влазила на последний лист переносить последнюю строчку Таблицы на следующий лист.
    Нужно чтобы не было пустых листов с росписью руководителя.
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    перед выводом каждой строки таблицы проверять на то влезет ли она+подпись, если нет, то выводить ее и подпись на след.старнице. Посмотрите метод ПроверитьВывод()
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
        
    ТабДокумент.ВерхнийКолонтитул.Выводить = Истина;
    ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 2;
    ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы] из [&PagesTotal]";
    
  13. Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    не нужно придумывать велосипед !!
    у 1С в больших накладных это уже реализовано
    посмотри печатную форму "Торг12" в реализации, она же тоже бывает большой, и ничего переноситься хорошо
    ну так и использую такой же код

    сам недавно так делал, пишеться быстрее и без ошибок
  14. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Не могу понять. Для обрыва страницы используется
    Код:
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    
    Как в коде
    Код:
    Область = Макет.ПолучитьОбласть("Таблица");
    Для Каждого Элемент Из СсылкаНаОбъект.Товары Цикл
    Область.Параметры.Строка = Элемент.НомерСтроки;
    Область.Параметры.Артикул = СокрЛП(Элемент.Номенклатура.Артикул);
    Область.Параметры.Наименование = СокрЛП(Элемент.Номенклатура.Наименование);
    Область.Параметры.Количество = Элемент.Количество;
    Область.Параметры.ЕдИзм = СокрЛП(Элемент.ЕдиницаИзмерения);
    ТабДокумент.Вывести(Область);
    КонецЦикла;
    Область = Макет.ПолучитьОбласть("Подвал");
    ТабДокумент.Вывести(Область);
    
    обрезать последнюю строку если подвал не влазит на страницу?
  15. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Считайте количество выводимых строк, либо используйте проверку на ПроверитьВывод(), и потом режьте страницу.
  16. Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    там есть такое
    Код:
    ТабДок.ПроверитьВывод();
    т.е. проверяется влезает ли ваши области макета (их может быть несколько) или не влезают
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Все зависит от того, где эта проверка на вывод стоит.
  18. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Если вы хотите решить задачу, которую вы описали, вам полюбому придется разобраться с проверкой вывода
    табличного документа, ну никуда без этого.
    К сожалению, логика вывода строк документа будет сильно зависеть от алгоритма реализации такой проверки,
    я к тому, что существует множество решений реализации похожей задачи

    Как вам выше уже писали, посмотрите в синтаксис помощнке метод табличного документа "ПроверитьВывод"

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