Документы и Печать · 10 мин
Как вывести шапку таблицы на каждой странице в 1С
Как вывести шапку таблицы на каждой странице в 1С: повтор заголовка при печати, фиксация шапки в табличном документе, настройка в СКД и программный способ.
При печати длинных табличных документов в 1С — реестров, отчётов, актов сверки — шапка таблицы по умолчанию выводится только на первой странице. На последующих листах остаются «голые» строки, и понять, какие данные в какой колонке находятся, уже невозможно. Это неудобно и для внутренней работы, и особенно для документов, которые передаются контрагентам или в контролирующие органы.
Платформа 1С:Предприятие предоставляет несколько штатных механизмов для повторения шапки на каждой странице: свойство повторения заголовка при печати, фиксация шапки в табличном документе, настройки макета в СКД и программные методы. Какой из них применить — зависит от того, где формируется таблица: в типовой печатной форме, в отчёте на СКД или в собственной разработке.
Ниже разобраны все рабочие способы с точными действиями, ограничениями и способами проверки результата. Отдельно рассмотрены типичные ошибки, из-за которых шапка не повторяется даже при правильных, на первый взгляд, настройках.
Определите, где именно нужно повторять шапку
Прежде чем менять настройки, важно различить две разные задачи. Первая — повторение шапки при печати на бумаге или в PDF: платформа должна автоматически дублировать строки заголовка в начале каждой страницы. Вторая — фиксация шапки на экране, чтобы при прокрутке длинной таблицы заголовок оставался видимым. Это разные механизмы, и включение одного не даёт другого.
Также важно понять, как формируется документ. Если это типовая печатная форма (например, ТОРГ-12 или реестр документов), макет хранится в конфигурации, и изменить его можно только в конфигураторе — при условии, что конфигурация не на полной поддержке, либо через механизм расширений. Если это отчёт на системе компоновки данных (СКД), часть настроек доступна прямо в режиме предприятия. Если документ формируется вашим собственным кодом, всё решается программно.
Повтор шапки при печати через свойство области
Основной способ вывести шапку на каждой странице — назначить строкам заголовка свойство «Повторять при печати». В режиме предприятия это доступно, если табличный документ открыт для редактирования: выделите строки шапки (обычно одну-две верхние строки таблицы), затем в меню «Таблица» — «Вид» найдите пункт «Повторять при печати» либо откройте свойства выделенной области и установите соответствующий флажок.
В конфигураторе механизм тот же, но надёжнее: откройте макет печатной формы, выделите строки шапки, вызовите палитру свойств и установите свойство «ПовторятьПриПечати» в значение «Истина». После сохранения конфигурации и обновления базы шапка будет автоматически выводиться в начале каждой страницы при печати этого документа.
- 1Откройте конфигуратор и найдите макет нужной печатной формы (обычно в ветке документа или общих макетов)
- 2Выделите строки, составляющие шапку таблицы
- 3В палитре свойств установите «ПовторятьПриПечати» = Истина
- 4Сохраните конфигурацию и выполните обновление конфигурации базы данных
- 5Сформируйте печатную форму и проверьте результат в предварительном просмотре
Обратите внимание на ограничение: повторяющаяся область должна располагаться в самом верху табличного документа, начиная с первой строки, либо идти сразу после другой повторяющейся области. Если между началом документа и шапкой есть «плавающие» строки (например, заголовок документа переменной высоты), механизм может работать некорректно. В таких случаях шапку выносят в отдельную область макета и выводят программно с использованием метода повтора.
Программный способ: методы табличного документа
Когда печатная форма строится кодом, повтор шапки задаётся программно. Для этого у табличного документа есть свойство ПовторятьПриПечатиСтроки, которому присваивается область строк шапки. Типовой фрагмент выглядит так: сначала выводится область шапки, затем назначается повторение.
ТабДок = Новый ТабличныйДокумент;
ОбластьШапка = Макет.ПолучитьОбласть("ШапкаТаблицы");
ТабДок.Вывести(ОбластьШапка);
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1, , ОбластьШапка.ВысотаТаблицы, );
Здесь важно, чтобы повторяющиеся строки начинались с первой строки документа. Если перед шапкой выводится заголовок отчёта, либо укажите диапазон строк явно (платформа допускает повтор области, начинающейся не с первой строки, но поведение зависит от версии платформы), либо перестройте макет так, чтобы шапка шла первой, а заголовок выводился в колонтитул.
Дополнительно полезен метод ПроверитьВывод() и ПроверитьПрисоединение(): они позволяют заранее определить, поместится ли очередная строка на текущей странице, и при необходимости вставить разрыв страницы вручную. Это даёт полный контроль над пагинацией в сложных печатных формах.
Фиксация шапки на экране
Если задача — не печать, а удобная работа с длинной таблицей на экране, используется фиксация. В режиме предприятия при просмотре табличного документа выберите в меню «Таблица» — «Вид» пункт «Фиксировать таблицу» (в ряде версий — «Фиксировать шапку»). Платформа закрепит верхние строки, и при прокрутке они останутся на месте.
Программно фиксация задаётся свойствами ФиксацияСверху (количество закрепляемых строк) и ФиксацияСлева (количество закрепляемых колонок). Например, ТабДок.ФиксацияСверху = 2; закрепит две верхние строки. Это удобно комбинировать: фиксация для работы на экране, повтор при печати — для бумажной версии.
Учтите, что настройки фиксации, сделанные пользователем в режиме просмотра, относятся к текущему сеансу просмотра и не меняют сам макет печатной формы. Чтобы фиксация включалась всегда, её нужно задавать в коде формирования документа.
Повтор шапки в отчётах на СКД
В отчётах на системе компоновки данных шапка таблицы формируется автоматически по настройкам отчёта, и прямого свойства «повторять при печати» у пользователя нет. Однако платформа при выводе результата СКД в табличный документ, как правило, сама назначает повторяющиеся строки для заголовков таблицы — проверить это можно через предварительный просмотр печати.
Если заголовок не повторяется (такое встречается в нестандартных макетах СКД или при программном выводе результата), решение — задать повтор после формирования: получить результат отчёта в табличный документ и назначить свойство ПовторятьПриПечатиСтроки на строки, где выведена шапка. Для отчётов с собственным макетом СКД повтор настраивается в самом макете тем же способом, что и для обычных макетов.
Сравнение способов
Подходит для типовых и собственных печатных форм; требует доступа к конфигуратору и обновления конфигурации
Гибкий вариант для собственных разработок и доработок через расширения; требует навыков программирования
Решает только задачу удобного просмотра, на печать не влияет
Для отчётов на СКД; штатно повтор обычно работает автоматически, при сбоях — программная доработка
Проверка результата и типичные ошибки
Проверять результат нужно именно в режиме предварительного просмотра печати с разбивкой на страницы, а не в обычном окне просмотра. Откройте «Файл» — «Печать» или предварительный просмотр и пролистайте документ: шапка должна появляться вверху каждой страницы, начиная со второй.
Как проверить результат
Шапка повторяется на каждой странице, начиная со второй
Шапка есть только на первой странице — повтор не назначен
Повторяются только строки заголовка таблицы
Повторяется лишний текст или шапка обрезана — неверно выделен диапазон строк
Разбивка и повтор совпадают с предпросмотром
В PDF разбивка отличается — проверьте настройки полей и масштаб
Частые вопросы
Шапка повторяется, но на второй странице она «съезжает» или обрезается. Что делать?
Проверьте, что в повторяющуюся область не попали лишние строки и что у строк шапки не задана автоотметка высоты с переменным содержимым. Задайте фиксированную высоту строк шапки в макете и убедитесь, что объединённые ячейки полностью входят в повторяющийся диапазон.
Можно ли повторять шапку без доступа к конфигуратору?
Да, если документ открыт в режиме редактирования табличного документа: выделите строки шапки и включите «Повторять при печати» в меню «Таблица». Но это действует только на текущий экземпляр документа. Для постоянного решения нужны доработка макета, расширение или внешняя печатная форма.
Почему в отчёте на СКД шапка не повторяется, хотя в других отчётах повторяется?
Чаще всего дело в собственном макете СКД или программном выводе результата, где повтор не назначен. Проверьте, используется ли в отчёте свой макет, и при программном формировании добавьте назначение свойства ПовторятьПриПечатиСтроки после вывода результата.
Как повторять не только шапку, но и, например, итоговую строку на каждой странице?
Штатно повторяться может только область в начале документа (строки сверху). Повтор «подвала» на каждой странице напрямую не поддерживается; такие задачи решают программно — через проверку вывода, ручную вставку разрывов страниц и повторный вывод нужных областей.
Влияет ли настройка повтора на выгрузку в Excel?
Нет, свойство повтора при печати работает внутри механизмов печати 1С. При сохранении табличного документа в Excel шапка останется только в начале таблицы; повтор на страницах в Excel настраивается уже средствами самого Excel («Печать заголовков»).
Что важно запомнить
Повтор шапки на каждой странице включается свойством «Повторять при печати» для области строк — в макете, в режиме редактирования документа или программно через ПовторятьПриПечатиСтроки. Фиксация на экране — отдельный механизм, на печать не влияющий. Проверяйте результат только в предварительном просмотре печати, а доработки типовых конфигураций выполняйте через расширения.