К содержимому
MoranaLabs
кейс — дистрибуция · 1С:УНФ

Эксель закупщика против порогов поставщика 

Закупщик собирает дефицит руками, а потом в уме считает, сколько не хватает до ступени акции. Стенд ниже делает обе работы за миллисекунды и показывает то, что обычно прячут: где добор выгоден, а где он превращается в замороженные на складе деньги. Проект закрыт NDA, поэтому наполнение вымышлено — расчет и порядок работы те же.

Проект закрыт NDA: ни заказчика, ни его номенклатуру, ни условия поставщиков показать нельзя. Поэтому каталог, бренды и цены на стенде вымышлены, совпадения с реальными компаниями исключены.

Заменены данные, а не механика. Как собирается потребность, почему процентные акции не складываются, как добор упирается в оборачиваемость и деньги, что делать с минималкой и днем отгрузки — все как в рабочей системе, включая порядок этапов внедрения. Цифры в тексте считает тот же движок, что крутит стенд.

01 — стенд

Понедельник, шесть заказов, три поставщика

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

закупочный стол · понедельник, 18 августа · 1С:УНФдефицит на 413 тыс ₽ · 3 позиц.
потребность · из заказов покупателей
  • Сплит-система 12, инверторAT-S12
    нужно 4склад 3 · в резерве 3дефицит 4срок 4 дн
    ЗК-1054 (4 шт)
  • Сплит-система 18, инверторAT-S18
    нужно 2склад 0дефицит 2срок 4 дн
    ЗК-1054 (2 шт)
  • Сплит-система 09, инверторAT-S09
    нужно 8склад 6 · в резерве 5дефицит 7срок 6 дн
    ЗК-1043 (8 шт)
приход на склад: понедельник, следующая неделя (+7 дн.)

Так заказ выглядит, если просто сложить дефицит: без порогов акций и без проверки минималки.

позициядефицитдоборитогосумма
Сплит-система 09, инверторAT-S09 · оборот 18 дн77191 800 ₽
Сплит-система 12, инверторAT-S12 · оборот 22 дн44127 600 ₽
Сплит-система 18, инверторAT-S18 · оборот 41 дн2293 600 ₽
акции сработали
  • ни одна: до порогов не дотянулись
не взято и почему
  • все достижимое взято
платим поставщику
413 000 ₽
скидка по акциям
0 ₽
в доборе на склад
0 ₽
чистый эффект
0 ₽

Чистый эффект считается против варианта «ровно дефицит» (413 000 ₽): товар из добора остается на складе и уйдет за срок своей оборачиваемости, поэтому его стоимость возвращается в расчет, а цена замороженных в нем денег (0 ₽ при ставке 22,0 %) — вычитается.

поставка не успевает
  • ЗК-1054 — обещано через 4 дн, приход через 7: опоздание 3 дн, под риском 112 600 ₽ маржи. Решение закупщика: отдельная досылка сегодня или сдвиг отгрузки.
  • ЗК-1043 — обещано через 6 дн, приход через 7: опоздание 1 дн, под риском 116 000 ₽ маржи. Решение закупщика: отдельная досылка сегодня или сдвиг отгрузки.
результат — документ в 1С, а не отчет со списком
ограничители доборабез них оптимизатор всегда найдет способ выбить скидку складом
лимит денег на добор250 000 ₽

потолок, выше которого закупщик добирать не готов

оборачиваемость не хуже30 дн

медленные позиции в добор не попадают вообще

стоимость денег22,0 %

во что обходится капитал, замороженный в складе

02 — где теряются деньги

Четыре места, где ручная закупка протекает

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

Дефицит собирается глазами

01

Закупщик утром обходит вчерашние заказы и переписывает нехватку в таблицу. Пропущенная строка всплывает через неделю звонком клиента. Лечится не дисциплиной: потребность должна попадать в реестр по событию — прошла оплата, снялось обеспечение, — а не по обходу списка.

на стенде: 3 позиции дефицита из 6 заказов

Пороги акций считаются в уме

02

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

на стенде: 64 939 ₽ скидки против 0 ₽ без расчета

Добор превращается в неликвид

03

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

на стенде: при пороге оборачиваемости 8 дней добор падает до 0 ₽

Товар уходит не тому клиенту

04

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

на стенде: резерв виден в потребности отдельной колонкой

03 — что считает движок

Пять правил, из которых складывается заказ

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

01

Потребность — только по оплаченным

Заказ без оплаты в закупку не попадает: под него не встает резерв, и вкладывать деньги в товар под необязательство означает делать неликвид с другой стороны. На стенде такой заказ показан отдельной строкой — видно, что он не потерян, а сознательно отложен.

02

Скидки не складываются

Поставщик дает лучшую из подходящих процентных акций, а не их сумму. Самодельные расчеты в таблице ошибаются именно здесь: заказ уезжает с ожиданием двенадцати процентов, в счете приходит семь, и закупщик идет разбираться. Комплектный бонус — отдельная строка, он суммируется.

03

Цель выбирается перебором

Целей у добора несколько: порог по количеству, каждая ступень по сумме, выравнивание пары по комплектной акции. Для каждой считается свой добор и свой чистый эффект, побеждает лучший. Жадный проход по акциям подряд дает случайный результат: первая же акция забирает весь лимит.

04

Минималка — условие, а не оптимизация

Если заказ не дотягивает до минимальной суммы, поставщик его просто не соберет. Поэтому до минималки система добирает даже тогда, когда это невыгодно, и говорит об этом прямо. Альтернатива — ждать следующей отгрузки, и такое решение принимает закупщик, а не машина.

