Обновлено: 29.01.2019

Использование параметров - периодов в системе компоновки данных

Использование дат

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

Редактирование типа параметра

Выбор состава даты

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

Ввод периода пользователем

Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода().

Пример:

Копировать в буфер обмена

ВЫБРАТЬ
 ПродажиОбороты.Контрагент,
 ПродажиОбороты.Номенклатура,
 ПродажиОбороты.КоличествоОборот,
 ПродажиОбороты.СуммаОборот
ИЗ
 РегистрНакопления.Продажи.Обороты(
   {(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))},
   {(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))}, , ) КАК ПродажиОбороты

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

Использование стандартных периодов

Система компоновки данных позволяет использовать стандартные периоды для указания периода отчета.

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

Стандартный период

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

Пользователь будет редактировать параметр в следующем виде:

Редактирование периода

Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 01.01.2019, а в качестве значения параметра ПериодКонец будет использоваться дата 31.01.2019.

Реальные значения дат для стандартного периода определяются при исполнении отчета. Таким образом, если выполнять отчет с установленным периодом Этот месяц в январе 2020-го года, то отчет будет исполняться с 01.01.2020 по 31.01.2020, а если выполнять в феврале 2020-го года, то с 01.02.2020 по 29.02.2020

Заметим, что даты начала и конца стандартного периода также содержат и время. Причем, начальная дата имеет время 00:00:00, а конечная дата 23:59:59, таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА.