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

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

Как добавить дату в отчет 1С

Как добавить дату формирования в отчет 1С: настройка периода, вывод даты в шапке и подвале печатной формы, функции ТекущаяДата и Формат в СКД и макете.

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

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

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

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

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

Маршрут решения

Как выбрать способ

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

Задание периода на форме отчета

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

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

Для отчетов, где периода на форме нет (например, карточка счета формируется «на дату»), ищите поле «Период» или «На дату» в панели быстрых настроек. После изменения дат обязательно нажмите «Сформировать», иначе отчет покажет старые данные.

Добавление даты через настройки отчета

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

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

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

Вывод даты формирования в отчете на СКД

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

На вкладке «Параметры» добавьте параметр, например ДатаФормирования с типом «Дата». В настройках на вкладке «Компоновка данных» укажите для него выражение ТекущаяДатаСеанса() либо задайте значение программно. Затем на вкладке «Наборы данных» или в ресурсах отчета добавьте параметр в макет заголовка.

Для вывода в шаблоне заголовка используйте конструкцию вида [ДатаФормирования] в области макета. Чтобы дата выглядела привычно, примените функцию форматирования: Формат(ДатаФормирования; "ДЛФ=D") — она выведет дату в длинном формате, например «15 марта».

bsl
// В модуле отчета или при компоновке:
Параметры.ДатаФормирования = ТекущаяДатаСеанса();
// Форматирование для печатной формы:
СтрокаДаты = Формат(ТекущаяДатаСеанса(); "ДЛФ=DD");

Добавление даты в макет печатной формы

Если дата нужна в печатной форме документа или отчета, редактируется макет. В конфигураторе откройте макет (обычно табличный документ), выделите ячейку в шапке или подвале и задайте ей тип заполнения «Параметр» с именем, например ДатаПечати.

В модуле менеджера печати или в процедуре формирования заполните параметр значением: ОбластьШапка.Параметры.ДатаПечати = Формат(ТекущаяДатаСеанса(); "ДЛФ=D"). После этого дата появится в каждом экземпляре печатной формы.

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

Форматы даты и типичные проблемы

Функция Формат() управляет представлением даты. Основные варианты: ДЛФ=D — полная дата прописью, ДЛФ=DD — длинный формат с годом, ДФ=dd.MM.yyyy — произвольная маска. Если в отчете дата выводится как «01.01.0001», значит параметр не заполнен — проверьте, что выражение параметра задано и параметр включен в настройках.

Частая проблема — дата в отчете не совпадает с датой на компьютере. В клиент-серверном режиме ТекущаяДатаСеанса() возвращает время сервера, а не рабочей станции. Если часовые пояса различаются, используйте дату сеанса осознанно и при необходимости корректируйте смещение.

Типичные ошибки
01
Параметр добавлен в СКД, но не включен в настройках варианта — дата не выводится, хотя в схеме все верно
02
Использование ТекущаяДата() вместо ТекущаяДатаСеанса() в серверном коде — в файловом режиме сработает, в клиент-серверном может дать сбой или ошибку контекста
03
Правка типового макета напрямую — изменения теряются при обновлении конфигурации
04
Забыли нажать «Сформировать» после смены периода — в отчете старые данные с новой датой в заголовке

Проверка результата

После настройки сформируйте отчет и проверьте три вещи: дата видна в ожидаемом месте, формат читаем (нет значения «01.01.0001» и обрезанных строк), дата корректно попадает в печатную форму и в сохраненный файл Excel или PDF.

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

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

Шапка отчета на экране
Норма

Период или дата формирования отображаются полностью

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

Пустое поле или дата 01.01.0001

Печатная форма
Норма

Дата присутствует на каждой странице, где задан макет

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

Дата есть на экране, но пропадает при печати

Повторное формирование
Норма

Дата обновляется при каждом формировании отчета

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

Дата зафиксирована и не меняется — значит, задано фиксированное значение параметра

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

Итог

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

Период данных задается на форме отчета, дата формирования — через параметр с ТекущаяДатаСеанса() в СКД, дата в печатной форме — через макет. Изменения типовых объектов безопаснее выносить в расширение, а готовые настройки сохранять как вариант отчета.

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

Почему в отчете дата отображается как 01.01.0001?

Это пустое значение даты. Параметр либо не заполнен, либо не включен в настройках варианта отчета. Откройте «Настройки» → «Параметры», поставьте флажок рядом с параметром и задайте значение или выражение.

Как вывести дату прописью, например «15 марта»?

Используйте функцию Формат с параметром ДЛФ=D для полной даты или ДЛФ=DD для длинного формата с годом. Пример: Формат(ТекущаяДатаСеанса(); "ДЛФ=DD"). В СКД аналогичное форматирование задается в свойствах поля на вкладке «Оформление».

Дата на сервере отличается от даты на моем компьютере — что делать?

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

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

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

Почему дата есть на экране, но пропадает при печати?

Заголовок отчета и печатная форма формируются по-разному. Проверьте, что в настройках оформления включен вывод заголовка и параметров, а в макете печатной формы область с датой реально выводится в коде формирования.

Как сделать, чтобы отчет всегда открывался за текущий месяц?

В настройках параметров периода выберите стандартный период «Этот месяц» вместо фиксированных дат и сохраните вариант отчета. При каждом открытии границы периода будут пересчитываться автоматически.