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

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

Как в 1С сделать нумерацию страниц

Как настроить нумерацию страниц в 1С: макеты печатных форм, колонтитулы, параметры ТабличныйДокумент, вывод номера страницы из кода и через настройки печати.

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

Выбор способа зависит от того, где именно формируется документ. Если печатная форма собирается из макета в конфигураторе, номер страницы обычно вставляют как параметр в секцию подвала. Если документ формируется целиком кодом или нужен номер в колонтитуле на каждом листе автоматически, используют свойства объекта «ТабличныйДокумент».

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

Способы нумерации страниц в 1С: что выбрать

Перед настройкой определите, какой сценарий у вас реализован. От этого зависит и инструмент, и объём работ.

Колонтитулы табличного документа — универсальный способ. Платформа сама подставляет номер страницы при печати и предварительном просмотре. Подходит для любых документов, формируемых программно.

Параметр в макете — номер выводится в специальной области (например, «Подвал» или «НумерацияСтраниц»), которая повторяется на каждом листе за счёт свойства «Повторять при печати». Требует доработки макета и кода формирования.

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

Сравнение вариантов

Колонтитулы табличного документа

Номер ставится автоматически на каждом листе. Нужен доступ к коду формирования печатной формы или общему модулю печати.

Параметр в макете

Полный контроль над оформлением номера (шрифт, рамка, текст «Лист №»). Требует доработки макета и кода, сложнее сопровождать.

Настройка в диалоге печати

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

Нумерация через колонтитулы табличного документа

Это основной способ для программно формируемых печатных форм. У объекта «ТабличныйДокумент» есть свойства ВерхнийКолонтитул и НижнийКолонтитул, содержащие текст левой, центральной и правой части колонтитула, а также шаблоны подстановки.

Для вывода номера страницы используются шаблоны: &[Страница] — номер текущей страницы, &[СтраницВсего] — общее количество страниц. Пример настройки нижнего колонтитула:

ТабДок.НижнийКолонтитул.Выводить = Истина;

ТабДок.НижнийКолонтитул.ТекстСправа = "Страница &[Страница] из &[СтраницВсего]";

ТабДок.НижнийКолонтитул.НачальнаяСтраница = 1;

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

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

Нумерация через параметр макета печатной формы

Если номер страницы должен быть частью оформления — например, «Лист № 3» в рамке внизу листа, — используют область макета с параметром. В конфигураторе откройте макет печатной формы, создайте именованную область (например, «НомерСтраницы») и поместите в ячейку параметр, например [НомерЛиста], с типом «Параметр» в свойствах ячейки.

Чтобы область повторялась на каждом листе, в свойствах табличного документа или при выводе используют механизм повторяющихся областей: метод УстановитьОбластьПечати или свойство ПовторятьПриПечатиСтроки/Колонки у макета. В простейшем варианте нижний колонтитул всё равно удобнее, но параметр макета даёт свободу оформления.

Номер текущей страницы в коде получают через свойство табличного документа ТабДок.КоличествоСтраниц() после вывода очередной порции данных либо вычисляют по высоте. На практике чаще комбинируют: область с параметром выводится при формировании, а фактический номер подставляется при разбиении на страницы.

Нумерация без доработки конфигурации

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

В диалоге задайте текст колонтитула с шаблоном номера страницы — те же подстановки &[Страница] работают и здесь. После этого распечатайте документ или сохраните его в PDF.

Ограничение способа: настройка действует на текущий сформированный документ. При следующем формировании печатной формы колонтитул нужно включать заново. Для регулярной печати пронумерованных документов это неудобно — в таком случае лучше один раз доработать код формирования.

Нумерация во внешних печатных формах и расширениях

Для типовых конфигураций (Бухгалтерия предприятия, Управление торговлей, Зарплата и управление персоналом) правильный способ добавить нумерацию — внешняя печатная форма или расширение. Внешняя печатная форма подключается через справочник «Дополнительные отчеты и обработки» и не меняет типовой код.

В модуле внешней печатной формы вы формируете табличный документ по собственному макету и в конце процедуры добавляете колонтитул с шаблоном номера страницы — точно так же, как описано выше. При обновлении типовой конфигурации ваша форма продолжит работать.

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

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

После настройки сформируйте документ, который гарантированно занимает несколько страниц, и откройте предварительный просмотр. Проверьте: номер виден на каждом листе, нумерация начинается с нужного числа, текст колонтитула не перекрывается содержимым документа.

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

Типичные ошибки
01
Установка колонтитула до заполнения табличного документа с последующим его пересозданием — настройка теряется. Устанавливайте колонтитул в самом конце формирования.
02
Использование амперсанда без квадратных скобок: текст '&Страница' выведется как есть. Правильный шаблон — &[Страница].
03
Проверка нумерации только на первой странице: шаблон &[СтраницВсего] и разрывы страниц видны только в просмотре целиком или при печати.
04
Игнорирование ориентации и полей: при смене ориентации на альбомную колонтитул может обрезаться, если поля слишком малы.
Контрольные точки

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

Номер на каждом листе
Норма

Номер присутствует на всех страницах предварительного просмотра

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

Номер только на первой странице или отсутствует

Общее число страниц
Норма

Значение 'из N' совпадает с фактическим количеством листов

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

Число не подставлено, виден шаблон как текст

Положение колонтитула
Норма

Текст колонтитула не перекрывает данные документа

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

Номер наезжает на таблицу или обрезан краем листа

FAQ

Можно ли начать нумерацию не с первой страницы, а, например, с третьей?

Да. У колонтитула табличного документа есть свойство НачальнаяСтраница — задайте ему нужное стартовое значение. Если первые листы вообще не должны содержать номер, такие документы обычно формируют отдельными табличными документами: титульную часть без колонтитула, основную — с нумерацией.

Почему вместо номера страницы печатается текст «&[Страница]»?

Шаблон подставляется только в колонтитулах табличного документа. Если вы поместили этот текст в обычную ячейку макета, он выведется как строка. В ячейке макета используйте параметр и заполняйте его из кода, а шаблоны оставьте для колонтитулов.

Как вывести номер страницы в формате «Лист 3 из 10»?

Используйте в тексте колонтитула оба шаблона: «Лист &[Страница] из &[СтраницВсего]». Текст можно разместить слева, по центру или справа через свойства ТекстСлева, ТекстВЦентре и ТекстСправа соответственно.

Сохранится ли нумерация при сохранении документа в PDF или Excel?

При сохранении в PDF через стандартные средства платформы колонтитулы обычно переносятся корректно. При сохранении в Excel (XLS) колонтитулы могут не переноситься или переноситься с ограничениями — проверяйте итоговый файл перед отправкой контрагенту.

Можно ли добавить нумерацию в типовую печатную форму, не снимая конфигурацию с поддержки?

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

Как убрать номер страницы с первого листа, оставив на остальных?

Штатного свойства «не выводить на первой странице» у колонтитула нет. Практическое решение — формировать первый лист отдельным табличным документом без колонтитула, а остальные страницы — вторым документом с колонтитулом и НачальнаяСтраница = 2, затем выводить их последовательно.

Итог

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

Нумерация страниц в 1С делается через колонтитулы табличного документа с шаблонами &[Страница] и &[СтраницВсего], через параметр макета или вручную в диалоге печати. Для типовых конфигураций безопаснее использовать внешнюю печатную форму или расширение. Результат всегда проверяйте в предварительном просмотре на многостраничном документе.