Компания занимается мелкооптовой торговлей продуктами питания - доставка с распределительного центра-склада по сотням магазинов в черте города и области тысяч наименований продовольственной продукции ежедневно согласно собираемым за день заказам - от торговых представителей, по EDI, по e-mail, телефону.
Поставка товаров осуществляется каждый день вечером, погрузка - ночью.
В таких условиях часть товарных позиций в собранных заказах обеспечить полностью не удается, так как заранее неизвестно точно, сколько вечером привезут товаров, и неизвестен общий объем заказов, так как они поступают из независимых друг от друга источников.
Возникает ситуация дефицита - какие-то заказы "обилетить" не получится, и надо решить, какие. Систему резервов использовать смысла нет, так как продовольственный бизнес высококонкурентен - не привез ты - привезет твой конкурент. И завтра зарезервированный товар уже в магазине не возьмут - на полке будет стоять продукт конкурента. И в любом случае, когда пакет заказов насчитывает от нескольких сотен до пары тысяч ежедневно - использовать механизм резервирования накладно.
В этой ситуации принимается решение о том, что необходимо просто уменьшить или удалить товарные позиции из заказа.
Предполагается, что отгрузка ведется в режиме "на завтра" - заказы собираются сегодня, грузятся ночью.
Данная разработка удаляет из заказов весь товар, отсутствующий на складе полностью, а товар, отсутствующий частично, позволяет распределять автоматически.
Перед использованием обработки клиенты делятся по категориям на VIP, основную массу и низкоприоритетные.
При составлении плана резки частичного дефицита позиции весь её остаток сначала выделяется для старшей (VIP) категории. Если остатка для старшей категории хватает, то она обеспечивается полностью (то есть количество данной позиции в заказах данной категории не изменяется совсем) и остаток минус объем заказов переносится для распределения на следующую по порядку категорию.
Если объем заказов на категорию больше оставшегося остатка, а остаток больше нуля - к заказам данной категории применяется стратегия распределения остатка по объему заказов, назначенная на данную категорию. Если остаток равен нулю - из всех заказов этой и нижестоящих категорий данный товар удаляется.
Стратегия - это алгоритм, который, собственно, и решает, кто сколько получит товара, если в пакете заказов на категорию нужно оставить только часть.
а) Стратегия «Не Резать»
Программа подбирает заказы из общего объема заказов таким образом, чтобы обеспечить максимально возможное количество заказов товаров под остаток без того, чтобы изменять количество товара в каждом заказе. Заказ либо будет обеспечен полностью, либо из него будет удалена строка с позицией.
Внимание! Если у вас заказ в этой категории объемом больше остатка, то пусть даже если он один-единственный - то товар из данного заказа по этой стратегии будет удален!
Желательно применять для вип-клиентов с небольшими объемами, которые не допускают изменений в своих заказах кроме как полного отсутствия позиции в случае отсутствия на складе.
б) «пропорциональный» алгоритм
Программа определяет количество товара по формуле среднего арифметического: новое кол-во в заказе = старое количество в заказе * старый объем заказов / остаток.
Типовой алгоритм, подходит, если не важен приоритет в категории. Если не проставлять категории совсем, то все заказы будут обрабатываться этим алгоритмом.
в) Стратегия «Весь остаток»
Программа сортирует заказы по убыванию приоритета, по очереди берет каждый из заказов, если остатка хватает — не изменяет, если остатка хватает только на часть заказанного — оставляет в заказе эту часть, а во всех оставшихся заказах в этой категории товар удаляется.
Подходит для вип-клиентов, заказывающих большие объемы, которые надо отгрузить во что бы то ни стало всем тем, что есть на остатке.
г) «круговой» алгоритм “по одной штуке”
Точки сортируются по убыванию приоритета, и с количества каждой точки удаляется по одной штуке по очереди, начиная с конца списка к началу, если в начале списка всё еще будет дефицит - возвращаемся в конец списка, и так по кругу пока оставшееся количество объема не совпадет с остатком.
Не рекомендуется использовать, подходит в тех случаях, когда объемы примерно равны, иначе заказы с низким количеством вне зависимости от приоритета не будут обеспечиваться товаром.
д) Алгоритм «По проценту»
Каждой точке присваивается приоритет, выражаемый в процентах, далее применяется специальная пропорция, в которой помимо старого объема заказа учитывается приоритет, выступающий как весовой коэффициент. В частности, при равных объемах количество в заказах пересчитывается по арифметической средней с учетом приоритета.
К примеру допустим у вас есть пять заказов по 100 шт, всего остаток - 350 шт., и приоритеты на заказы - 90, 80, 70, 60 и 50. Так как сумма приоритетов = остатку, а количество товара в заказах одинаковое, то в этом случае после резки в каждом заказе останется количество, равное приоритету - 90, 80, 70, 60 и 50 шт. И в итоге вы получите картинку, вынесенную на обложку данной разработки.
Пример работы алгоритмов - пять заказов на 1 позицию:
Приоритет |
Заказано |
Не резать |
Пропорционально |
Весь остаток |
По 1 штуке |
По проценту |
|
100 |
1 |
1 |
|
1 |
|
1 |
|
90 |
4 |
|
2 |
4 |
2 |
2 |
|
70 |
5 |
5 |
2 |
1 |
3 |
2 |
|
50 |
2 |
|
1 |
|
|
1 |
|
20 |
3 |
|
1 |
|
1 |
|
|
Остаток — 6 штук |
|||||||
1) выбраны два заказа под остаток, оба заказа не порезаны. |
|||||||
2) по формуле среднего, приоритет не играет роли. Больше — заказам с большим объемом. |
|||||||
3) Первые два заказа — полностью, третий — весь остаток после обеспечения первых двух. |
|||||||
4) 5 4 и 3 стали 3 2 и 1, остальные — 0 |
|||||||
5) по формуле среднего но с учетом приоритета обеспечение сдвинуто в высокий приоритет, а низкий — не обеспечен. |
Какую стратегию выбрать, а может вписать свою - принимать решение предприятию.
По умолчанию категории распределены следующим образом:
Кроме распределения клиентов по категориям и приоритетам, предоставления стратегий обработка позволяет:
- использовать кванты отгрузки - нестандартную единицу отгрузки для такого случая когда вам нужно указывать в накладных штуки и килограммы, так как мелкий опт обычно не принимает накладные упаковками, но отгружать только определенным количеством штук - обычно упаковка или полупаковки, а может быть и несколько упаковок.
- сохранять и отсылать по e-mail отчет о резке, заказах и остатках
- делать замену дефицитной позиции на профицитную
- сохранять результат в отдельном регистре и восстанавливать срезанное
Данная версия обработки не работает с:
- отключенными Партнерами
- другим типом документов кроме заказов клиентов
- несколькими организациями в одной базе.
- остатки берутся только из регистра "Товары на складах", ресурса "В Наличии".
- характеристиками,
- типовым резервом (должна быть выставлена опция "заказ как счет")
- реализациями из многих заказов
- заказы с построчным указанием складов не тестировались,
Партнеры и Заказы должны быть включены и использоваться, либо потребуется переписывание функционала. Остаток между организациями не делится.
Работа с типовым обеспечением, расходными ордерами и заданиями на доставку не тестировалась. В работе организации-заказчика данной программы используется внешняя WMS c нетиповыми документами расходных ордеров. В обработке имеется вариант под типовую схему, требующий проверки и донастройки под конкретный учет.
- весовой товар (указываемый в граммах/литрах) в случае частичного дефицита не обрабатывается
Алгоритмы резки в этом случае не применимы.
- произвольным частичным отбором заказов, партнеров и позиций. Отбор делается строго по заданному шаблону "быстрого отбора".
- Программа не позволяет объединять несколько разных позиций в один пул, с каждой позицией работа проходит изолированно от остальных.
ВНИМАНИЕ!!! Так как обработка в массовом порядке удаляет товар из заказов, рекомендуется провести предварительное тестирование на копии!
В пакете поставки включена обработка, подробная инструкция (~50 стр.) и расширение с регистром сведений для хранения результатов резки.
О недочетах и предложениях по доработке пишите в комментариях или в личку.
Обработка работает на предприятиях, которые используют глубоко модифицированную УТ 11.4.13.85, а так же протестирована на чистой УТ 11.5.8.309. В целом по товародвижению используется только документ "Заказ клиента" и регистр "Товары на складах", поэтому переделка под другие схемы много времени не занимает.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.8.309, 11.4.13.85