К статье
Практический материал

Документы и Печать · 10 мин

Как вывести шапку таблицы на каждой странице в 1С

Как вывести шапку таблицы на каждой странице в 1С: повтор заголовка при печати, фиксация шапки в табличном документе, настройка в СКД и программный способ.

При печати длинных табличных документов в 1С — реестров, отчётов, актов сверки — шапка таблицы по умолчанию выводится только на первой странице. На последующих листах остаются «голые» строки, и понять, какие данные в какой колонке находятся, уже невозможно. Это неудобно и для внутренней работы, и особенно для документов, которые передаются контрагентам или в контролирующие органы.

Платформа 1С:Предприятие предоставляет несколько штатных механизмов для повторения шапки на каждой странице: свойство повторения заголовка при печати, фиксация шапки в табличном документе, настройки макета в СКД и программные методы. Какой из них применить — зависит от того, где формируется таблица: в типовой печатной форме, в отчёте на СКД или в собственной разработке.

Ниже разобраны все рабочие способы с точными действиями, ограничениями и способами проверки результата. Отдельно рассмотрены типичные ошибки, из-за которых шапка не повторяется даже при правильных, на первый взгляд, настройках.

Определите, где именно нужно повторять шапку

Прежде чем менять настройки, важно различить две разные задачи. Первая — повторение шапки при печати на бумаге или в PDF: платформа должна автоматически дублировать строки заголовка в начале каждой страницы. Вторая — фиксация шапки на экране, чтобы при прокрутке длинной таблицы заголовок оставался видимым. Это разные механизмы, и включение одного не даёт другого.

Также важно понять, как формируется документ. Если это типовая печатная форма (например, ТОРГ-12 или реестр документов), макет хранится в конфигурации, и изменить его можно только в конфигураторе — при условии, что конфигурация не на полной поддержке, либо через механизм расширений. Если это отчёт на системе компоновки данных (СКД), часть настроек доступна прямо в режиме предприятия. Если документ формируется вашим собственным кодом, всё решается программно.

Повтор шапки при печати через свойство области

Основной способ вывести шапку на каждой странице — назначить строкам заголовка свойство «Повторять при печати». В режиме предприятия это доступно, если табличный документ открыт для редактирования: выделите строки шапки (обычно одну-две верхние строки таблицы), затем в меню «Таблица» — «Вид» найдите пункт «Повторять при печати» либо откройте свойства выделенной области и установите соответствующий флажок.

В конфигураторе механизм тот же, но надёжнее: откройте макет печатной формы, выделите строки шапки, вызовите палитру свойств и установите свойство «ПовторятьПриПечати» в значение «Истина». После сохранения конфигурации и обновления базы шапка будет автоматически выводиться в начале каждой страницы при печати этого документа.

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и найдите макет нужной печатной формы (обычно в ветке документа или общих макетов)
  2. 2
    Выделите строки, составляющие шапку таблицы
  3. 3
    В палитре свойств установите «ПовторятьПриПечати» = Истина
  4. 4
    Сохраните конфигурацию и выполните обновление конфигурации базы данных
  5. 5
    Сформируйте печатную форму и проверьте результат в предварительном просмотре

Обратите внимание на ограничение: повторяющаяся область должна располагаться в самом верху табличного документа, начиная с первой строки, либо идти сразу после другой повторяющейся области. Если между началом документа и шапкой есть «плавающие» строки (например, заголовок документа переменной высоты), механизм может работать некорректно. В таких случаях шапку выносят в отдельную область макета и выводят программно с использованием метода повтора.

Программный способ: методы табличного документа

Когда печатная форма строится кодом, повтор шапки задаётся программно. Для этого у табличного документа есть свойство ПовторятьПриПечатиСтроки, которому присваивается область строк шапки. Типовой фрагмент выглядит так: сначала выводится область шапки, затем назначается повторение.

ТабДок = Новый ТабличныйДокумент;

ОбластьШапка = Макет.ПолучитьОбласть("ШапкаТаблицы");

ТабДок.Вывести(ОбластьШапка);

ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1, , ОбластьШапка.ВысотаТаблицы, );

Здесь важно, чтобы повторяющиеся строки начинались с первой строки документа. Если перед шапкой выводится заголовок отчёта, либо укажите диапазон строк явно (платформа допускает повтор области, начинающейся не с первой строки, но поведение зависит от версии платформы), либо перестройте макет так, чтобы шапка шла первой, а заголовок выводился в колонтитул.

Дополнительно полезен метод ПроверитьВывод() и ПроверитьПрисоединение(): они позволяют заранее определить, поместится ли очередная строка на текущей странице, и при необходимости вставить разрыв страницы вручную. Это даёт полный контроль над пагинацией в сложных печатных формах.

Фиксация шапки на экране

Если задача — не печать, а удобная работа с длинной таблицей на экране, используется фиксация. В режиме предприятия при просмотре табличного документа выберите в меню «Таблица» — «Вид» пункт «Фиксировать таблицу» (в ряде версий — «Фиксировать шапку»). Платформа закрепит верхние строки, и при прокрутке они останутся на месте.

