Как корректно настроить отчет СКД с периодичностью по месяцам и исправить некорректный расчет объема продаж в 1С?

Программист 1С v8.3 (Обычные формы) Управленческий учет Торговля и дистрибуция
← На главную

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

Основные причины некорректного расчета данных в отчете

Выясним основные технические ошибки, которые приводят к искажению данных при формировании ежемесячных отчетов по оборотам:

  1. Использование некорректной виртуальной таблицы: Выбор таблицы ОстаткиИОбороты вместо таблицы Обороты. Если задача состоит исключительно в вычислении проданного объема или суммы за период, таблица остатков является избыточной и усложняет запрос.
  2. Ошибки в настройке группировок: Попытка группировать выборку по полям числовых ресурсов (например, по оборотным показателям объема или расхода) вместо добавления их в суммируемые поля. В этом случае система не складывает значения, а разбивает отчет на множество уникальных строк.
  3. Отсутствие поля ресурса на соответствующей вкладке СКД: Если числовое поле добавлено в запрос, но не указано на вкладке «Ресурсы» с функцией СУММА(), компоновка данных выведет случайное значение одной из строк выборки вместо общей суммы.
  4. Неверное выражение периода: Отсутствие явного приведения даты к началу месяца при работе с реальными таблицами или некорректная передача параметров периодичности в виртуальные таблицы регистров накопления.

Шаг 1. Оптимизация запроса к виртуальной таблице

Рассмотри структуру запроса. Для получения сводных показателей за месяц необходимо обращаться к виртуальной таблице Обороты регистра накопления. В параметрах виртуальной таблицы укажем периодичность Месяц или воспользуемся функцией языка запросов НАЧАЛОПЕРИОДА().

Пример корректного запроса для схемы компоновки данных:


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

Функция НАЧАЛОПЕРИОДА(Период, МЕСЯЦ) приведет каждую дату движения регистра к первому числу соответствующего месяца, что позволит правильно сгруппировать данные в колонках отчета.

Шаг 2. Настройка ресурсов и ролей полей в СКД

Для того чтобы платформа 1С автоматически суммировала значения объема или площади по всем документам за месяц, выполним следующие настройки на схеме компоновки данных:

  1. Перейдем на вкладку «Ресурсы».
  2. Добавим поле ПлощадьПродаж в список ресурсов.
  3. В колонке «Выражение» зададим агрегатную функцию: СУММА(ПлощадьПродаж).
  4. На вкладке «Наборы данных» для поля ПериодМесяц укажем роль Период и установим тип заполнения. Это обеспечит правильную хронологическую сортировку месяцев в отчете.

Шаг 3. Настройка структуры отчета (Кросс-таблица)

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

  1. В структуру отчета добавим элемент «Таблица».
  2. В секцию «Строки» таблицы добавим группировку по полю Заказчик.
  3. В секцию «Колонки» таблицы добавим группировку по полю ПериодМесяц.
  4. В оформлении поля ПериодМесяц настроим формат даты (например, ДФ='ММММ гггг гг.'), чтобы заголовки колонок отображались в удобном виде (например, «Август 2023 г.»).

Правильный выбор виртуальной таблицы Обороты, корректная группировка периода через НАЧАЛОПЕРИОДА и регистрация числовых показателей в качестве ресурсов СКД гарантируют точный расчет суммарных объемов продаж за каждый месяц.

← На главную