Отчеты и Аналитика · 8 мин
Как добавить дату в заголовок отчета в 1С
Как вывести дату формирования или период отчета в заголовок в 1С: настройка макета, СКД, параметры и код. Пошаговая инструкция для типовых и самописных отчетов.
Дата в заголовке отчета — стандартное требование бухгалтерии и руководства: по документу должно быть видно, когда он сформирован и за какой период построен. В 1С это решается несколькими способами в зависимости от того, как устроен отчет: на системе компоновки данных (СКД), на обычном табличном документе с макетом или внешний отчет с программным формированием.
Чаще всего задача сводится к одному из трех сценариев: вывести период отчета («за январь»), вывести дату формирования («сформирован 15.03») или вывести и то, и другое. Ниже разобраны все варианты — от настройки без программирования до изменения кода модуля объекта.
Перед изменениями убедитесь, что у вас есть права на редактирование отчета или конфигурации, а для изменения типовой конфигурации — что вы понимаете последствия снятия объекта с поддержки.
Определяем, как устроен отчет
Способ добавления даты зависит от технологии, на которой построен отчет. В современных конфигурациях (УТ 11, ERP, БП 3.0, ЗУП 3.1) подавляющее большинство отчетов построено на СКД. В старых конфигурациях и самописных решениях встречаются отчеты на обычном табличном документе с макетом.
Проверить просто: откройте конфигуратор, найдите отчет в дереве объектов и посмотрите его состав. Если у отчета есть «Основная схема компоновки данных» — это СКД. Если есть макет типа «Табличный документ» и формирование идет кодом через ТабличныйДокумент.Вывести() — это классическая схема с макетом.
Как выбрать способ
Выводим период в заголовок отчета на СКД без программирования
Для типовых отчетов на СКД самый быстрый путь — настройка варианта отчета прямо в режиме предприятия. Откройте отчет, перейдите в расширенные настройки (кнопка «Настройки» → «Расширенные» или «Еще» → «Изменить вариант отчета» в зависимости от конфигурации).
На закладке «Другие настройки» найдите параметр «Заголовок» (Title). Установите флажок использования и впишите текст с периодом, например: Продажи за период с 01.01 по 31.01. Период при этом придется обновлять вручную — это ограничение способа.
- 1Откройте отчет в режиме 1С:Предприятие
- 2Нажмите «Настройки» и перейдите в расширенный режим
- 3Найдите параметр «Заголовок» на закладке «Другие настройки»
- 4Включите флажок и введите текст заголовка с периодом
- 5Сформируйте отчет и проверьте результат
- 6Сохраните вариант отчета, чтобы настройка не потерялась
Сохраните измененный вариант: «Еще» → «Сохранить вариант отчета». Тогда заголовок будет применяться при каждом открытии этого варианта, в том числе другими пользователями, если вариант общий.
Автоматическая дата через макет СКД
Чтобы дата подставлялась автоматически, откройте основную схему компоновки данных в конфигураторе и перейдите на закладку «Макеты». Создайте макет оформления или макет области для заголовка: добавьте макет типа «Заголовок» и в ячейке укажите параметр, например &ТекущаяДата.
В ячейке макета можно использовать выражение на встроенном языке СКД. Для даты формирования удобна функция ТекущаяДатаСеанса() в сочетании с Формат(). Пример заполнения параметра в модуле объекта отчета:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ТекущаяДата", Формат(ТекущаяДатаСеанса(), "ДЛФ=DD"));
КонецПроцедурыДля периода отчета используйте значения стандартных параметров «НачалоПериода» и «КонецПериода» — их можно получить из настроек компоновщика и подставить в параметр заголовка тем же способом. Формат ДЛФ=DD выводит дату полностью с названием месяца, ДЛФ=D — короткую числовую форму.
Дата в заголовке отчета на макете табличного документа
Если отчет построен классическим способом, откройте макет отчета в конфигураторе. Найдите или создайте область «Шапка» (заголовок). В ячейке, где должна быть дата, установите свойство «Заполнение» в значение «Параметр» и задайте имя параметра, например ДатаФормирования.
Затем в модуле объекта отчета, перед выводом области, заполните параметр:
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.ДатаФормирования = Формат(ТекущаяДатаСеанса(), "ДЛФ=DD");
ОбластьШапка.Параметры.ПериодОтчета = "с " + Формат(НачалоПериода, "ДЛФ=D") + " по " + Формат(КонецПериода, "ДЛФ=D");
ТабличныйДокумент.Вывести(ОбластьШапка);Если дата должна выводиться на каждой странице при печати, используйте не область макета, а колонтитулы табличного документа: свойства ВерхнийКолонтитул и НижнийКолонтитул с текстом вроде &Дата — система подставит дату печати автоматически.
Проверка результата
После изменений сформируйте отчет и проверьте три вещи: дата отображается в нужном месте, формат соответствует требованиям (полный или краткий), при смене периода или перезапуске отчета дата обновляется корректно.
Как проверить результат
Дата или период видны и соответствуют ожиданиям
Вместо даты выводится имя параметра или пустая строка — параметр не заполнен
Период в заголовке меняется автоматически
Заголовок показывает старый период — значит он статичный
Дата есть на всех страницах при использовании колонтитула
Дата только на первой странице — нужен колонтитул, а не область
Читаемый формат, например «15 марта» или «15.03»
Дата со временем «15.03 14:32:05» — укажите ДЛФ в функции Формат()
Типичные ошибки и ограничения
Отдельное ограничение касается внешних отчетов (.erf/.epf): если отчет подключен через механизм дополнительных отчетов и обработок, изменения в его модуле применяются только после замены файла в справочнике дополнительных отчетов, а не сразу после сохранения в конфигураторе.
Частые вопросы
Как вывести дату в формате «15 марта» без года?
Используйте функцию Формат с нужной строкой формата. Например, Формат(ТекущаяДатаСеанса(), "ДФ='dd MMMM'") выведет день и название месяца без года. Полный список символов формата есть в синтакс-помощнике по функции Формат.
Почему вместо даты в отчете выводится текст «&ТекущаяДата»?
Параметр объявлен в макете, но ему не присвоено значение. Проверьте, что в коде (или в настройках СКД) параметр с точно таким же именем заполняется до вывода области или формирования отчета. Имена чувствительны к опечаткам.
Можно ли добавить дату в заголовок типового отчета без конфигуратора?
Да, если достаточно статичного заголовка: откройте расширенные настройки варианта отчета, включите параметр «Заголовок» и впишите текст. Автоматическую подстановку текущей даты без изменения схемы или кода получить не удастся.
Как вывести дату на каждой странице печатной формы отчета?
Используйте колонтитулы табличного документа: установите свойство ВерхнийКолонтитул или НижнийКолонтитул и включите в текст шаблон &Дата — платформа подставит дату печати на каждой странице автоматически.
ТекущаяДата() или ТекущаяДатаСеанса() — что использовать?
В клиент-серверном режиме используйте ТекущаяДатаСеанса() — она возвращает время сервера и одинакова для всех пользователей. ТекущаяДата() на клиенте берет время компьютера пользователя, которое может быть неточным.
Дата формируется, но со временем «14:32:05». Как убрать время?
Примените форматирование: Формат(Дата, "ДЛФ=D") для короткой даты или "ДЛФ=DD" для полной. Без формата дата приводится к строке вместе со временем.
Что важно запомнить
Сначала определите технологию отчета: СКД или макет табличного документа. Для СКД используйте настройку заголовка варианта или параметр макета с ТекущаяДатаСеанса(), для макета — параметр области, заполняемый в коде. Всегда форматируйте дату через Формат(), проверяйте обновление при смене периода и избегайте правки типовых объектов без необходимости.