Как рассчитать нарастающий итог в отчете на СКД без программирования?

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

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

Решение задачи с помощью функции ВычислитьВыражение

Самый правильный и эффективный способ расчета нарастающего итога — использование функции ВычислитьВыражение() непосредственно в настройках ресурсов СКД. Этот метод позволяет выполнять вычисления на лету, учитывая текущую группировку и структуру отчета.

Чтобы реализовать данную задачу, выполним следующие шаги:

  1. Откроем Схему компоновки данных в конфигураторе.
  2. Перейдем на вкладку Наборы данных и убедимся, что поле Выручка корректно выбрано из регистра.
  3. Перейдем на вкладку Ресурсы.
  4. Создадим новую запись для расчета ресурса. В поле Выражение впишем формулу: ВычислитьВыражение("Сумма(Выручка)", , , "Первая", "Текущая")
  5. В поле Рассчитывать по выберем группировку, внутри которой должен происходить накопление (например, Период или Месяц).

Давайте разберем, как именно работает эта функция. Аргументы "Первая" и "Текущая" указывают системе, что для каждой текущей строки необходимо суммировать все значения Выручки, начиная с самого первого периода в рамках текущей группировки и заканчивая текущим моментом времени. Это избавляет нас от необходимости создавать дополнительные таблицы или усложнять запросы к виртуальным таблицам.

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

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

Используя Ресурсы, вы получаете следующие преимущества:

Тонкости настройки для сложных отчетов

Если ваш отчет имеет сложную иерархию, например Менеджер -> Месяц, важно правильно указать область действия функции. Если вы хотите, чтобы нарастающий итог сбрасывался при переходе к новому менеджеру, убедитесь, что в настройках Рассчитывать по выбрана правильная группировка.

В случае, если стандартной функции Сумма недостаточно, вы можете комбинировать ВычислитьВыражение с другими агрегатными функциями, такими как Количество или Максимум. Это делает инструмент универсальным для любого аналитического отчета.

Таким образом, мы видим, что для решения задачи «нарастающего итога» не нужно изобретать велосипед. Использование ВычислитьВыражение("Сумма(Выручка)", , , "Первая", "Текущая") является «золотым стандартом» в разработке на платформе 1С:Предприятие, который позволяет создавать быстрые, надежные и легко поддерживаемые отчеты.

← На главную