При разработке печатных форм в среде 1С:Предприятие часто возникает необходимость вывода дополнительной информации в верхний или нижний колонтитул. Это может быть номер документа, дата, или автоматическая нумерация страниц. Разберем детально, как правильно реализовать эту задачу, чтобы настройки гарантированно отображались при печати.
Важнейший нюанс при работе с колонтитулами заключается в последовательности выполнения кода. Многие разработчики сталкиваются с тем, что их настройки игнорируются или сбрасываются. Причина кроется в жизненном цикле объекта ТабличныйДокумент.
Золотое правило: программный код настройки колонтитулов необходимо размещать строго после того, как в ТабличныйДокумент были выведены все области макета (методы Вывести() или Присоединить()). Если применить настройки до вывода областей, платформа может пересчитать параметры документа, что приведет к потере ваших установок.
Давайте рассмотрим, как правильно инициализировать параметры колонтитулов. Сначала нам необходимо убедиться, что колонтитул разрешен к выводу, а затем задать его текстовое наполнение и визуальные свойства.
// Предположим, что ТабДокумент уже сформирован
ТабДокумент.НижнийКолонтитул.Выводить = Истина;
ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 1;
ТабДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
ТабДокумент.НижнийКолонтитул.Шрифт = Новый Шрифт("Arial", 10);
ТабДокумент.НижнийКолонтитул.ТекстСлева = "Наш заголовок документа";
ТабДокумент.РазмерКолонтитулаСнизу = 30;
Здесь мы использовали свойство РазмерКолонтитулаСнизу, которое определяет отступ от края листа. Если не задать этот размер, текст колонтитула может наложиться на основной текст документа, что сделает печатную форму нечитаемой.
Одной из частых задач является вывод номера документа, даты и данных о страницах (например, «1 из 5»). Для этой цели 1С предоставляет специальные встроенные макросы, которые платформа заменяет на актуальные значения непосредственно перед печатью.
Для вставки текущего номера страницы используйте макрос [&НомерСтраницы], а для общего количества страниц — [&СтраницВсего]. Посмотрим, как собрать это в одну строку:
// Формирование текста с номером, датой и нумерацией страниц
СтрокаКолонтитула = "" + Номер + " от " + Формат(Дата, "ДЛФ=Д") + " стр. [&НомерСтраницы] из [&СтраницВсего]";
ТабличныйДокумент.ВерхнийКолонтитул.ТекстВЦентре = СтрокаКолонтитула;
ТабличныйДокумент.ВерхнийКолонтитул.Выводить = Истина;
Обратите внимание на использование конкатенации строк. Вы можете гибко комбинировать любые переменные, доступные в контексте вашего отчета, с этими макросами.
При настройке колонтитулов стоит учитывать следующие моменты:
Шрифт, применяются ко всей области колонтитула целиком. Вы не сможете выделить жирным только слово «Дата» внутри одной секции. Если требуется сложное форматирование, рассмотрите возможность использования «областей макета» в качестве колонтитулов.Показать() для отображения документа, настройки колонтитула будут применены к этому экземпляру. Убедитесь, что код выполняется до вызова метода отображения.ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(), чтобы жестко контролировать визуальное оформление каждой страницы.Подводя итог: всегда выполняйте настройку колонтитулов в самом конце формирования табличного документа. Это гарантирует, что ваши параметры оформления не будут затерты при добавлении строк или пересчете параметров печати платформой 1С.