Как реализовать подсчет количества уникальных SKU в отчетах 1С

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

При разработке отчетов для розничной торговли, особенно в таких системах, как «АСТОР: Торговый Дом», разработчики часто сталкиваются с задачей подсчета количества уникальных позиций товаров (SKU). Проблема заключается в том, что простое использование функции Количество() в запросе или детальных записях выдает общее количество строк или единицу для каждой строки, тогда как заказчику требуется видеть итог по иерархии — сколько именно видов товаров было продано в конкретной группе или категории. Рассмотрим подробно, как правильно настроить такой расчет в системе компоновки данных (СКД) и какие аналитические нюансы стоит учитывать.

Постановка задачи и разбор поведения системы

Представим ситуацию: в отчете по продажам нам нужно добавить поле «Количество SKU». Если мы просто укажем в выражении поля Количество(РАЗЛИЧНЫЕ Номенклатура.Ссылка), то на уровне детальных записей (конкретных товаров) система всегда будет возвращать «1». Это логично: конкретный товар является уникальным сам по себе. Трудности начинаются, когда нам нужно увидеть общую сумму этих единиц на уровне товарной группы или общего итога отчета.

Рассмотрим пример: в группе «Молочная продукция» было продано 100 пачек молока «Простоквашино» и 50 пачек йогурта «Данон». С точки зрения физического количества продано 150 единиц. Но с точки зрения SKU — продано всего 2 уникальных вида товара. Проанализируем, как заставить 1С правильно суммировать эти показатели.

Техническая реализация через ресурсы СКД

Основная работа по настройке итогов в 1С 8.3 (и 8.2) происходит на закладке «Ресурсы» схемы компоновки данных. Именно здесь мы определяем, как система будет агрегировать данные при сворачивании группировок. Разберем по шагам правильный алгоритм настройки:

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

При такой настройке на уровне детальных записей 1С по-прежнему будет показывать «1», но при выводе итогов по группе система выполнит операцию COUNT DISTINCT по всем элементам, входящим в эту группу, и выдаст корректное количество уникальных ссылок.

Учет характеристик при расчете SKU

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

Выясним, как изменить формулу для учета характеристик. В ресурсах выражение должно выглядеть следующим образом:

Количество(Различные Номенклатура, ХарактеристикаНоменклатуры)

Это позволит системе корректно идентифицировать каждую уникальную товарную позицию, представленную на полке. Проанализируем ситуацию, если характеристики не используются: в этом случае достаточно первого варианта формулы.

Бизнес-логика и аналитическая ценность показателя

Зачем заказчику может понадобиться этот отчет? Посмотрим на ситуацию глазами категорийного менеджера. Показатель «Количество SKU» позволяет рассчитать несколько критически важных метрик:

Специфика «АСТОР: Торговый Дом»

Проанализируем особенности работы в отраслевом решении «АСТОР». Данная конфигурация глубоко интегрирована с понятием ассортиментных матриц. В системе часто присутствуют регистры, отвечающие за «Активный ассортимент». При построении отчета по SKU рекомендуется добавлять фильтрацию по статусу товара в матрице, чтобы отделять товары, которые должны продаваться, от случайных остатков или выведенных из ассортимента позиций.

Возможные ловушки при расчетах за период

Разберем типичную ошибку новичков при расчете SKU за длительный период (например, за месяц с разбивкой по дням). Математически сумма SKU за каждый день не равна количеству SKU за весь месяц.

Пример:
Понедельник: продан Товар А и Товар Б (Итого: 2 SKU).
Вторник: продан Товар Б и Товар В (Итого: 2 SKU).
Если мы просто просуммируем итоги дней, получим 4 SKU. Но фактически за два дня было продано всего 3 уникальных товара (А, Б, В).

Чтобы избежать этой ошибки в 1С, необходимо настраивать отчет так, чтобы агрегация Количество(Различные ...) всегда выполнялась от исходных данных (регистра накопления) для каждого уровня группировки периода. В СКД это решается правильной настройкой итогов по полям периода на вкладке «Ресурсы».

Заключение

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

← На главную