Подвал печатной формы в 1С: колонтитулы, области и вывод из кода
Содержание
Подвал в печатной форме 1С делают двумя разными механизмами, и путать их не нужно. Сквозную надпись на каждом листе — номер страницы, дату, название фирмы — задают через нижний колонтитул табличного документа. Итоги, подписи и реквизиты в конце документа — через именованную область с именем Подвал в макете. Выбор между ними решает, появится подвал на каждой странице или только в самом низу.
Ниже — как настроить подвал в обоих случаях, как вывести его из кода, добавить логотип и подпись, и почему он иногда печатается не там, где ждёшь. Всё — для платформы 8.3 с интерфейсом «Такси».
Колонтитул или область: что выбрать под задачу
Оба варианта живут в одном макете, но ведут себя противоположно.
- 🔁 Нижний колонтитул печатается в поле каждого листа, внизу под основным содержимым. Его видно на странице 1, 2 и 50 — текст один и тот же. Это служебная зона: номер листа, «Лист X из Y», дата печати, имя пользователя.
- 📄 Область
Подвал— обычные строки макета, которые выводятся один раз, когда закончились данные. Здесь место итогам, строке «Руководитель ______», расшифровке подписи, печати.
Если подпись и сумма «Итого» должны стоять в самом конце — это область. Если номер страницы нужен на каждом листе — это колонтитул. Их можно использовать вместе: колонтитул с нумерацией плюс область с подписями.
Подвал в макете. Выводится последней, после всех данных.Таблица. Колонтитул для табличных строк не подходит.Нижний колонтитул табличного документа
Колонтитул настраивают в конфигураторе прямо в открытом макете-табличном документе: меню Таблица → Колонтитулы. Откроется окно с вкладками верхнего и нижнего колонтитула.
У нижнего колонтитула три поля — слева, по центру и справа. В каждое можно вписать текст и вставить служебные элементы кнопками панели:
- Поставьте галку Выводить колонтитулы, иначе ничего не напечатается.
- Перейдите на вкладку нижнего колонтитула.
- В поле по центру кнопкой вставьте номер страницы, рядом — число страниц. Получится «Лист 1 из 3».
- В поле слева напишите постоянный текст, например название организации.
- При необходимости задайте шрифт кнопкой со значком шрифта и укажите, с какой страницы начинать нумерацию.
Служебные элементы (номер листа, дата, время, имя файла) вставляются именно кнопками диалога, а не ручным набором. Так платформа подставит актуальные значения при печати.
Высота поля под колонтитул берётся из полей страницы. Если колонтитул наезжает на данные или, наоборот, стоит слишком высоко, увеличьте нижнее поле в параметрах страницы — платформа отведёт колонтитулу больше места у края листа. Сам колонтитул всегда располагается в этом поле, вне области данных, поэтому с таблицей он не конфликтует.
В режиме 1С:Предприятие пользователь может подправить колонтитулы готового документа через Главное меню → Файл → Параметры страницы — там те же поля. Но если вы разрабатываете форму, задавайте колонтитул в макете: он сохранится для всех.
Из кода у табличного документа колонтитул доступен как свойство:
ТабДок = Новый ТабличныйДокумент;
ТабДок.НижнийКолонтитул.Выводить = Истина;
ТабДок.НижнийКолонтитул.ТекстСлева = "ООО «Ромашка»";
ТабДок.НижнийКолонтитул.ТекстВЦентре = "Документ сформирован в 1С";
ТабДок.НижнийКолонтитул.ТекстСправа = Формат(ТекущаяДата(), "ДЛФ=D");
Динамическую нумерацию страниц удобнее оставить на макет: там элемент «номер страницы» ставится кнопкой, и его не приходится собирать вручную в коде.
Именованная область «Подвал» в макете
Область — это основной способ сделать подвал под итоги и подписи. Создаётся в конфигураторе за три действия:
- Откройте макет печатной формы (табличный документ).
- Выделите строки, которые станут подвалом (например, три строки под «Итого», подпись руководителя и бухгалтера).
- Назначьте имя:
Таблица → Имена → Назначить имяили сочетаниеCtrl+Shift+N. Введите имя латиницей или кириллицей, напримерПодвал.
В ячейки подвала вписывают текст и параметры — значения, которые подставятся из кода. Чтобы ячейка стала параметром, в её свойствах заполнения выбирают «Параметр» и задают имя, например РуководительФИО.
Имя области и имя параметра — разные вещи. Область получаете через ПолучитьОбласть, а значения кладёте в Параметры этой области. Если перепутать, подвал выведется пустым.
Отдельно стоит знать про повтор строк. Если таблица длинная и переносится на несколько листов, итоговую строку или заголовок можно закрепить, чтобы они печатались на каждой странице — это команда повтора строк при печати в меню Таблица. Это не колонтитул и не область Подвал, а третий механизм специально для табличных строк.
Подвал в отчёте на системе компоновки данных
В отчётах на СКД подвал групп формируется автоматически из ресурсов — агрегатных полей вроде суммы или количества. Их задают на вкладке Ресурсы схемы компоновки данных: отмечают поле и выбирают выражение, обычно Сумма().
Где именно встанут итоги, управляет расположение итогов:
- В настройках отчёта (
Настройки → вкладка «Другие настройки») есть параметр расположения общих итогов по вертикали. Значение «Конец» ставит подвал с итогами внизу, «Начало» — сверху, «Нет» — убирает. - Итоги по каждой группировке располагаются относительно её данных так же — в начале или в конце группы.
Подвал бывает двух уровней. Подвал всей компоновки — это общие итоги, они выводятся в самом конце отчёта. Подвал группировки — итоги по каждой группе (по складу, по контрагенту), они встают в конце каждой группы. Уровень выбирается тем, где настроено расположение: в целом отчёте или в конкретной группировке структуры.
Если нужен не просто итог, а свой оформленный подвал (например, с текстом и подписью), на вкладке Макеты схемы компоновки добавляют макет для нужной области и привязывают его к группировке или к отчёту целиком. Так в подвал СКД попадает произвольная вёрстка, а не только числа ресурсов.
Как вывести подвал из кода
Когда печатная форма собирается программно, подвал выводят той же командой, что и остальные области. Порядок всегда один: получить макет → получить область → заполнить параметры → вывести.
Макет = Документ.ПолучитьМакет("ПечатьДокумента");
// тело документа выводим выше...
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.РуководительФИО = "Иванов И. И.";
ОбластьПодвал.Параметры.БухгалтерФИО = "Петрова А. С.";
ОбластьПодвал.Параметры.Основание = "Договор № 12";
ТабДок.Вывести(ОбластьПодвал);
Ключевые моменты:
ПолучитьМакетберут у того объекта, которому принадлежит макет. Если макет лежит в документе, зовут у менеджера документа; если в общих макетах — черезПолучитьОбщийМакет.Вывестидобавляет область в конец табличного документа. Подвал выводят последним, после всех строк данных.- Все параметры, которые вы объявили в ячейках подвала, нужно заполнить. Незаполненный параметр оставит ячейку пустой — это самая частая причина «пропавшего» текста.
Если подвал должен прижиматься к низу листа независимо от объёма данных, одной области мало — для этого используют именно нижний колонтитул, он всегда в поле страницы.
Иногда подвал с подписями хотят печатать на отдельном листе — например, когда это лист согласования. Тогда перед выводом области вставляют принудительный разрыв страницы:
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТабДок.Вывести(ОбластьПодвал);
Метод ВывестиГоризонтальныйРазделительСтраниц переносит всё, что выводится дальше, на новую печатную страницу. Без него область просто продолжит текущий лист.
Логотип, печать и подпись в подвале
Для типовых конфигураций (Бухгалтерия 3.0 и другие) логотип, факсимиле печати и подписи не программируют — их загружают в карточку организации. В БП 3.0 это раздел Главное → Организации, в карточке — закладка «Логотип и печать». Туда загружают картинку логотипа, факсимильную печать и подписи руководителя и бухгалтера, а типовые печатные формы подставляют их сами.
Факсимиле печати и подписи на счёте и акте допустимы по соглашению сторон. На счёте-фактуре такой трюк не работает — там нужна живая подпись или электронная подпись по формату.
Для собственного макета картинку добавляют вручную. В конфигураторе в нужную область макета вставляют объект-рисунок (Таблица → Рисунки → Рисунок), рисуют прямоугольник и в свойстве Картинка выбирают изображение из коллекции картинок макета.
Чтобы подставить логотип динамически — скажем, разный для каждой организации — его выводят из кода. Картинку берут из хранилища (реквизита справочника) и присваивают рисунку табличного документа по имени:
ТабДок.Рисунки.Лого.Картинка = Новый Картинка(ДвоичныеДанныеЛоготипа);
Здесь Лого — имя объекта-рисунка, заданное в макете. Следите за пропорциями: если растянуть узкий логотип на широкую ячейку, он исказится. Лучше подогнать размер рисунка под реальные пропорции файла.
Подпись и расшифровку в подвале обычно верстают строкой из объединённых ячеек: слева должность, по центру линия для подписи, справа фамилия с инициалами. Фамилию делают параметром, чтобы подставлять ответственного из документа, а линию подписи оставляют статичной — это пустая нижняя граница ячейки. Факсимиле подписи, если оно разрешено, вставляют как отдельный рисунок поверх этой линии.
Почему подвал печатается не так
Большинство проблем с подвалом — это либо пустые параметры, либо путаница колонтитула и области. Разберём по симптомам.
.Параметры.Подвал, она выводится один раз. Для повтора на каждом листе перенесите надпись в нижний колонтитул.Ещё один тонкий момент: ПолучитьОбласть ищет имя точно, с учётом регистра и пробелов. Если область названа Подвал_Итог, а в коде просите Подвал, платформа выдаст ошибку, что область не найдена.
Как править подвал в типовой форме, не трогая конфигурацию
Типовую печатную форму (её макет) нельзя править напрямую без снятия с поддержки — иначе обновления будут вставать с конфликтами. Правильный приём — расширение конфигурации. Расширения появились в платформе 8.3.6 и предназначены ровно для таких задач.
Порядок такой:
- Откройте
Конфигурация → Расширения конфигурации, создайте новое расширение. - В расширение добавьте нужный объект — печатную форму или общий макет, который хотите изменить (платформа заимствует его из основной конфигурации).
- Отредактируйте в расширении макет: добавьте область
Подвал, строку подписи, логотип. - Сохраните и обновите конфигурацию базы.
Основная конфигурация остаётся на поддержке и спокойно обновляется, а ваши правки подвала живут отдельно в расширении.
Если нужна совсем своя печатная форма, а не правка типовой, её удобно сделать как внешнюю печатную форму и подключить через механизм дополнительных обработок — тогда менять можно без расширения вовсе.
Частые вопросы
Чем подвал отличается от нижнего колонтитула?
Подвал — это строки макета, которые выводятся один раз в конце документа. Для номеров страниц берут колонтитул, для итогов и подписей — область.Как сделать, чтобы подпись печаталась внизу каждого листа?
Таблица → Колонтитулы. Область Подвал для этого не подходит — она выводится только один раз.Почему подвал выводится пустым?
Параметры области.