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