Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Алгоритм автоматической генерации складского требования.


Основные термины.


Действующий контракт с поставщиком – контракт с поставщиком типа «основной» в статусе «Принят», у которого период действия включает текущую дату.
Действующее обязательство склада – обязательство склада в статусе «Принят», у которого период действия включает текущую дату.
Распределительный центр (РЦ) - место хранения (МХ) «Поставка из», для которого формируется складское требование.
Место поставки - МХ «Поставка в», для которого формируется складское требование.
Размер упаковки – определяется только для артикулов с установленным признаком «Складское требование в упаковках». Рассматриваются штриховые коды с признаком «Использовать при генерации складских требований» рассматриваемого артикула, а также производных от него артикулов типа «упаковка». В качестве размера упаковки берется наибольшее значение поля «Количество» (если «Количество» не заполнено, то рассматривается значение поля «Номинальное количество»). Если для артикула признак «Складское требование в упаковках» не установлен, то размер упаковки принимается равным нулю.
Минимальный уровень складских запасов - раздел «Карточки складского учета», вкладка «Заказ», поле «Мин.» + поле «Зал». Если в диалоге запуска генерации складских требований была установлена опция «Считать минимальные уровни равными максимальным» и значение поля «Макс.» установлено, то в качестве минимального уровня принимается значение [поле «Макс.» + поле «Зал»].
Максимальный уровень складских запасов - раздел «Карточки складского учета», вкладка «Заказ», поле «Макс.» + поле «Зал». Если значение поля «Макс.» не указано, максимальный уровень складских запасов считается не заданным, даже если значение «Зал» задано. Если максимальный уровень запасов не задан, то в расчетах он принимается равным минимальному уровню складских запасов.
Допустимое превышение максимального уровня – административный модуль, вкладка «БД – Конфигурация – Складские требования», параметр «Допустимое превышение максимальных уровней складских запасов при генерации» (задается в процентах).
Максимальный допустимый уровень = [Максимальный уровень складских запасов] * ( 1 + [Допустимое превышение максимального уровня] / 100 )

Общая схема (последнее изменение: 1.028.1)


1. Создается список распределительных центров.


Выбор одного или всех РЦ происходит в диалоге запуска генерации складских требований. Для выбора предоставляются доступные для просмотра текущей должности места хранения с признаком «Оприходован» типа «Центральный склад», «Склад-магазин (локальный склад)» или «Склад (локальный склад)».

2. Для каждого РЦ формируется список мест поставки.


1) Отбор в диалоге запуска генерации складских требований:

  • Рассматриваются только выбранные пользователем места хранения или все возможные места поставки.


2) Отбор в процедуре генерации складских требований мест хранения, отвечающих условиям:

  • Установлен признак «Оприходован».
  • Установлен положительный приоритет (раздел «Склады и магазины», вкладка «Логистика»).
  • Если РЦ – центральный склад, то местами поставки могут быть только подчиненные ему места хранения типа «Склад-магазин» или «Склад», не являющиеся локальными складами.
  • Если РЦ – локальный склад, то список мест поставки ограничен местами поставки действующих обязательств РЦ.



3. Для каждого РЦ и места поставки формируется список артикулов.


1) Отбор в диалоге запуска генерации складских требований:

  • Только выбранные группы товаров или все товары.


2) Отбор в процедуре генерации складских требований артикулов, отвечающих условиям:

  • Статус карточки складского учета «активна».
  • На РЦ имеется положительное доступное для распределения количество товара. [Доступное кол-во на РЦ] = [Остаток] - [Резерв] - [В приемке / в пути] - [Потери] (см. раздел «Карточки складского учета», вкладка «Остатки»).

  • Артикул не является зависимым компонентом набора («залоговой тарой»).
  • Артикул не входит в действующий контракт с поставщиком для текущих РЦ и места поставки.
  • Артикул не входит в действующее соглашение о поставке с поставщиком для текущих РЦ и места поставки.
  • Артикул не входит в ассортимент поставщика, у которого в списке мест поставки есть текущее место поставки (см. раздел «Контрагенты», вкладка «Заказ»).
  • Артикул входит в номенклатуру места поставки.
  • Если РЦ – центральный склад, то для артикула и текущего места поставки не должно быть действующего обязательства склада.
  • Если РЦ – локальный склад, то для артикула и текущего места поставки должно быть действующее обязательство текущего РЦ.



