Подвал печатной формы в 1С: колонтитулы, области и вывод из кода

· 10 мин

Содержание

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

Ниже — как настроить подвал в обоих случаях, как вывести его из кода, добавить логотип и подпись, и почему он иногда печатается не там, где ждёшь. Всё — для платформы 8.3 с интерфейсом «Такси».

Колонтитул или область: что выбрать под задачу

Оба варианта живут в одном макете, но ведут себя противоположно.

  • 🔁 Нижний колонтитул печатается в поле каждого листа, внизу под основным содержимым. Его видно на странице 1, 2 и 50 — текст один и тот же. Это служебная зона: номер листа, «Лист X из Y», дата печати, имя пользователя.
  • 📄 Область Подвал — обычные строки макета, которые выводятся один раз, когда закончились данные. Здесь место итогам, строке «Руководитель ______», расшифровке подписи, печати.

Если подпись и сумма «Итого» должны стоять в самом конце — это область. Если номер страницы нужен на каждом листе — это колонтитул. Их можно использовать вместе: колонтитул с нумерацией плюс область с подписями.

Что делать подвал: колонтитулом или областью?

Нижний колонтитул табличного документа

Колонтитул настраивают в конфигураторе прямо в открытом макете-табличном документе: меню Таблица → Колонтитулы. Откроется окно с вкладками верхнего и нижнего колонтитула.

У нижнего колонтитула три поля — слева, по центру и справа. В каждое можно вписать текст и вставить служебные элементы кнопками панели:

  1. Поставьте галку Выводить колонтитулы, иначе ничего не напечатается.
  2. Перейдите на вкладку нижнего колонтитула.
  3. В поле по центру кнопкой вставьте номер страницы, рядом — число страниц. Получится «Лист 1 из 3».
  4. В поле слева напишите постоянный текст, например название организации.
  5. При необходимости задайте шрифт кнопкой со значком шрифта и укажите, с какой страницы начинать нумерацию.

Служебные элементы (номер листа, дата, время, имя файла) вставляются именно кнопками диалога, а не ручным набором. Так платформа подставит актуальные значения при печати.

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

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

Из кода у табличного документа колонтитул доступен как свойство:

ТабДок = Новый ТабличныйДокумент;
ТабДок.НижнийКолонтитул.Выводить = Истина;
ТабДок.НижнийКолонтитул.ТекстСлева   = "ООО «Ромашка»";
ТабДок.НижнийКолонтитул.ТекстВЦентре = "Документ сформирован в 1С";
ТабДок.НижнийКолонтитул.ТекстСправа  = Формат(ТекущаяДата(), "ДЛФ=D");

Динамическую нумерацию страниц удобнее оставить на макет: там элемент «номер страницы» ставится кнопкой, и его не приходится собирать вручную в коде.

Именованная область «Подвал» в макете

Область — это основной способ сделать подвал под итоги и подписи. Создаётся в конфигураторе за три действия:

  1. Откройте макет печатной формы (табличный документ).
  2. Выделите строки, которые станут подвалом (например, три строки под «Итого», подпись руководителя и бухгалтера).
  3. Назначьте имя: Таблица → Имена → Назначить имя или сочетание Ctrl+Shift+N. Введите имя латиницей или кириллицей, например Подвал.

В ячейки подвала вписывают текст и параметры — значения, которые подставятся из кода. Чтобы ячейка стала параметром, в её свойствах заполнения выбирают «Параметр» и задают имя, например РуководительФИО.

Имя области и имя параметра — разные вещи. Область получаете через ПолучитьОбласть, а значения кладёте в Параметры этой области. Если перепутать, подвал выведется пустым.

Отдельно стоит знать про повтор строк. Если таблица длинная и переносится на несколько листов, итоговую строку или заголовок можно закрепить, чтобы они печатались на каждой странице — это команда повтора строк при печати в меню Таблица. Это не колонтитул и не область Подвал, а третий механизм специально для табличных строк.

Подвал в отчёте на системе компоновки данных

В отчётах на СКД подвал групп формируется автоматически из ресурсов — агрегатных полей вроде суммы или количества. Их задают на вкладке Ресурсы схемы компоновки данных: отмечают поле и выбирают выражение, обычно Сумма().

Где именно встанут итоги, управляет расположение итогов:

  • В настройках отчёта (Настройки → вкладка «Другие настройки») есть параметр расположения общих итогов по вертикали. Значение «Конец» ставит подвал с итогами внизу, «Начало» — сверху, «Нет» — убирает.
  • Итоги по каждой группировке располагаются относительно её данных так же — в начале или в конце группы.

Подвал бывает двух уровней. Подвал всей компоновки — это общие итоги, они выводятся в самом конце отчёта. Подвал группировки — итоги по каждой группе (по складу, по контрагенту), они встают в конце каждой группы. Уровень выбирается тем, где настроено расположение: в целом отчёте или в конкретной группировке структуры.

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

Как вывести подвал из кода

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

