Аналитика продаж 1С:УТ 11.5: дашборды, KPI и ABC

Аналитика продаж 1С:УТ 11.5: дашборды, KPI и ABC

Что изменилось в аналитике продаж 1С:УТ 11.5: обзор ключевых нововведений

Релиз 1С:Управление торговлей 11.5 принёс существенные изменения в подсистему аналитики продаж. Разработчики из фирмы «1С» сосредоточились на трёх направлениях: визуализация данных через интерактивные дашборды, расширенная система KPI для менеджеров и руководителей, а также переработанный механизм ABC/XYZ-анализа номенклатуры и клиентов. В 2026 году эти изменения стали стандартом для торговых предприятий, переходящих с версии 11.4 и более ранних.

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

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

Новая архитектура дашбордов в 1С:УТ 11.5

Главное визуальное изменение версии 11.5, переход на концепцию адаптивных дашбордов. В отличие от статичных панелей предыдущих версий, новые дашборды строятся на основе механизма «Варианты отчётов» с поддержкой виджетов. Каждый виджет, это самостоятельный элемент, который может отображать данные в виде графика, спидометра, таблицы или числового показателя.

Структура нового дашборда продаж

Дашборд «Монитор продаж» в 11.5 включает следующие блоки:

  • Блок текущего периода, выручка, количество заказов, средний чек за сегодня/неделю/месяц с динамикой относительно предыдущего периода.
  • Блок воронки продаж, визуализация конверсии от коммерческого предложения до отгрузки.
  • Блок топ-номенклатуры, рейтинг товаров по выручке и маржинальности с возможностью drill-down до позиции.
  • Блок менеджеров, сравнительная таблица KPI по сотрудникам отдела продаж.
  • Блок географии, распределение продаж по регионам (если заполнен реквизит «Регион» в справочнике контрагентов).

Технические особенности реализации

Новые дашборды используют объект ПанельМониторинга, который появился в платформе 8.3.23. Для программного создания виджета и добавления его на панель используется следующий подход:


// Пример программного получения данных для виджета дашборда
// Расчёт выручки за текущий месяц

Функция ПолучитьВыручкуЗаПериод(НачалоПериода, КонецПериода) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	СУММА(ПродажиОбороты.СуммаОборот) КАК Выручка,
		|	СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоДокументов
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		,
		|		) КАК ПродажиОбороты";

	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

	Результат = Запрос.Выполнить();

	Если Результат.Пустой() Тогда
		Возврат 0;
	КонецЕсли;

	Выборка = Результат.Выбрать();
	Выборка.Следующий();

	Возврат Выборка.Выручка;

КонецФункции

Важно: в 11.5 регистр накопления Продажи получил новые измерения, КатегорияКлиента и ГруппаМенеджеров, что позволяет строить срезы без дополнительных соединений с другими таблицами.

Расширенная система KPI для отдела продаж

В версии 11.5 появился полноценный конструктор KPI, доступный через раздел «Продажи» → «Настройки» → «Показатели эффективности». Ранее для реализации подобного функционала требовались серьёзные доработки или использование внешних отчётов.

Стандартные KPI, доступные «из коробки»

Показатель Формула расчёта Источник данных
Выполнение плана продаж, % Факт / План × 100 Рег. накопления Продажи + Планы продаж
Средний чек Выручка / Количество заказов Рег. накопления Продажи
Конверсия воронки, % Заказы / КП × 100 Рег. накопления СостоянияЗаказовКлиентов
Маржинальность, % (Выручка - Себестоимость) / Выручка × 100 Рег. накопления Продажи (ресурс СебестоимостьОборот)
Количество новых клиентов Клиенты с первой покупкой в периоде Рег. накопления Продажи + Справочник Контрагенты
Индекс удержания клиентов Повторные покупки / Все клиенты × 100 Рег. накопления Продажи (новый алгоритм)

Программный расчёт KPI маржинальности

Ниже приведён пример расчёта маржинальности по менеджерам за произвольный период, один из наиболее востребованных показателей в новой системе KPI:


// Расчёт KPI маржинальности по менеджерам
// Используется регистр накопления Продажи с ресурсами Сумма и Себестоимость

Функция РассчитатьМаржинальностьПоМенеджерам(НачалоПериода, КонецПериода) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ПродажиОбороты.Менеджер КАК Менеджер,
		|	СУММА(ПродажиОбороты.СуммаОборот) КАК Выручка,
		|	СУММА(ПродажиОбороты.СебестоимостьОборот) КАК Себестоимость,
		|	ВЫБОР
		|		КОГДА СУММА(ПродажиОбороты.СуммаОборот) = 0 ТОГДА 0
		|		ИНАЧЕ (СУММА(ПродажиОбороты.СуммаОборот) -
		|			СУММА(ПродажиОбороты.СебестоимостьОборот)) /
		|			СУММА(ПродажиОбороты.СуммаОборот) * 100
		|	КОНЕЦ КАК МаржинальностьПроцент
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		Менеджер,
		|		) КАК ПродажиОбороты
		|СГРУППИРОВАТЬ ПО
		|	ПродажиОбороты.Менеджер
		|УПОРЯДОЧИТЬ ПО
		|	Выручка УБЫВ";

	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

	Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

