• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Алгоритмический вопрос

  • Автор темы Hryv
  • Дата начала
H

Hryv

Нужен совет, помогите разработать алгоритм
Тем более, что видимо я сейчас изобретением велосипеда занимаюсь

Описание ситуации
Внутри склада надо организовать адресное хранение
Но перемещения должны выполнятся с резервированием
Например, товар из зоны разргузки надо переместить на стелажи
Сначала надо зарезервировать места на стелажах, чтобы их не заняли при перемещениях другого товара
А после того как товар физически расставлен, заменить резервирование на перемещение

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

Однако, если происходит снятие со стелажей в зону погрузки, то надо резервировать уже товар на стеллажах так чтобы было понятно, что стеллаж занят и на него нельзя ничего другого положить, пока не завершено снятие, а товар недоступен для других действий.

Я пытался и так и эдак прокрутить варианты событий используя один регистр с несколькими ресурсами (Количество, КоличествоРезерва и проч.) Но ничего путного не получается

Кто подкинет идею, как организовать регистр (регистры)?
И в каком случае как по ним движения выполнять?
Нужна именно идея, общая схема алгоритма
 
V

vitfil

Идея любой работоспособной WMS заключается в том, что это не событийная система, а система реального времени. Если мыслить критериями событийности, как это сделано в ТиС или УТ, упретесь в тупик. Может, не сразу, а через некоторый промежуток времени. И чем больше промежуток, тем темнее тупик.
 
G

Guest

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

А вообще как у вас эти "зоны" отражены в программе? Теоретически это должно быть складом. И если на складе нету товара, то продать его или переместить нельзя.
Если же у вас процесс разгрузка-хранение-погрузка может прерываться, то разрушается вся цепочка, тогда выбранная схема не подходит вам. То есть вести таким образом не получиться.

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

Дайнеко

Я позволю поделится своими соображениями, ибо подобную проблему решал.

* Как я понял ты хочешь положить нагрузку на регистр ведающий остатками товаров. Я же сразу разделил Остатки и Размещение. Мои аргументы:
- конфига типовая и не всем нужен механизм размещения.
- Остатки - штука важная, а Размещение +/- лапоть. Лишь бы был механизм править найденные нестыковки. А таковые будут, ибо пользователь будет к механизму относится халатно.
- механизм Остатки должен работать достаточно быстро, т.е. нежелательно его захламлять.

* Регистр Резерв никак не влиял на Размещение. Как и было по замыслу: сколько из числа имеющего отдать клиентам, а с какой полки отдаст кладовщик - не нам ему командовать.

* Измерениями регистра Размещение являются Товары, Места (подчинен Склады). Одна из строк спр-ка Места называлась "площадка разгрузки/погрузки".

* Процесс выглядел так:
- пользователь набирал Приходную
- на каждой строке нажимал Fn. по ней открывалось окно (документа Размещение), где расписывал количество по Местам.
- ключевой момент: проводки делал не сам документ Размещение, а Приходная выбирая информацию из подчиненного логически дока. На а в 8-ке и нет нужны создавать подчиненный документ - всю информацию можно хранить в строке Приходной.
- процесс из Расходной выглядел аналогично. Только программа показывала с какой полки можно снять товар.

Благодаря разделению регистров, стало возможным разделить работу по времени. По-быстрому вводился док-т для отражения учета. А затем не спеша можно его править для размещения товара.
 
H

Hryv

Спасибо всем за советы
Надо еще подумать
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!