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

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

Как вывести период в заголовок отчета 1С

Как вывести период в заголовок отчета 1С через СКД, параметры и макет. Примеры кода, типичные ошибки и способы для обычных и управляемых форм.

Пользователь, открывая отчет в 1С, ожидает увидеть в заголовке, за какой период сформированы данные: «за январь», «с 01.01 по 31.03» и тому подобное. Если период не выведен, печатная форма теряет смысл: по бумаге невозможно понять, к каким датам относятся цифры. Задача решается несколькими способами в зависимости от того, построен отчет на СКД (системе компоновки данных), на программном формировании табличного документа или на внешнем макете.

Ключевой принцип один: период хранится в параметрах отчета (обычно это «НачалоПериода» и «КонецПериода» либо единый параметр «Период» типа «СтандартныйПериод»), а в заголовок он попадает либо автоматически через настройки СКД, либо вручную — через макет и код. Ниже разобраны оба подхода с конкретными действиями и примерами.

Где хранится период отчета и почему он не виден в заголовке

В типовых и самописных отчетах период задается на форме как настройка. В СКД это параметры данных: либо пара «НачалоПериода» / «КонецПериода», либо один параметр типа «СтандартныйПериод». Сам факт заполнения параметра не означает, что он появится в заголовке: СКД выводит в шапку отчета только то, что явно разрешено в настройках.

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

Способ 1. Вывести период через настройки СКД без кода

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

Далее перейдите к параметру вывода «Заголовок»: он находится в настройках на закладке «Другие настройки» или в параметрах вывода. Впишите произвольный текст, например «Оборотно-сальдовая ведомость». Параллельно включите параметр вывода «Выводить параметры» — тогда под заголовком автоматически появится строка с периодом и другими отборами. При формировании отчета вы увидите шапку вида: название отчета, а под ним «Период: 01.01.2026 — 31.01.2026».

Порядок действий в СКД
  1. 1
    Откройте отчет и перейдите в изменение варианта настроек
  2. 2
    Проверьте, что параметры периода заполнены и включены
  3. 3
    Найдите параметр вывода «Заголовок» и впишите название отчета
  4. 4
    Включите параметр вывода «Выводить параметры» или «Выводить отбор»
  5. 5
    Сформируйте отчет и проверьте, что период появился под заголовком
  6. 6
    Сохраните вариант отчета, чтобы настройка не потерялась

Способ 2. Подставить период в текст заголовка через выражение

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

В модуле объекта отчета используется событие «ПриКомпоновкеРезультата». В нем можно изменить значение параметра вывода «Заголовок» до формирования, подставив форматированные даты. Функция Формат() с параметром "ДЛФ=D" выводит дату в длинном формате: «1 января 2026 г.».

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,

КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

// Формируем заголовок с периодом

ПараметрНачало = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(

Новый ПараметрКомпоновкиДанных("НачалоПериода"));

ПараметрКонец = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(

Новый ПараметрКомпоновкиДанных("КонецПериода"));

ТекстЗаголовка = "Отчет по продажам за период с "

+ Формат(ПараметрНачало.Значение, "ДЛФ=D")

+ " по "

+ Формат(ПараметрКонец.Значение, "ДЛФ=D");

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры

Обратите внимание: если заголовок задан в самом макете компоновки, программная подстановка может конфликтовать с настройками. Надежнее формировать заголовок либо полностью в настройках, либо полностью в коде.

Способ 3. Период в заголовке самописного отчета через макет

Для отчетов, которые формируются вручную в табличный документ (без СКД), период выводится через параметр области макета. В конфигураторе создайте макет типа «Табличный документ», добавьте область «Заголовок» и в ячейке пропишите параметр, например [Заголовок]. В модуле отчета перед выводом области присвойте параметру нужный текст.

Функция СформироватьОтчет(НачалоПериода, КонецПериода) Экспорт

Макет = ПолучитьМакет("МакетОтчета");

ТабДок = Новый ТабличныйДокумент;

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьЗаголовок.Параметры.Заголовок = "Анализ остатков за период с "

+ Формат(НачалоПериода, "ДЛФ=DD")

+ " по "

+ Формат(КонецПериода, "ДЛФ=DD");

ТабДок.Вывести(ОбластьЗаголовок);

// ... вывод данных отчета

Возврат ТабДок;

КонецФункции

Разница между "ДЛФ=D" и "ДЛФ=DD": первый вариант дает «1 января 2026 г.», второй — «01.01.2026». Для официальных печатных форм чаще используют короткий формат, для аналитических отчетов — длинный, он читается лучше.

Работа со стандартным периодом и красивое форматирование

Во многих отчетах вместо двух дат используется один параметр типа «СтандартныйПериод». У него есть свойства ДатаНачала и ДатаОкончания. Чтобы вывести его в заголовок, обращайтесь к этим свойствам:

ТекстЗаголовка = "Отчет за период: "