// Вывод результата в таблицу значений формы
Процедура ОбновитьТаблицуKPI()

	НачалоПериода = НачалоМесяца(ТекущаяДата());
	КонецПериода = КонецМесяца(ТекущаяДата());

	Данные = РассчитатьМаржинальностьПоМенеджерам(НачалоПериода, КонецПериода);

	ТаблицаKPI.Очистить();

	Для Каждого Строка Из Данные Цикл
		НоваяСтрока = ТаблицаKPI.Добавить();
		НоваяСтрока.Менеджер = Строка.Менеджер;
		НоваяСтрока.Выручка = Строка.Выручка;
		НоваяСтрока.Себестоимость = Строка.Себестоимость;
		НоваяСтрока.МаржинальностьПроцент = Строка.МаржинальностьПроцент;
	КонецЦикла;

КонецПроцедуры

Настройка плановых значений KPI

В 11.5 появился документ «План показателей эффективности», который позволяет задавать целевые значения KPI в разрезе менеджеров, подразделений и периодов. Данные хранятся в регистре сведений ПлановыеПоказателиЭффективности. Это означает, что теперь не нужно создавать собственные механизмы хранения плановых показателей, всё доступно штатными средствами.

Переработанный ABC-анализ: новые алгоритмы и возможности

ABC-анализ в 1С:УТ существовал и раньше, однако в версии 11.5 он был переработан концептуально. Ключевые изменения:

  • Поддержка трёхмерного ABC/XYZ-анализа одновременно по трём критериям.
  • Возможность задавать произвольные границы групп (не только классические 80/15/5).
  • Автоматическое присвоение категории клиенту и номенклатуре по результатам анализа с записью в справочник.
  • Новый регламентный отчёт с рассылкой результатов ABC по расписанию.
  • Интеграция результатов ABC с ценовыми группами и условиями продаж.

Алгоритм ABC-анализа в 11.5: как это работает

Стандартный алгоритм ABC в новой версии реализован через обработку АВСАнализПродаж. Логика следующая:

  1. Система получает обороты по выбранному критерию (выручка, прибыль, количество) за указанный период.
  2. Объекты анализа (номенклатура или контрагенты) сортируются по убыванию значения критерия.
  3. Рассчитывается накопленная доля каждого объекта в общем итоге.
  4. На основе пороговых значений объектам присваивается категория A, B или C.
  5. Результаты записываются в регистр сведений КатегорииАВС.

Программная реализация ABC-анализа

Рассмотрим, как реализовать собственный ABC-анализ программно, например, для нестандартных критериев классификации:


// Программный ABC-анализ номенклатуры по выручке
// Возвращает таблицу значений с категориями A, B, C

Функция ВыполнитьАВСАнализНоменклатуры(
		НачалоПериода,
		КонецПериода,
		ПорогA = 80,
		ПорогB = 95) Экспорт

	// Шаг 1: Получаем обороты по номенклатуре
	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ПродажиОбороты.Номенклатура КАК Номенклатура,
		|	СУММА(ПродажиОбороты.СуммаОборот) КАК Выручка
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		Номенклатура,
		|		) КАК ПродажиОбороты
		|СГРУППИРОВАТЬ ПО
		|	ПродажиОбороты.Номенклатура
		|УПОРЯДОЧИТЬ ПО
		|	Выручка УБЫВ";

	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

	Таблица = Запрос.Выполнить().Выгрузить();

	// Шаг 2: Считаем общую выручку
	ОбщаяВыручка = 0;
	Для Каждого Строка Из Таблица Цикл
		ОбщаяВыручка = ОбщаяВыручка + Строка.Выручка;
	КонецЦикла;

	Если ОбщаяВыручка = 0 Тогда
		Возврат Новый ТаблицаЗначений;
	КонецЕсли;

	// Шаг 3: Рассчитываем накопленную долю и присваиваем категории
	НакопленнаяДоля = 0;

	Таблица.Колонки.Добавить("ДоляПроцент", Новый ОписаниеТипов("Число"));
	Таблица.Колонки.Добавить("НакопленнаяДоля", Новый ОписаниеТипов("Число"));
	Таблица.Колонки.Добавить("КатегорияАВС", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(1)));

	Для Каждого Строка Из Таблица Цикл
		Доля = Строка.Выручка / ОбщаяВыручка * 100;
		Строка.ДоляПроцент = Доля;
		НакопленнаяДоля = НакопленнаяДоля + Доля;
		Строка.НакопленнаяДоля = НакопленнаяДоля;

		// Присваиваем категорию на основе накопленной доли
		Если НакопленнаяДоля <= ПорогA Тогда
			Строка.КатегорияАВС = "A";
		ИначеЕсли НакопленнаяДоля <= ПорогB Тогда
			Строка.КатегорияАВС = "B";
		Иначе
			Строка.КатегорияАВС = "C";
		КонецЕсли;
	КонецЦикла;

	Возврат Таблица;