Программно фиксация задаётся свойствами ФиксацияСверху (количество закрепляемых строк) и ФиксацияСлева (количество закрепляемых колонок). Например, ТабДок.ФиксацияСверху = 2; закрепит две верхние строки. Это удобно комбинировать: фиксация для работы на экране, повтор при печати — для бумажной версии.

Учтите, что настройки фиксации, сделанные пользователем в режиме просмотра, относятся к текущему сеансу просмотра и не меняют сам макет печатной формы. Чтобы фиксация включалась всегда, её нужно задавать в коде формирования документа.

Повтор шапки в отчётах на СКД

В отчётах на системе компоновки данных шапка таблицы формируется автоматически по настройкам отчёта, и прямого свойства «повторять при печати» у пользователя нет. Однако платформа при выводе результата СКД в табличный документ, как правило, сама назначает повторяющиеся строки для заголовков таблицы — проверить это можно через предварительный просмотр печати.

Если заголовок не повторяется (такое встречается в нестандартных макетах СКД или при программном выводе результата), решение — задать повтор после формирования: получить результат отчёта в табличный документ и назначить свойство ПовторятьПриПечатиСтроки на строки, где выведена шапка. Для отчётов с собственным макетом СКД повтор настраивается в самом макете тем же способом, что и для обычных макетов.

Сравнение способов

Свойство области в макете

Подходит для типовых и собственных печатных форм; требует доступа к конфигуратору и обновления конфигурации

Программное назначение ПовторятьПриПечатиСтроки

Гибкий вариант для собственных разработок и доработок через расширения; требует навыков программирования

Фиксация на экране

Решает только задачу удобного просмотра, на печать не влияет

Настройки СКД

Для отчётов на СКД; штатно повтор обычно работает автоматически, при сбоях — программная доработка

Проверка результата и типичные ошибки

Проверять результат нужно именно в режиме предварительного просмотра печати с разбивкой на страницы, а не в обычном окне просмотра. Откройте «Файл» — «Печать» или предварительный просмотр и пролистайте документ: шапка должна появляться вверху каждой страницы, начиная со второй.

Контрольные точки

Как проверить результат

Предварительный просмотр печати
Норма

Шапка повторяется на каждой странице, начиная со второй

Тревожный признак

Шапка есть только на первой странице — повтор не назначен

Состав повторяющейся области
Норма

Повторяются только строки заголовка таблицы

Тревожный признак

Повторяется лишний текст или шапка обрезана — неверно выделен диапазон строк

Печать в PDF
Норма

Разбивка и повтор совпадают с предпросмотром

Тревожный признак

В PDF разбивка отличается — проверьте настройки полей и масштаб

Типичные ошибки
01
Проверка результата в обычном просмотре вместо предварительного просмотра печати — повтор работает только при разбивке на страницы, поэтому кажется, что настройка не сработала
02
Выделение не всех строк шапки — часть заголовка повторяется, часть теряется; выделяйте весь многострочный заголовок целиком
03
Повторяющаяся область начинается не с первой строки документа — на ряде версий платформы повтор в этом случае игнорируется
04
Изменение макета в конфигурации на полной поддержке без расширения — доработка теряется при следующем обновлении; используйте расширения конфигурации
05
Ожидание, что фиксация на экране даст повтор при печати — это независимые механизмы, настраивать нужно оба

Частые вопросы

Шапка повторяется, но на второй странице она «съезжает» или обрезается. Что делать?

Проверьте, что в повторяющуюся область не попали лишние строки и что у строк шапки не задана автоотметка высоты с переменным содержимым. Задайте фиксированную высоту строк шапки в макете и убедитесь, что объединённые ячейки полностью входят в повторяющийся диапазон.

Можно ли повторять шапку без доступа к конфигуратору?

Да, если документ открыт в режиме редактирования табличного документа: выделите строки шапки и включите «Повторять при печати» в меню «Таблица». Но это действует только на текущий экземпляр документа. Для постоянного решения нужны доработка макета, расширение или внешняя печатная форма.

Почему в отчёте на СКД шапка не повторяется, хотя в других отчётах повторяется?

Чаще всего дело в собственном макете СКД или программном выводе результата, где повтор не назначен. Проверьте, используется ли в отчёте свой макет, и при программном формировании добавьте назначение свойства ПовторятьПриПечатиСтроки после вывода результата.

Как повторять не только шапку, но и, например, итоговую строку на каждой странице?

Штатно повторяться может только область в начале документа (строки сверху). Повтор «подвала» на каждой странице напрямую не поддерживается; такие задачи решают программно — через проверку вывода, ручную вставку разрывов страниц и повторный вывод нужных областей.

Влияет ли настройка повтора на выгрузку в Excel?

Нет, свойство повтора при печати работает внутри механизмов печати 1С. При сохранении табличного документа в Excel шапка останется только в начале таблицы; повтор на страницах в Excel настраивается уже средствами самого Excel («Печать заголовков»).

Итог

Что важно запомнить

Повтор шапки на каждой странице включается свойством «Повторять при печати» для области строк — в макете, в режиме редактирования документа или программно через ПовторятьПриПечатиСтроки. Фиксация на экране — отдельный механизм, на печать не влияющий. Проверяйте результат только в предварительном просмотре печати, а доработки типовых конфигураций выполняйте через расширения.