Как сделать колонтитулы в печатных формах и отчётах 1С
Содержание
Колонтитулы в 1С — это верхняя и нижняя строки, которые повторяются на каждой печатной странице табличного документа: отчёта, счёта, акта, ТОРГ-12 или любой другой печатной формы. Чтобы их добавить, программист не нужен — текст, дату и номер страницы задают прямо перед печатью в окне Параметры страницы.
Если колонтитул должен подставляться автоматически в типовой форме (например, название организации и период в каждом отчёте), это настраивают через встроенный язык — свойствами ВерхнийКолонтитул и НижнийКолонтитул табличного документа. Ниже разберём оба пути: ручной для разовой печати и программный для постоянного вывода.
Где в 1С находятся колонтитулы
Колонтитул — это не свойство документа или справочника. Это свойство табличного документа (ТабличныйДокумент) — того объекта, в который 1С выводит любую печатную форму и любой отчёт. Поэтому настройка колонтитулов живёт не в карточке счёта, а в окне, которое открывается при печати.
Важная деталь: в обычном режиме редактирования и на экране колонтитулы по умолчанию не отображаются. Их видно в предпросмотре печати, на бумаге и в сохранённом PDF. Если вы ищете колонтитул в открытом табличном документе и не находите — это нормально, он появится при печати.
Поэтому проверять колонтитул нужно именно в предпросмотре печати, а не в окне редактирования. Предпросмотр открывается из главного меню табличного документа (раздел Файл → предварительный просмотр) либо кнопкой на панели печати. Он показывает страницы так, как они уйдут на принтер, с разбивкой по листам — сразу видно, на какой строке начинается вторая страница и как лёг колонтитул.
В 1С есть только два колонтитула — верхний и нижний. Боковых колонтитулов в платформе нет. Если нужно, чтобы шапка таблицы повторялась на каждом листе сбоку или сверху области данных, это делается не колонтитулом, а повторяющимися строками — об этом в отдельном разделе ниже.
Верхний и нижний колонтитул: что в них обычно помещают
Каждый колонтитул — это одна текстовая строка, которую можно выровнять по левому краю, по центру или по правому краю и оформить своим шрифтом. В неё помещают служебную информацию, которая должна быть на каждом листе.
| Колонтитул | Что помещают | Пример |
|---|---|---|
| 🔝 Верхний | Название организации, период, дата формирования | ООО «Ромашка» — отчёт за октябрь |
| 🔻 Нижний | Номер страницы, исполнитель, строка для подписи | Страница [&Страница] из [&Страниц] |
Для разных документов наполнение отличается:
- 📄 Счёт, акт, накладная — в нижний колонтитул часто ставят номер страницы и ФИО ответственного, чтобы при печати на нескольких листах не перепутать комплект.
- 📊 Длинный отчёт (ОСВ, анализ счёта) — в верхний колонтитул выносят название отчёта и период, чтобы на любой странице было понятно, что это за документ.
- 🗂 Реестр документов — верхний колонтитул с названием организации, нижний со сквозной нумерацией.
- 📑 Договор или многостраничное положение — нижний колонтитул с номером листа и общим числом листов, чтобы комплект нельзя было пересобрать в неверном порядке.
Чем длиннее документ, тем важнее колонтитул: на одностраничном счёте он почти не нужен, а в отчёте на 15 листов нумерация и название на каждой странице экономят время при сверке и подшивке.
Текст колонтитула можно оформить: выбрать шрифт, размер и начертание, задать выравнивание по левому краю, по центру или по правому. Высота поля под колонтитул берётся из полей страницы — если место мало, строка обрежется, поэтому под нужный колонтитул оставляют соответствующее верхнее или нижнее поле.
В 1С колонтитул хранит только текст. Вставить логотип картинкой прямо в колонтитул нельзя — для этого изображение размещают в самой печатной форме как рисунок в повторяющейся области.
Как добавить колонтитул вручную перед печатью
Это самый быстрый способ для разовой печати любого отчёта или формы. Программировать ничего не нужно.
- Сформируйте нужную печатную форму или отчёт — откроется окно табличного документа.
- Откройте
Параметры страницы. Команда находится в главном меню табличного документа, в разделеТаблица(в части версий платформы — в разделеФайл). - Найдите блок настроек колонтитулов. Включите вывод верхнего и/или нижнего колонтитула соответствующим флажком.
- Впишите текст. Там же есть кнопки для вставки готовых полей — номера страницы, даты, времени (они вставляются как служебные макросы, см. следующий раздел).
- При необходимости задайте шрифт и выравнивание текста — по левому краю, по центру или по правому.
- Нажмите
ОКи отправьте документ на печать или откройте предпросмотр, чтобы проверить результат.
Настройка колонтитула, заданная таким способом, живёт в этом конкретном табличном документе. Если закрыть его и сформировать печатную форму заново, колонтитул придётся задать снова. Чтобы он появлялся всегда, нужен программный способ.
Дата, время и номер страницы: встроенные поля
В тексте колонтитула нельзя написать «страница 1» руками — номер должен меняться автоматически. Для этого 1С понимает специальные макросы в квадратных скобках со знаком &:
| Макрос | Что подставляет |
|---|---|
[&Страница] | Номер текущей страницы |
[&Страниц] | Общее число страниц в документе |
[&Дата] | Дата печати |
[&Время] | Время печати |
Пишете их прямо в тексте колонтитула, вперемешку с обычными словами. Например, строка нижнего колонтитула:
Лист [&Страница] из [&Страниц] Дата печати: [&Дата]
На печати это превратится в «Лист 1 из 4 … Дата печати: 07.10.2026» и так далее на каждом листе. Числа подставятся сами: на первом листе — 1, на последнем — столько, сколько страниц реально получилось после разбивки.
Макросы можно комбинировать с обычным текстом в любом порядке, а также разносить по верхнему и нижнему колонтитулу. Частый вариант — дату вынести в верхний колонтитул, а нумерацию оставить в нижнем.
Нумерация страниц. Сквозная нумерация — это как раз пара [&Страница] и [&Страниц]. Если нужно, чтобы отсчёт начинался не с единицы (например, документ — продолжение другого), начальный номер страницы задают в том же окне Параметры страницы — ищите поле начального номера рядом с настройками колонтитулов.
Если в колонтитуле вместо номера печатается буквально текст [&Страница], значит, макрос введён с опечаткой. Проверьте квадратные скобки и знак & — без них 1С воспринимает это как обычный текст.
Подставить в колонтитул произвольные данные из базы — конкретного контрагента, сумму, выбранный период — макросами нельзя. Для этого нужен встроенный язык.
Динамические колонтитулы через встроенный язык
Если колонтитул должен формироваться сам — с данными из базы и на каждой печати, — его задают в коде, который строит табличный документ. Это делает разработчик в модуле печатной формы или отчёта.
У табличного документа есть свойства ВерхнийКолонтитул и НижнийКолонтитул. У каждого — свой текст, флаг вывода и шрифт:
ТабДок = Новый ТабличныйДокумент;
// ... здесь вывод областей макета в ТабДок ...
ТабДок.ВерхнийКолонтитул.Выводить = Истина;
ТабДок.ВерхнийКолонтитул.Текст =
"ООО «Ромашка» — отчёт за " + Формат(ПериодОтчета, "ДФ=MMMM yyyy");
ТабДок.НижнийКолонтитул.Выводить = Истина;
ТабДок.НижнийКолонтитул.Текст = "Страница [&Страница] из [&Страниц]";
ТабДок.НижнийКолонтитул.Шрифт = Новый Шрифт("Arial", 8);
ТабДок.Напечатать();
Здесь данные из базы (переменная ПериодОтчета) подставляются в текст обычным сложением строк, а служебные макросы вроде [&Страница] работают так же, как при ручной настройке.
Если формируете колонтитул на сервере, для текущей даты используйте серверное время (ТекущаяДата() в серверном контексте). Дата с клиента и дата с сервера могут различаться — для подписи документа это важно.
Такой код задаёт колонтитул для одного конкретного табличного документа перед его показом или печатью. В типовой конфигурации место для него — процедура, которая собирает печатную форму (её удобнее дорабатывать расширением конфигурации, не меняя типовой код).
Кроме текста и шрифта у колонтитула есть высота — её задают, когда стандартного места под строку не хватает или, наоборот, нужно поджать поле. Если высоту не трогать, платформа подбирает её под размер шрифта. Текст и флаг вывода задают для верхнего и нижнего колонтитула независимо: можно вывести только нижний с нумерацией, оставив верхний пустым.
Колонтитулы в отчётах на системе компоновки данных
Отчёт на СКД тоже выводит результат в табличный документ, поэтому колонтитулы к нему применяются по тем же правилам. В самой схеме компоновки отдельной настройки колонтитулов нет.
Есть два пути:
- Разово. Сформируйте отчёт, откройте
Параметры страницыу готового табличного документа и задайте колонтитул вручную — как для любой печати. Подходит, когда колонтитул нужен один раз. - Постоянно. Разработчик обрабатывает результат компоновки в модуле отчёта: после того как результат выведен в табличный документ, выставляет ему свойства
ВерхнийКолонтитулиНижнийКолонтитултем же кодом, что и выше. Тогда колонтитул будет в каждом экземпляре отчёта.
Для стандартного вывода СКД, который формируется автоматически, удобнее именно второй путь — иначе настройку придётся повторять при каждом запуске.
Повтор шапки таблицы на каждой странице
Это частая задача, которую ошибочно ищут среди колонтитулов: сделать так, чтобы шапка большой таблицы (названия колонок) повторялась на каждом листе. Колонтитул для этого не подходит — он выводит только текст, а не строки таблицы.
Нужный инструмент — повторяющиеся строки и колонки:
- В окне
Параметры страницыесть настройка повтора — указываете, какие строки печатать на каждой странице сверху, а какие колонки — слева. - Программно у табличного документа за это отвечают свойства
ПовторятьПриПечатиСтрокииПовторятьПриПечатиКолонки— в них задают диапазон строк или колонок, которые дублируются на каждом листе.
Так шапка отчёта из нескольких строк окажется наверху каждой страницы, а колонтитул останется для служебной информации — названия и нумерации.
На практике эти два механизма работают вместе: повторяющиеся строки держат «настоящую» шапку таблицы с названиями колонок, а верхний колонтитул поверх неё выводит название отчёта и период. Разделять их стоит именно так — колонтитул не умеет показывать данные ячеек, а повторяющиеся строки не умеют автоматически нумеровать страницы.
Типичные ошибки при настройке колонтитулов
Большинство проблем сводится к тому, что колонтитул «не печатается» или выглядит не так, как в окне настройки.
Параметры страницы, проверьте, что вывод включён, и увеличьте верхнее/нижнее поле страницы — колонтитулу нужно место.&: [&Страница], [&Страниц]. Пробелы внутри скобок не ставятся.Параметры страницы или уменьшите шрифт колонтитула.Частые вопросы
Можно ли вставить логотип или картинку в колонтитул 1С?
Как убрать колонтитул с первой (титульной) страницы?
Попадёт ли колонтитул в PDF и Excel при сохранении?
Можно ли сделать разные колонтитулы на чётных и нечётных страницах?
[&Страница].Почему номер страницы начинается не с единицы?
Параметры страницы задан начальный номер страницы, отличный от 1, либо документ печатается как продолжение другого. Проверьте поле начального номера рядом с настройками колонтитулов.