Как выполнить ABC-классификацию номенклатуры по нескольким показателям в СКД?

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

При построении отчетов в 1С:Предприятие часто возникает задача проведения АВС-анализа. Классический подход предполагает использование функции КлассификацияАВС, которая ранжирует данные по одному ресурсу. Однако на практике часто требуется учитывать сразу несколько параметров, например, сумму продаж и количество проданных товаров. Рассмотрим, как решить эту задачу, не прибегая к сложному программированию в цикле.

Понимание ограничений стандартной функции

Функция КлассификацияАВС в СКД ожидает один числовой показатель, по которому будет строиться накопленный итог. Если вы попытаетесь применить её одновременно к сумме и количеству, система не сможет определить приоритет, так как эти показатели имеют разные единицы измерения и разную значимость. Для решения этой проблемы мы используем логическое выражение ВЫБОР.

Решение задачи с помощью выражения ВЫБОР

Чтобы классифицировать товар, учитывая и сумму, и количество, мы можем рассчитать класс для каждого показателя отдельно, а затем сравнить их. В качестве критерия выбора можно использовать правило «худшего» или «лучшего» показателя. Разберем подробнее, как прописать это в вычисляемом поле ресурса:

Для создания такого условия перейдем в настройки СКД, добавим новое вычисляемое поле и в выражении ресурса пропишем следующую логику:


ВЫБОР
    КОГДА КлассификацияABC("Сумма(СуммаВыручкиОборот)", 3, "20,50", "Номенклатура") < 
          КлассификацияABC("Сумма(КоличествоОборот)", 3, "20,50", "Номенклатура")
        ТОГДА КлассификацияABC("Сумма(СуммаВыручкиОборот)", 3, "20,50", "Номенклатура")
    ИНАЧЕ КлассификацияABC("Сумма(КоличествоОборот)", 3, "20,50", "Номенклатура")
КОНЕЦ

Здесь мы используем функцию КлассификацияАВС дважды. В данном примере мы сравниваем результаты классификации и выбираем тот показатель, который дает наиболее строгое значение (в системе АВС 1-й класс - это А, 2-й - В, 3-й - С, поэтому оператор «меньше» возвращает класс с более высоким приоритетом).

Разбор параметров функции

  1. Первый параметр — "Сумма(Показатель)" — ресурс, по которому ведется расчет.
  2. Второй параметр — 3 — количество групп классификации (А, В, С).
  3. Третий параметр — "20,50" — границы диапазонов в процентах. В данном случае: до 20% — класс А, от 20% до 50% — класс В, свыше 50% — класс С.
  4. Четвертый (необязательный) параметр — "Номенклатура" — группировка, в рамках которой рассчитываются итоги.

Альтернативные способы оптимизации

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

Итоги работы

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

Помните, что при настройке параметров "20,50" важно следить за корректностью синтаксиса: отсутствие кавычек или неправильное количество параметров приведет к ошибке формирования отчета. Всегда проверяйте, чтобы переданные значения соответствовали количеству групп, указанному во втором аргументе функции.

← На главную