Склад · распределение дефицита
Кому достанется дефицитный товар: правила распределения и сохранение обещаний
Когда заказов больше, чем пригодного товара, одинаковый остаток допускает несколько разных решений. Можно исполнить самые ранние обещания, защитить установленный класс обслуживания или собрать больше целых заказов. Выбор должен быть явным: случайный порядок открытия документов не заменяет политику распределения.
Сначала определите, что разрешено распределять
Руководителю нужны два решения: какие обязательства уже защищены и по какому правилу распределяется оставшийся ресурс. Защищённый резерв нельзя незаметно включить в общий конкурс заново. Причиной защиты может быть подтверждённая отгрузка, индивидуально согласованное условие или уже начатая комплектация. Конкретную границу задаёт бизнес, а не название статуса в программе.
Зафиксируйте товар, вариант, склад и момент расчёта. От физического наличия отделите непригодное и заблокированное количество. Затем выделите ранее закреплённые пригодные единицы. Поступление завтра не увеличивает возможность отгрузить сегодня; оно относится к отдельной дате и подтверждению готовности. Резерв будущей поставки нужно показывать иначе, чем резерв товара на полке.
Официальная документация Microsoft разделяет резервирование физического и ожидаемого запаса, а также описывает приоритеты и закрепление количества за заказом. Это полезная модель требований, но не подтверждение аналогичных настроек любой другой системы. Microsoft Learn: резервирование количества.
Запишите политику до запуска расчёта
Для каждой заявки установите допускающие условия: товар соответствует заказу, место исполнения подходит, нужный срок достижим, строка не отменена. Только затем применяйте приоритет. Иначе «важный» заказ получит количество, которое физически не может использовать.
Порядок сравнения должен быть однозначным. Например: сначала согласованный класс обслуживания, внутри него обещанный срок, затем время подтверждения заказа и стабильный идентификатор при полном совпадении. Отдельно решите, можно ли выдать часть строки и что делать с целым заказом, который не помещается в остаток: остановить очередь или перейти к следующему. Оба варианта имеют последствия; скрытого значения по умолчанию быть не должно.
В Business Central отдельно описаны распределение без конфликтов, равное распределение и приоритет клиента. Сам факт существования разных политик показывает, почему один результат нельзя считать универсально правильным. Наш пример ниже использует собственное явно заданное правило. Microsoft Learn: политики распределения.
Учебный пример: 28 пригодных единиц и 38 обязательств
Все числа условные. На одном складе физически 32 одинаковые единицы обычного товара. Четыре заблокированы после осмотра, поэтому пригодно 28. Восемь пригодных единиц уже защищены под заказ P. Для нового распределения остаётся 28 − 8 = 20. Других поступлений до рассматриваемого срока нет.
- A: нужно 8, класс 1 (высокий), обещание на 11 октября; частичное исполнение допустимо.
- B: нужно 12, класс 1 (высокий), обещание на 11 октября; частичное исполнение запрещено.
- C: нужно 10, класс 2 (обычный), обещание на 10 октября; частичное исполнение допустимо.
A подтверждён раньше B. Принята политика «класс, затем срок, затем подтверждение». Получается: A получает 8, остаётся 12; B получает целиком 12; C получает 0. Вместе с P закреплено 8 + 8 + 12 = 28. Физически по-прежнему 32, из них четыре заблокированы. Открытый дефицит C равен десяти, свободного пригодного товара нет.
Если вместо класса первым поставить срок, C получит 10, A получит 8, а для B останется только 2. При запрете дробления B не получает эти две единицы. Если правило разрешает переход к следующему заказу, остаток можно рассматривать дальше; в нашем списке следующего нет. Закреплено 26 вместе с P, свободно 2, непокрытый B равен 12.
Так первая политика использует весь пригодный товар, но нарушает более раннее обещание C. Вторая защищает ранний срок, однако оставляет две единицы без распределения. Это не арифметическая ошибка. Руководитель должен решить, какое обязательство имеет преимущество, и назначить работу с затронутым клиентом.
Почему пропорция не устраняет конфликт
На три новых заказа требуется 30 единиц при ресурсе 20. Простое пропорциональное распределение дало бы A примерно 5,33, B 8, C примерно 6,67. Оно нарушает целочисленность товара и условие B о полном исполнении. Округление результатов независимо по строкам также может изменить общий расход ресурса.
Даже корректный алгоритм целых чисел не выбирает коммерческую цель за владельца. Максимум отгруженных единиц, максимум завершённых заказов и защита обещанного срока могут давать разные наборы победителей. Если используется отдельная квота канала, объясните, когда неиспользованный остаток можно передать другому каналу. Квота сама по себе не является ещё одной физической партией.
Новое поступление и отмена: пересчитывайте остаток обязательства
Продолжим первый вариант: P = 8, A = 8, B = 12, C = 0. Приходит шесть пригодных единиц. После подтверждения приёмки пригодный ресурс становится 34; ранее закреплённые 28 сохраняются, а шесть новых получают C. Теперь C обеспечен на 6 из 10, непокрытый остаток равен 4.
Затем клиент отменяет B целиком, пока товар ещё не отобран. Освобождаются 12 единиц. C требуется только оставшиеся четыре, а не исходные десять повторно. После их закрепления P = 8, A = 8, C = 10, свободно 8. Проверка: 8 + 8 + 10 + 8 = 34. Заблокированные четыре остаются отдельно; общий физический остаток после поступления равен 38.
Отмена резерва не создаёт приход. Если B уже отгружен, такой сценарий неприменим: понадобится возврат с проверкой фактического поступления. При ручном переносе резерва между живыми заказами сохраняйте исходный заказ, количество, основание, согласующего и новое обязательство. Клиентское обещание не считается исправленным только потому, что таблица снова сбалансировалась.
Какие данные и исключения нужны
У строки храните исходную потребность, уже исполненное, отменённое, закреплённое и ещё непокрытое количество. У резерва нужны источник обеспечения, дата доступности, степень защиты и связь с заказом. У расчёта: момент снимка, версия политики, исключения, результат по каждой строке и причина неполного обеспечения.
Не смешивайте отказ по приоритету с технической невозможностью: «не прошёл по классу», «нужна целая строка» и «поставка позже обещания» требуют разных действий. Для долгого ожидания задайте обзор владельцем, а не автоматическое бесконечное продление обещанного срока. Неизвестная дата поступления должна оставаться неизвестной.
Одновременные расчёты проверяются при фиксации. Если два сотрудника увидели свободные восемь, каждый не может независимо закрепить восемь. Один результат меняет доступный ресурс; второй должен перечитать состояние и показать новый дефицит. Повтор подтверждения одного результата не создаёт второй резерв.
Приёмочный чек-лист
- Снимок отделяет 32 физических, 28 пригодных и 20 распределяемых единиц.
- Две разные политики воспроизводят оба результата примера без скрытого снятия P.
- B не получает частичный резерв, ошибочно разрешающий частичную отгрузку.
- Новые шесть единиц покрывают C только после разрешённой приёмки.
- После отмены B система добавляет C четыре, сохраняет свободные восемь и историю решения.
- Повтор, устаревший снимок и ручной перенос не увеличивают суммарное обеспечение.
Обсудите эти сценарии с командой настройки склада SABSUS. Поддержку приоритетов, защиты резервов, истории и конкурентной фиксации подтвердите отдельно. Закупки дают контекст будущего обеспечения; непроверенная дата не заменяет пригодный остаток сегодня.
Частые вопросы
Нужно ли всегда обслуживать самого раннего покупателя?
Только если именно такое правило согласовано. Иначе сначала определите защищённые обязательства и порядок приоритетов.
Почему часть товара осталась свободной при дефиците?
Она может не покрывать целую неделимую строку либо не подходить по месту, сроку или условиям заказа.
Можно ли автоматически забрать резерв у менее важного заказа?
Лишь в рамках явно разрешённой политики перераспределения с историей и обработкой изменённого обещания. Само повышение приоритета другой заявки недостаточно.