При разработке отчетов в Системе компоновки данных (СКД) часто возникает задача предоставить пользователю возможность выбора интервала дат через удобный элемент управления СтандартныйПериод. В этой статье мы подробно разберем, как грамотно связать этот параметр с данными вашего запроса и какие способы фильтрации существуют.
Это самый эффективный и производительный метод. Если вы используете виртуальные таблицы (например, ОстаткиИОбороты), СКД позволяет передавать параметры напрямую в поля таблицы. В этом случае оптимизация запроса ложится на плечи платформы, что обеспечивает высокую скорость работы отчета.
Для реализации этого подхода выполните следующие шаги:
ВЫБРАТЬ
Данные.Регистратор,
Данные.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}) КАК Данные
НачалоПериода и ОкончаниеПериода установите связь с параметром Период типа СтандартныйПериод.Если вы работаете с обычной таблицей (например, Документ.ЗаказКлиента) и вам нужно отфильтровать данные по реквизиту Дата, используйте конструкцию МЕЖДУ в секции ГДЕ. Этот метод позволяет гибко управлять условиями отбора.
Рассмотрим структуру запроса:
ВЫБРАТЬ
Заказ.Ссылка,
Заказ.Дата
ИЗ
Документ.ЗаказКлиента КАК Заказ
{
ГДЕ
Заказ.Дата МЕЖДУ (&НачалоПериода) И (&ОкончаниеПериода)
}
Важное примечание: При использовании МЕЖДУ обе границы диапазона включаются в выборку. Чтобы избежать ошибок (например, попадания документов с датой 00:00:00 следующего дня), мы рекомендуем использовать функции НачалоПериода() и КонецПериода() в выражениях параметров на вкладке Параметры.
Чтобы пользователь видел только один удобный элемент СтандартныйПериод, а не два отдельных поля ввода даты, выполним следующие настройки:
Период с типом СтандартныйПериод.НачалоПериода и ОкончаниеПериода с типом Дата.НачалоПериода укажите: &Период.ДатаНачала.ОкончаниеПериода укажите: &Период.ДатаОкончания.НачалоПериода и ОкончаниеПериода. Это скроет их от пользователя, оставив только основной параметр Период.Чтобы ваш отчет выглядел профессионально и был удобен в использовании, обратите внимание на следующие нюансы:
Период. Это позволит автоматически выводить выбранный диапазон дат в шапке отчета.СтандартногоПериода позволяет пользователю выбирать как произвольные даты, так и стандартные интервалы (месяц, квартал, год), что существенно упрощает работу с системой.Теперь вы знаете, как правильно организовать отбор по периоду. Используйте виртуальные таблицы для скорости и МЕЖДУ для произвольных выборок. Надеемся, этот разбор поможет вам создавать отчеты любой сложности!