К статье
Практический материал

Отчеты и Аналитика · 9 мин

Как сделать подвал в 1С: отчёты и печатные формы

Как добавить подвал в 1С: итоги в отчёте СКД, подвал табличного документа в печатной форме, настройка в пользовательском режиме и через конфигуратор.

Под «подвалом» в 1С обычно понимают итоговую часть отчёта или печатной формы: строку «Итого» с суммами по колонкам, блок подписей в конце документа либо нижний колонтитул при печати. Способ создания подвала зависит от того, где именно он нужен: в отчёте на СКД, в макете печатной формы или в настройках страницы при выводе на принтер.

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

Ниже разобраны оба сценария: быстрый вариант для пользователя и полный вариант для разработчика, а также проверка результата и типичные ошибки, из-за которых итоги не выводятся или считаются неверно.

Определите, какой именно подвал вам нужен

Прежде чем что-то настраивать, важно различить три разные задачи, которые пользователи называют одним словом «подвал»:

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

Подвал-итоги в отчёте: настройка без программирования

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

В окне настроек перейдите на вкладку «Структура» (или «Группировки») и найдите строку «Общие итоги» либо включите флажок вывода итогов. Убедитесь, что у нужных числовых полей на вкладке «Выбранные поля» или «Ресурсы» задано выражение итога — обычно Сумма(...). Если ресурс не задан, итоговая строка появится, но колонка останется пустой.

Как включить итоги в отчёте (пользовательский режим)
  1. 1
    Откройте отчёт и нажмите «Ещё → Изменить вариант отчёта»
  2. 2
    Перейдите на вкладку «Структура» и убедитесь, что в дереве есть элемент «Общие итоги»; при отсутствии добавьте его через «Добавить»
  3. 3
    На вкладке «Выбранные поля» или «Ресурсы» проверьте, что числовые поля имеют агрегатную функцию Сумма()
  4. 4
    Сформируйте отчёт и проверьте, что внизу появилась строка «Итого» с суммами
  5. 5
    Сохраните вариант отчёта, чтобы настройка сохранилась для следующих запусков

Если нужен не только общий итог, но и подвалы по каждой группе (например, итог по каждому контрагенту), в структуре отчёта у соответствующей группировки включите вывод итогов — в СКД это делается автоматически при наличии ресурсов, итог по группировке выводится после её строк.

Подвал печатной формы через макет в конфигураторе

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

Откройте макет печатной формы (обычно это макет типа «Табличный документ» у документа или в общих макетах). Выделите строки под табличной частью, задайте имя области, например Подвал или Итого, и заполните ячейки: статический текст («Итого к оплате:»), параметры (например, [СуммаДокумента]) и подписи.

В модуле менеджера объекта или в процедуре печати после цикла вывода строк табличной части добавьте вывод области подвала и заполнение параметров:

bsl
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.СуммаДокумента = Шапка.СуммаДокумента;
ОбластьПодвал.Параметры.СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Шапка.СуммаДокумента, Шапка.Валюта);
ТабличныйДокумент.Вывести(ОбластьПодвал);

Имя функции суммы прописью зависит от конфигурации: в БСП-совместимых решениях это РаботаСКурсамиВалют.СформироватьСуммуПрописью() или ЧислоПрописью(). Проверьте, какой общий модуль используется в вашей конфигурации, — вызов несуществующей функции приведёт к ошибке при печати.

Внешняя печатная форма как безопасная альтернатива

Если конфигурация типовая и обновляется автоматически, правильный путь — внешняя печатная форма. В ней вы создаёте собственный макет с подвалом и регистрируете обработку через «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки».

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

Способы добавить подвал печатной формы

Правка типового макета

Быстро, но ломается при обновлении. Подходит только для конфигураций, снятых с поддержки осознанно.

Внешняя печатная форма

Безопасно для обновлений, рекомендуется для типовых конфигураций. Требует навыка разработки обработки.

Расширение конфигурации

Современный вариант: макет и код печати выносятся в расширение, типовая конфигурация не меняется. Поддерживается не для всех сценариев печати.

Нижний колонтитул на каждой странице

Если под «подвалом» понимается текст внизу каждой страницы, он задаётся программно через свойства табличного документа перед выводом на печать:

bsl
ТабличныйДокумент.НижнийКолонтитул.Выводить = Истина;
ТабличныйДокумент.НижнийКолонтитул.ТекстСлева = "&[НазваниеОрганизации]";
ТабличныйДокумент.НижнийКолонтитул.ТекстСправа = "Стр. [&НомерСтраницы] из [&СтраницВсего]";

Доступны шаблоны номера страницы, общего числа страниц, даты и времени. Учтите, что колонтитул занимает часть высоты страницы — при его включении содержимое может перестать помещаться, и разрывы страниц сместятся. Проверяйте результат в предварительном просмотре.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить подвал

Итоговая строка в отчёте
Норма

Строка «Итого» присутствует, суммы совпадают с ручным пересчётом строк

Тревожный признак

Строки нет или колонки пустые — не заданы ресурсы/общие итоги

Подвал печатной формы
Норма

Область выводится после последней строки, сумма прописью корректна

Тревожный признак

Подвал ушёл на отдельную страницу или параметры пустые

Поведение при обновлении
Норма

Подвал сохраняется после обновления конфигурации

Тревожный признак

Макет заменён типовым — правки потеряны

Типичные ошибки
01
Включили общие итоги, но не задали ресурс с функцией Сумма() — итоговая строка есть, а цифр нет
02
Вывели область подвала внутри цикла по строкам — подвал печатается после каждой строки табличной части
03
Не проверили разрыв страницы — подвал с подписями оказался один на последнем листе; используйте ПроверитьВывод() перед выводом
04
Изменили типовой макет без копии базы — при ошибке откатить изменения нечем
05
Используют колонтитул вместо области макета для суммы прописью — колонтитул не имеет доступа к данным документа

Чтобы подвал не отрывался от таблицы, перед выводом проверяйте, поместится ли он на текущей странице: метод ТабличныйДокумент.ПроверитьВывод(МассивОбластей) вернёт ложь, если область не влезает, — тогда сначала выведите горизонтальный разделитель страниц.

Итог

Что важно запомнить

Итоги в отчёте включаются пользователем через настройки варианта: общие итоги плюс ресурсы с Сумма(). Подвал печатной формы — это область макета, выводимая после строк табличной части; в типовых конфигурациях делайте его через внешнюю печатную форму или расширение. Всегда проверяйте суммы на тестовых данных и делайте копию базы перед правкой макетов.

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

Почему итоговая строка в отчёте есть, а суммы пустые?

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

Как вывести подвал только на последней странице?

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

Подвал с подписями оказался один на последней странице. Что делать?

Перед выводом подвала используйте ПроверитьВывод() с массивом областей, которые должны поместиться вместе (последняя строка таблицы плюс подвал). Если метод вернул Ложь, выведите разделитель страниц — тогда подвал перенесётся целиком вместе с частью таблицы.

Можно ли добавить подвал в печатную форму без конфигуратора?

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

Итоги в отчёте не совпадают с суммой строк. В чём причина?

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