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

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

Как видно из скриншота, в запрос передается параметр, который пользователь указывает на форме: Значение перечисления «Периодичность» — данное перечисление есть практически во всех типовых решениях.
Его доустпные типы укажем на вкладке «Параметры»:

Далее, в настройках СКД создаем таблицу, в ней — колонку «Период» (вертикальная группировка):

Далее следует важный момент настройки условного оформления:

Этой настройкой мы форматируем наш период, чтобы все было красиво и радовало глаз)
Вот, собственно, сами форматы:
Месяц: ДФ=’ММММ гггг «г.»‘
День: ДФ = дд.ММ.гггг
Неделя: ДФ = ‘»Неделя с» дд.ММ.гггг ‘
Квартал: ДФ = ‘к «квартал» гггг «г.»‘
Год: ДФ = ‘гггг «г.»‘
Декада: ДФ = ‘»Декада с» дд.ММ.гггг ‘
Полугодие: ДФ = ‘»Полугодие с» дд.ММ.гггг’
Вот и все. На выходе имеем замечательную картину:


