Как организовать прогнозирование продаж и расчет закупок в 1С:УТ 11.4

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

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

Штатные механизмы планирования в 1С:УТ 11

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

Разберем работу обработки ФормированиеПотребностей. Этот инструмент ориентирован на оперативное пополнение запасов. Основной метод расчета здесь — поддержание запаса на основании среднего расхода. Система анализирует продажи за указанный период, вычисляет среднедневное потребление и, исходя из срока поставки, предлагает объем закупки.

Рассмотрим по шагам настройку этого метода:

  1. Перейдем в настройки обеспечения потребностей для конкретного склада или группы товаров.
  2. Выберем метод обеспечения "Расчет по норме" или "Расчет по статистике".
  3. Укажем период анализа (например, последние 3 месяца), чтобы система могла рассчитать среднедневное потребление.
  4. Зададим страховой запас, который позволит нивелировать случайные всплески спроса.

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

Сервис «1С:Прогноз продаж» и использование машинного обучения

Для компаний, которым недостаточно расчета «по среднему», фирма 1С предлагает облачный сервис машинного обучения (ML). Хотя полноценная интеграция заявлена для более свежих релизов (начиная с 11.5.8), концепция сервиса применима и для адаптации в 1С:УТ 11.4 через расширения.

Выясним причину, почему ML-прогноз эффективнее простых формул. Сервис использует градиентный бустинг и анализирует более 20 факторов, включая:

Для работы с подобными алгоритмами важно правильно подготовить данные. Проанализируем ситуацию, когда статистика за 3 года может быть «отравлена» разовыми крупными сделками. В коде обработки для подготовки данных мы можем использовать очистку от выбросов:


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

Математические методы и коэффициенты сезонности

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

Разберем метод наименьших квадратов (МНК) для прогнозирования тренда. Этот математический аппарат позволяет построить прямую или кривую, максимально близкую к историческим точкам продаж. Реализация МНК в 1С требует решения системы линейных уравнений. Рассмотрим пример структуры функции для расчета прогноза по тренду:


Функция РассчитатьПрогнозМНК(МассивПродаж)
    // МассивПродаж - массив чисел за последовательные периоды
    // Реализуем вычисление параметров линейной регрессии y = ax + b
    КоличествоПериодов = МассивПродаж.Количество();
    СуммаX  = 0; СуммаY  = 0; СуммаXY = 0; СуммаX2 = 0;
    
    Для т = 1 По КоличествоПериодов Цикл
        X = т;
        Y = МассивПродаж[т-1];
        СуммаX  = СуммаX + X;
        СуммаY  = СуммаY + Y;
        СуммаXY = СуммаXY + X * Y;
        СуммаX2 = СуммаX2 + X * X;
    КонецЦикла;
    
    // Вычисляем коэффициент а (наклон тренда)
    Знаменатель = (КоличествоПериодов * СуммаX2 - СуммаX * СуммаX);
    Если Знаменатель = 0 Тогда Возврат 0; КонецЕсли;
    
    КоэффициентА = (КоличествоПериодов * СуммаXY - СуммаX * СуммаY) / Знаменатель;
    КоэффициентБ = (СуммаY - КоэффициентА * СуммаX) / КоличествоПериодов;
    
    // Прогноз на следующий период
    Возврат КоэффициентА * (КоличествоПериодов + 1) + КоэффициентБ;
КонецФункции

Проблема замены брендов и аналогов

Важный аспект, затронутый в обсуждении — нестабильность рынка и уход старых брендов. Если мы просто возьмем статистику за 3 года по товару, который больше не поставляется, прогноз будет бесполезен. Выясним, как решить эту задачу технически.

Рассмотрим внедрение механизма «склейки истории». Для этого создается регистр сведений АналогиНоменклатурыДляПланирования. При расчете прогноза для нового товара система должна:

  1. Найти исторический аналог (например, ушедший бренд).
  2. Прочитать его продажи за прошлые периоды.
  3. Подставить эти данные в модель расчета для нового артикула.

Это позволит избежать проблемы «нулевого склада» при вводе новинок на замену старым позициям.

Интеграция с Python для продвинутого анализа

Если штатных средств недостаточно, проанализируем возможность использования Python. Современные библиотеки, такие как Prophet от Meta или CatBoost от Yandex, показывают гораздо более высокую точность, чем встроенные инструменты 1С.

Схема взаимодействия выглядит следующим образом:

  1. В 1С формируется JSON-файл с историей продаж (дата, количество, номенклатура, склад).
  2. Файл передается во внешнюю службу (скрипт на Python).
  3. Скрипт выполняет расчет, учитывая сложные закономерности.
  4. Результат возвращается в 1С и записывается в документ ПланЗакупок.

Практические советы по внедрению

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

1. Проверка на исторических данных. Прежде чем доверять закупки алгоритму, проверим его точность. Попробуем спрогнозировать продажи за уже прошедший квартал (например, 1 квартал 2022 года), используя данные 2019-2021 годов. Сравним прогноз с фактическими продажами. Если погрешность более 20-30%, модель требует уточнения параметров.

2. Использование ABC-XYZ анализа. Не стоит прогнозировать всё подряд. Для группы AX (высокая выручка, стабильный спрос) используем сложные математические модели. Для группы CZ (редкие, непредсказуемые продажи) лучше использовать метод «заказ под заказ» или минимальный страховой запас, так как статистика здесь бессильна.

3. Динамическое управление буфером. В условиях высокой неопределенности (как в периоды резких изменений рынка) рассмотрим переход от прогнозирования к методике ТОС (Теория ограничений). Вместо попытки угадать спрос, система следит за остатком: если товар продается быстрее, чем ожидалось, и остаток попадает в «красную зону», система автоматически увеличивает объем следующего заказа.

Таким образом, готового «волшебного» решения, которое нажатием одной кнопки закроет все потребности в прогнозировании, не существует. Однако сочетание типовых инструментов 1С:УТ 11.4 с грамотной очисткой данных и использованием современных алгоритмов (через внешние сервисы или собственные доработки) позволяет значительно сократить ошибки в закупках и повысить оборачиваемость склада.

← На главную