4. Для каждого РЦ происходит расчет потребностей мест поставки.
5. Распределение оставшегося количества на РЦ по местам поставки.
6. Распределение потребностей по свойствам.
7. Формирование складских требований для каждого РЦ по тем местам поставки, в которых определилась положительная потребность хотя бы в одном артикуле.
8. Добавление зависимых компонентов набора.
В складские требования добавляются зависимые компоненты набора в количестве равном количеству основного компонента. Под основным компонентом понимается первый из перечисленных в наборе компонентов, который не является зависимым компонентом.
9. Проставление в созданные документы учётных цен РЦ.
















Расчет потребностей мест поставки для текущих РЦ и артикула.


[Доступное кол-во на РЦ] = [Остаток РЦ] - [Резерв РЦ] - [В приемке / в пути РЦ] - [Потери РЦ] – [Кол-во из заблокированных накладных на перемещение и расходных накладных, в которых РЦ является местом хранения «Из»]





Первое место хранения из списка мест поставки (МХ отсортированы в порядке возрастания их приоритетов и идентификаторов)[Запас] = [Остаток] – [Потери]. Отрицательное значение обнуляется.
[Запас] = [Запас] + [Поставка].
Для МХ типа «Склад»:
[Запас] = [Запас] + [Запас подчиненного торгового зала]
[Мин. уровень] = [Мин. уровень] + [Мин. уровень подчиненного торгового зала]
[Макс. уровень] = [Макс. уровень] + [Макс. уровень подчиненного торгового зала]
[Запас] = [Запас] + [Кол-во из заблокированных накладных на перемещение из РЦ в текущее МХ].


















[Запас] < [Мин. уровень]
нетда
[Доступное кол-во на РЦ] > 0
нетда
[Потребность] = [Макс. уровень] – [Запас]. Округляется до точности единицы измерения артикула.



[Потребность] > 0
нетда
[Размер упаковки] > 0
нетда

[Кол-во упаковок] = [Потребность] / [Размер упаковки]. Округляется по математическим правилам до единицы.
Если [Кол-во упаковок] = 0 и [Запас] = 0, то [Кол-во упаковок] = 1.
[Потребность] = [Кол-во упаковок] * [Размер упаковки]









Если [Потребность] < [Доступное кол-во на РЦ], то
[Потребность] = [Доступное кол-во на РЦ]



[Доступное кол-во на РЦ] = [Доступное кол-во на РЦ] - [Потребность]



Переход к следующему месту поставки.





Завершаем обработку артикула для текущего РЦ. Потребности оставшихся мест поставки принимаются равными нулю, т.к. все равно не могут быть выполнены.

Распределение оставшегося количества на РЦ по местам поставки для текущих РЦ и артикула.


[Суммарный макс. уровень] = сумма [Макс. уровней] всех мест поставки, для которых [Запас] + [Потребность] < [Макс. допустимый уровень]



[Доступное кол-во на РЦ] > 0
и [Допустимое превышение максимального уровня] > 0
и [Суммарный макс. уровень] > 0
нетда

Первое место хранения из списка мест поставки (МХ отсортированы в порядке убывания макс. уровней запасов),
для которого [Запас] + [Потребность] < [Макс. допустимый уровень]
нет[Дополнительное требование] > 0Распределение оставшегося кол-ва на РЦ завершено.[Предполагаемое требование] = минимальное значение из: [Доступное кол-во на РЦ], [Доступное кол-во на РЦ] * [Макс. уровень] / [Суммарный макс. уровень].
[Дополнительное требование] = минимальное значение из: [Предполагаемое требование], [Макс. допустимый уровень] – ( [Запас] + [Потребность] ). Округляем до точности единицы измерения артикула.Переход к следующему месту поставки.
[Потребность] = [Потребность] + [Дополнительное требование]
[Доступное кол-во на РЦ] = [Доступное кол-во на РЦ] - [Дополнительное требование]
[Кол-во упаковок] = [Дополнительное требование] / [Размер упаковки]. Округляется по математическим правилам до единицы.
[Дополнительное требование] = [Кол-во упаковок] * [Размер упаковки]
нетда[Размер упаковки] > 0дада[Доступное кол-во на РЦ] > 0нет

  • Нет меток