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