Мы хотим сделать отчет, который будет выводить данные по периодам. Обычно мы берем оборотный регистр накопления, ставим у поля Периодичность значение Авто и получаем значения разных периодов ПериодМесяц, ПериодГод и т.д. Или мы сами добавляем поля, используя функцию в запросе, например, НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, НЕДЕЛЯ), и плодим несколько полей с разными периодами.
Недостаток такого подхода в том, что пользователю, чтобы сменить периодичность, надо заходить в настройки - для кого-то этот пункт очень критичный.
Что нам дает Динамический период - позволяет поместить Периодичность в шапку и в зависимости от указанной периодичности формировать отчет. Вроде мелочь, но пользователю удобно.
Далее маленький пример. Создаем поле Динамический период, например так:
ВЫБОР
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Неделя)
ТОГДА НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, НЕДЕЛЯ)
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Декада)
ТОГДА НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, ДЕКАДА)
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Месяц)
ТОГДА НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, МЕСЯЦ)
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Квартал)
ТОГДА НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, КВАРТАЛ)
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Полугодие)
ТОГДА НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, ПОЛУГОДИЕ)
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Год)
ТОГДА НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.ДатаОтгрузки, ГОД)
ИНАЧЕ ЗаказКлиентаТовары.ДатаОтгрузки
КОНЕЦ КАК ДинамическийПериод
Далее настраиваем для поля Динамический период выражение представления в СКД, например так:
ВЫБОР
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Неделя)
ТОГДА "w"+ Строка(Неделя(ДинамическийПериод)) +", "+ Формат(ДинамическийПериод, "ДФ=гггг")
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Декада)
ТОГДА Формат(ДинамическийПериод,"ДЛФ=Д")
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Месяц)
ТОГДА Формат(ДинамическийПериод,"ДФ=МММгггг")
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Квартал)
ТОГДА "q"+ Строка(Квартал(ДинамическийПериод)) +", "+ Формат(ДинамическийПериод, "ДФ=гггг")
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Полугодие)
ТОГДА Формат(ДинамическийПериод,"ДЛФ=Д")
КОГДА &Периодичность = ЗНАЧЕНИЕ(Перечисление.Периодичность.Год)
ТОГДА Формат(ДинамическийПериод,"ДФ=гггг")
ИНАЧЕ Формат(ДинамическийПериод,"ДЛФ=Д")
КОНЕЦ
Вот так это выглядит в СКД:

А вот так это видит пользователь отчета:




Если думаете, что пригодится, - в избранное и респект.
Ну, и посмотрите мои другие статейки - есть и бесплатные и за старт-мани.
Другие полезные отчеты:
1. Оборачиваемость номенклатуры. Срок хранения
2. АВС-анализ закупок, N - лучших и отчет с прогнозом (3 отчета в одном)
4. Срок выполнения заказа поставщику
5. Отчет с прогнозом на конец месяца
6. Планировщик. График всего, чего угодно
8. Заказы клиентов. Прирост по месяцам (+ вывод нужного уровня иерархии)
9. Анализ номенклатуры для заказа на склад
10. Ведомость взаиморасчетов с поставщиками расширенная
11. Анализ использования номенклатуры
13. Парные документы по разным организациям
14. Товары на складах по срокам хранения
15. АВС-анализ продаж, N - лучших и отчет с прогнозом (3 отчета в одном)
Вступайте в нашу телеграмм-группу Инфостарт