Макет = Документ.ПолучитьМакет("ПечатьДокумента");

// тело документа выводим выше...

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.РуководительФИО = "Иванов И. И.";
ОбластьПодвал.Параметры.БухгалтерФИО    = "Петрова А. С.";
ОбластьПодвал.Параметры.Основание       = "Договор № 12";
ТабДок.Вывести(ОбластьПодвал);

Ключевые моменты:

  • ПолучитьМакет берут у того объекта, которому принадлежит макет. Если макет лежит в документе, зовут у менеджера документа; если в общих макетах — через ПолучитьОбщийМакет.
  • Вывести добавляет область в конец табличного документа. Подвал выводят последним, после всех строк данных.
  • Все параметры, которые вы объявили в ячейках подвала, нужно заполнить. Незаполненный параметр оставит ячейку пустой — это самая частая причина «пропавшего» текста.

Если подвал должен прижиматься к низу листа независимо от объёма данных, одной области мало — для этого используют именно нижний колонтитул, он всегда в поле страницы.

Иногда подвал с подписями хотят печатать на отдельном листе — например, когда это лист согласования. Тогда перед выводом области вставляют принудительный разрыв страницы:

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(ОбластьПодвал);

Метод ВывестиГоризонтальныйРазделительСтраниц переносит всё, что выводится дальше, на новую печатную страницу. Без него область просто продолжит текущий лист.

Логотип, печать и подпись в подвале

Для типовых конфигураций (Бухгалтерия 3.0 и другие) логотип, факсимиле печати и подписи не программируют — их загружают в карточку организации. В БП 3.0 это раздел Главное → Организации, в карточке — закладка «Логотип и печать». Туда загружают картинку логотипа, факсимильную печать и подписи руководителя и бухгалтера, а типовые печатные формы подставляют их сами.

Факсимиле печати и подписи на счёте и акте допустимы по соглашению сторон. На счёте-фактуре такой трюк не работает — там нужна живая подпись или электронная подпись по формату.

Для собственного макета картинку добавляют вручную. В конфигураторе в нужную область макета вставляют объект-рисунок (Таблица → Рисунки → Рисунок), рисуют прямоугольник и в свойстве Картинка выбирают изображение из коллекции картинок макета.

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

ТабДок.Рисунки.Лого.Картинка = Новый Картинка(ДвоичныеДанныеЛоготипа);

Здесь Лого — имя объекта-рисунка, заданное в макете. Следите за пропорциями: если растянуть узкий логотип на широкую ячейку, он исказится. Лучше подогнать размер рисунка под реальные пропорции файла.

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

Почему подвал печатается не так

Большинство проблем с подвалом — это либо пустые параметры, либо путаница колонтитула и области. Разберём по симптомам.

Диагностика: выберите симптом

Ещё один тонкий момент: ПолучитьОбласть ищет имя точно, с учётом регистра и пробелов. Если область названа Подвал_Итог, а в коде просите Подвал, платформа выдаст ошибку, что область не найдена.

Как править подвал в типовой форме, не трогая конфигурацию

Типовую печатную форму (её макет) нельзя править напрямую без снятия с поддержки — иначе обновления будут вставать с конфликтами. Правильный приём — расширение конфигурации. Расширения появились в платформе 8.3.6 и предназначены ровно для таких задач.

Порядок такой:

  1. Откройте Конфигурация → Расширения конфигурации, создайте новое расширение.
  2. В расширение добавьте нужный объект — печатную форму или общий макет, который хотите изменить (платформа заимствует его из основной конфигурации).
  3. Отредактируйте в расширении макет: добавьте область Подвал, строку подписи, логотип.
  4. Сохраните и обновите конфигурацию базы.

Основная конфигурация остаётся на поддержке и спокойно обновляется, а ваши правки подвала живут отдельно в расширении.

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

Проверка подвала перед релизом
Выполнено: 0 / 6

Частые вопросы

Чем подвал отличается от нижнего колонтитула?
Колонтитул печатается в поле каждого листа и виден на всех страницах. Область Подвал — это строки макета, которые выводятся один раз в конце документа. Для номеров страниц берут колонтитул, для итогов и подписей — область.
Как сделать, чтобы подпись печаталась внизу каждого листа?
Перенесите её в нижний колонтитул через Таблица → Колонтитулы. Область Подвал для этого не подходит — она выводится только один раз.
Почему подвал выводится пустым?
Чаще всего в ячейках объявлены параметры, но в коде они не заполнены или имя параметра не совпадает. Сверьте имена в свойствах ячеек и в коллекции Параметры области.
Можно ли добавить подвал в типовую печатную форму?
Да, через расширение конфигурации: заимствуете макет в расширение и правите подвал там. Основная конфигурация остаётся на поддержке и обновляется без конфликтов.
Где в отчёте СКД настраивается подвал с итогами?
Итоги дают ресурсы на одноимённой вкладке схемы, а их положение задаёт расположение общих итогов в разделе других настроек: значение «Конец» ставит подвал внизу.