КонецФункции

// Запись результатов ABC в регистр сведений
Процедура ЗаписатьРезультатыАВС(РезультатАВС, ДатаАнализа)

	Для Каждого Строка Из РезультатАВС Цикл

		МенеджерЗаписи = РегистрыСведений.КатегорииАВС.СоздатьМенеджерЗаписи();
		МенеджерЗаписи.Период = ДатаАнализа;
		МенеджерЗаписи.Номенклатура = Строка.Номенклатура;
		МенеджерЗаписи.КатегорияАВС = Строка.КатегорияАВС;
		МенеджерЗаписи.Выручка = Строка.Выручка;
		МенеджерЗаписи.ДоляПроцент = Строка.ДоляПроцент;
		МенеджерЗаписи.Записать();

	КонецЦикла;

КонецПроцедуры

XYZ-анализ и совмещённая матрица ABC/XYZ

Если ABC-анализ классифицирует объекты по объёму продаж, то XYZ-анализ оценивает стабильность спроса. В 11.5 оба метода объединены в единый инструмент с матричным представлением результатов.

Категории XYZ-анализа

  • X, стабильный спрос, коэффициент вариации до 10%.
  • Y, умеренные колебания, коэффициент вариации 10, 25%.
  • Z, нестабильный или сезонный спрос, коэффициент вариации свыше 25%.

Матрица ABC/XYZ даёт 9 сегментов: AX, AY, AZ, BX, BY, BZ, CX, CY, CZ. Каждый сегмент требует своей стратегии управления запасами и продажами. Например, товары AX, главный приоритет: высокая выручка и предсказуемый спрос. Товары CZ, кандидаты на вывод из ассортимента.

Расчёт коэффициента вариации для XYZ


// Расчёт коэффициента вариации для XYZ-анализа
// Анализируем продажи по месяцам за последние 12 месяцев

Функция РассчитатьКоэффициентВариации(Номенклатура, НачалоПериода, КонецПериода) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК Месяц,
		|	СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		МЕСЯЦ,
		|		Номенклатура = &Номенклатура) КАК ПродажиОбороты
		|СГРУППИРОВАТЬ ПО
		|	НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)
		|УПОРЯДОЧИТЬ ПО
		|	Месяц";

	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

	Таблица = Запрос.Выполнить().Выгрузить();

	Если Таблица.Количество() < 2 Тогда
		// Недостаточно данных для расчёта, относим к категории Z
		Возврат 100;
	КонецЕсли;

	// Считаем среднее значение
	Сумма = 0;
	Для Каждого Строка Из Таблица Цикл
		Сумма = Сумма + Строка.Количество;
	КонецЦикла;
	Среднее = Сумма / Таблица.Количество();

	Если Среднее = 0 Тогда
		Возврат 100;
	КонецЕсли;

	// Считаем среднеквадратическое отклонение
	СуммаКвадратов = 0;
	Для Каждого Строка Из Таблица Цикл
		Отклонение = Строка.Количество - Среднее;
		СуммаКвадратов = СуммаКвадратов + Отклонение * Отклонение;
	КонецЦикла;

	СКО = Sqrt(СуммаКвадратов / Таблица.Количество());

	// Коэффициент вариации в процентах
	Возврат СКО / Среднее * 100;

КонецФункции

// Определение категории XYZ по коэффициенту вариации
Функция ОпределитьКатегориюXYZ(КоэффициентВариации) Экспорт

	Если КоэффициентВариации <= 10 Тогда
		Возврат "X";
	ИначеЕсли КоэффициентВариации <= 25

Определение категории XYZ (продолжение)


	ИначеЕсли КоэффициентВариации <= 25 Тогда
		Возврат "Y";
	Иначе
		Возврат "Z";
	КонецЕсли;

КонецФункции

Пороговые значения коэффициента вариации, стандартные: до 10%, категория X (стабильный спрос), 10, 25%, категория Y (умеренные колебания), свыше 25%, категория Z (непредсказуемый спрос). При необходимости пороги можно адаптировать под специфику конкретного бизнеса.

Найдите специалиста для решения этой задачи на koderion.ru