+ Формат(СтандартныйПериод.ДатаНачала, "ДЛФ=D")

+ " — "

+ Формат(СтандартныйПериод.ДатаОкончания, "ДЛФ=D");

Полезные приемы форматирования:

  • Вывод только месяца и года: Формат(Дата, "ДФ='ММММ гггг'") — даст «январь 2026»;
  • Квартал: вычисляется через Месяц(Дата) / 3 с округлением вверх, либо через начало и конец квартала функциями НачалоКвартала() и КонецКвартала();
  • Проверка на пустой период: если даты не заполнены (01.01.0001), выводите «за весь период», иначе в заголовке появится бессмысленная дата.
bsl
Если Не ЗначениеЗаполнено(НачалоПериода) Тогда
	ТекстПериода = "за весь период";
Иначе
	ТекстПериода = "с " + Формат(НачалоПериода, "ДЛФ=D") + " по " + Формат(КонецПериода, "ДЛФ=D");
КонецЕсли;

Типичные ошибки и как их проверить

Самая частая ошибка — в заголовок попадает дата конца периода с временем 23:59:59, и при форматировании без учета этого отчет «за январь» выглядит корректно, но если разработчик использовал КонецДня() неправильно, дата может уехать на следующие сутки. Всегда используйте КонецДня(КонецПериода) при передаче в запрос и Формат() при выводе — формат отсечет время.

Вторая ошибка — заголовок формируется до того, как пользователь изменил период в настройках. В СКД-отчетах это проявляется, когда текст заголовка зафиксирован в сохраненном варианте: пользователь меняет даты, а шапка остается старой. Решение — формировать заголовок в событии «ПриКомпоновкеРезультата», а не хранить его статичным.

Типичные ошибки
01
Заголовок зашит текстом в варианте отчета — при смене периода шапка не обновляется
02
Дата конца без КонецДня() — в запрос не попадают документы последнего дня, а в заголовке дата выглядит корректно
03
Не проверена пустая дата — в заголовке появляется «01.01.0001»
04
Параметр макета не заполнен — на печати виден служебный текст вида [Заголовок]

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

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

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

Период в заголовке
Норма

Даты совпадают с выбранными на форме отчета

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

Даты не меняются при смене настроек

Конец периода
Норма

В выборку входят документы последнего дня

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

Документы последнего дня отсутствуют

Пустой период
Норма

Выводится «за весь период»

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

Выводится 01.01.0001 или пустая строка

Что выбрать: настройки СКД или программный вывод

Сравнение вариантов

Настройки СКД (параметр «Выводить параметры»)

Подходит для типовых отчетов и быстрых доработок; не требует кода, но формат строки фиксированный

Программный заголовок в ПриКомпоновкеРезультата

Полный контроль над текстом и форматом; требует доработки модуля и аккуратности с конфликтом настроек

Макет табличного документа

Для самописных отчетов без СКД и печатных форм; максимальная гибкость оформления, но вся логика в коде

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

Итог

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

Период в заголовок попадает из параметров отчета: в СКД — через настройки вывода, в самописных отчетах — через параметр области макета. Форматируйте даты функцией Формат(), обрабатывайте пустой период и формируйте заголовок в момент формирования, а не храните его статичным текстом.

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

Как вывести в заголовок только месяц и год, без конкретных дат?

Используйте произвольный формат функции Формат(): Формат(НачалоПериода, "ДФ='ММММ гггг'") вернет строку вида «январь 2026». Подставьте результат в текст заголовка, например «Отчет по реализации за январь 2026».

Почему в типовом отчете период в заголовке не обновляется после смены дат?

Скорее всего, в сохраненном варианте отчета заголовок зафиксирован текстом. Откройте «Изменить вариант», очистите параметр «Заголовок» или включите автоматический вывод параметров, затем сохраните вариант заново. Если отчет доработан программно, заголовок нужно формировать в событии «ПриКомпоновкеРезультата».

Можно ли вывести период в заголовок без доработки конфигурации?

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

Как вывести период в заголовок внешней печатной формы?

В модуле внешней обработки при формировании табличного документа получите область заголовка из макета и заполните ее параметр: Область.Параметры.Заголовок = "Акт за период с " + Формат(ДатаНачала, "ДЛФ=D"). Даты берите из реквизитов документа-основания или из параметров, переданных в обработку.

Что делать, если в заголовке появляется дата 01.01.0001?

Это признак незаполненного параметра периода. Перед формированием заголовка проверяйте значение функцией ЗначениеЗаполнено(): если дата пустая, подставляйте нейтральный текст «за весь период» или требуйте заполнения параметра через сообщение пользователю.

Как в заголовке указать квартал вместо точных дат?

Определите номер квартала выражением Цел((Месяц(Дата) - 1) / 3) + 1 и подставьте в строку: "Отчет за " + НомерКвартала + " квартал " + Формат(Дата, "ДФ=гггг"). Для границ выборки в запросе используйте НачалоКвартала() и КонецКвартала().