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

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

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

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

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

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

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

Определите, какой у вас отчет

Прежде чем что-то менять, установите тип отчета — от этого зависит весь дальнейший порядок действий. Типовой отчет поставляется с конфигурацией (например, «Анализ продаж» в «1С:Управление торговлей»), внешний отчет — это файл с расширением .erf, подключенный через «Дополнительные отчеты и обработки», а самописный может быть встроен в конфигурацию разработчиком.

Быстрый признак: если отчет открывается из стандартного меню раздела и имеет кнопку «Настройки» с вкладками «Отбор», «Параметры», «Группировка» — это отчет на СКД, и выбор периода там либо уже есть, либо включается настройкой. Если отчет открывается как внешний файл или имеет нестандартную форму с полями ввода — скорее всего, потребуется доработка в конфигураторе.

Кнопка «Настройки» с вкладкой «Параметры»Отчет на СКД

Выбор даты добавляется настройкой без программирования

Файл .erf, подключенный как внешнийВнешний отчет на СКД

Открывается в конфигураторе, параметры правятся в схеме компоновки

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

Параметр даты добавляется в код и на форму вручную

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

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

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

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

Добавьте параметры даты в отчет на СКД через конфигуратор

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

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

Если виртуальная таблица не подходит (например, нужен отбор по дате документа в произвольном запросе), добавьте в запрос условие ГДЕ с параметром: ГДЕ Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода. Затем на закладке «Компоновка данных» проверьте, что параметры появились в списке, и при необходимости снимите у них флажок «Ограничение доступности», чтобы пользователь мог менять значения.

Проверьте, что отбор по дате работает

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

Отдельно проверьте пограничные случаи: документ, проведенный ровно в 00:00:00 первого дня, и документ в 23:59 последнего дня. Если второй документ не попадает в отчет — у вас классическая ошибка с границей периода, описанная выше.

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

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

Отчет за один день с известными документами
Норма

Итог совпадает с данными документов

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

Итог меньше — теряются документы на границе периода

Документ в 23:59 последнего дня периода
Норма

Документ входит в отчет

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

Документ отсутствует — конец периода задан как 00:00:00

Смена периода на панели отчета
Норма

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

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

Параметр не влияет на результат — отбор не связан с запросом

Типичные ошибки и ограничения

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

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

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

FAQ по выбору даты в отчетах 1С

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

Скорее всего, параметр периода не выведен в быстрый доступ. Откройте «Настройки», найдите параметр на вкладке «Параметры» и установите для него режим отображения «Быстрый доступ» — поля дат появятся на панели отчета рядом с кнопкой «Сформировать».

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

Используйте один параметр типа «Дата» и в запросе сравнивайте начало дня документа с этим параметром, либо задайте оба параметра виртуальной таблицы равными одной дате. Для отчетов «на дату» (остатки, задолженность) обычно применяют виртуальные таблицы «Остатки» с параметром периода.

Отчет не реагирует на изменение даты — в чем причина?

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

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

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

Можно ли задать период по умолчанию, например текущий месяц?

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

Нужно ли программировать, чтобы добавить выбор даты в типовой отчет?

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

Итог

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

Выбор даты в отчете 1С добавляется через параметры СКД (&НачалоПериода, &КонецПериода) или настройку варианта без программирования. Всегда приводите границы к началу и концу дня, проверяйте отбор на контрольных данных и дорабатывайте типовые отчеты через внешние файлы, а не изменением конфигурации.