05

Срок считается вместе с деньгами

У импортера один день отгрузки в неделю. Разница между «успели в четверг» и «не успели» — это семь дней ожидания клиентом, и на стенде видно, каким заказам поставка уже не успевает и сколько маржи под риском.

про размерностьНа стенде четырнадцать позиций и три акции на поставщика, поэтому оптимум берется перебором целей прямо в браузере. На реальном объеме — сотни строк, десятки акций, несколько складов и ограничения по бюджету — задача решается целочисленным солвером на сервере за секунды. Критерий при этом тот же самый, меняется только способ добраться до оптимума.

04 — про нейросети

Деньги здесь считает солвер, а не языковая модель

Расчет закупки обязан быть воспроизводимым: одни и те же данные — один и тот же ответ, который закупщик может пересчитать на калькуляторе и оспорить. Языковая модель этого свойства не дает, поэтому в денежный контур она не заходит.

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

05 — порядок внедрения

Оптимизатор ставится последним

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

этап 0около недели

Витрина обеспечения

Менеджер видит в заказе покупателя: зарезервировано, заказано у поставщика, ожидается такого-то числа. Перестает дергать закупщика по каждой позиции.

этап 12–3 недели

Реестр потребностей вместо таблицы

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

этап 21–2 недели

Резервы при проведении прихода

Поставка расходится по заказам в момент проведения накладной, до того как остаток станет виден как свободный. Плюс перенос резерва между заказами в один клик с журналом.

этап 33–4 недели

Движок акций и оптимизатор

Формализация акций в правила, расчет добора, генерация заказа поставщику. Ставится последним: без реестра потребностей считать нечего, а без истории нечем доказать эффект.

условие приемкиРезультатом работы должен быть документ «Заказ поставщику» в вашей базе, готовый к подтверждению одной кнопкой. Отчет со списком, из которого закупщик переносит строки руками, — это двойная работа, и такая система не приживается. Это первое, что фиксируется в постановке, и последнее, что проверяется на приемке.

FAQ

Вопросы про автоматизацию закупок

Почему данные на стенде вымышленные?
Потому что проект закрыт NDA. Показать номенклатуру заказчика, его поставщиков, условия акций и закупочные цены мы не имеем права: это коммерческая тайна, причем чувствительная — по одним только условиям акций конкурент восстановит структуру его закупки. Поэтому каталог, бренды и цены на стенде выдуманы, а отрасль намеренно смещена. Заменены при этом только данные: как считается потребность, почему процентные акции не складываются, как добор упирается в оборачиваемость и потолок денег, зачем из выгоды вычитается стоимость замороженного капитала — все это работает ровно так же, как в рабочей системе. Порядок этапов внедрения на странице тоже настоящий.
Это искусственный интеллект?
Нет, и это принципиально. Деньги считает детерминированный расчет: правила акций, ограничения по обороту и бюджету, целочисленная оптимизация. Такой расчет воспроизводим и проверяем — на одних и тех же данных он всегда дает один и тот же ответ, а закупщик может пересчитать его на калькуляторе и убедиться. Языковая модель уместна ровно в двух вспомогательных местах: превратить письмо поставщика с условиями акции в черновик формального правила и разобрать входящий счет для сверки. Оба раза с подтверждением человеком.
Мы не хотим пускать подрядчика в свою конфигурацию 1С
Разумно, и это рабочий сценарий. Мы делаем внешний сервис: он получает данные по обмену, считает и возвращает готовый состав заказа, а обвязку внутри УНФ пишет ваш программист или франчайзи. Мы не 1С-франчайзи и не претендуем на роль вашего сопровождения конфигурации — наша часть это слой принятия решений, а не доработка типовых объектов. Второй вариант, если своего 1С-ника нет: работаем в тестовой копии базы и отдаем расширение.
Что нужно от нас, чтобы посчитать задачу?
Три вещи. Первое — три-пять реальных акций от разных поставщиков в том виде, в каком они приходят: письмом, файлом, страницей в личном кабинете. Второе — понимание, откуда берутся закупочные цены и как часто обновляются. Третье — ответ на вопрос, кто пишет код внутри вашей 1С. Без первого пункта оценка оптимизатора превращается в гадание: акция, завязанная на выборку плана квартала, отличается по сложности от порога по сумме на порядок.
Сколько это стоит и сколько занимает?
Первые три этапа — витрина обеспечения, реестр потребностей и резервы при проведении прихода — занимают четыре-пять недель и стоят от 500 тысяч рублей. Это уже убирает таблицу закупщика и гонку за остатком. Оптимизатор акций считается отдельно после формализации правил: полный контур с ним выходит от 1,1 миллиона. Порядок оплаты обычный для работ такого объема: половина на старте, тридцать процентов после демонстрации на ваших данных, остаток после передачи.
Почему система не может просто брать самое дешевое?
Потому что дешевое по строке и дешевое по поставке — разные вещи. Цена позиции меняет сумму на проценты, а промах мимо порога акции или срыв дня отгрузки меняет ее на десятки процентов и на неделю ожидания. На стенде это видно на цифрах: заказ с добором стоит дороже на 129 761 ₽, но чистый эффект с учетом скидки и стоимости замороженных денег — 42 970 ₽ в плюс.
— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA до передачи данных

Любой один канал — куда удобнее, туда и ответим

Или сразу написать в Telegram

Без спама и звонков-роботов. Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и обработкой персональных данных.