WMS Инфуд

Управление складом

Нет связи с сервером? Открыть офлайн (только просмотр)
Дашборд

Зоны склада

Что дальше

🧱 Ячейки
📐 Схема
🗺️ Зоны
🏢 Склады

Ячейки хранения

АдресЗонаТипРяд/Стеллаж/Ярус ВместимостьСмешиваниеСтатус

Схема хранения

Добавить склад

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

Склады

КодНазваниеЗонЯчеек

Добавить зону

Короткий код, попадает в адрес ячейки: A-01-03-2
Ограничивает зону одной категорией номенклатуры. Размещение не предложит её для чужого товара, а вручную спросит подтверждение. «Любая» — зона без ограничения.

Зоны

СкладКодНазваниеТипТемператураЯчеек

Документы прихода

№ДатаКонтрагентЗона приёмки ПозицийСтатус

Ожидает размещения

Всё, что лежит в зонах приёмки. Размещение переносит товар в зону хранения — до этого он числится на складе, но не на своём месте.
ЧтоПартияЯчейка приёмкиКоличество
📋 Очередь
👷 Персонал

Очередь задач

№ТипПриоритетСтрок ЗонаИсполнительСозданаСтатус

Настройки диспетчеризации

Приоритет от 1 до 10, меньше — срочнее. В очереди задачи идут по приоритету, внутри одного приоритета — по возрасту: самая старая сверху.
Задача уходит наименее загруженному сотруднику, который подходит по операции и зоне (вкладка «Персонал»). Если подходящих нет — задача остаётся новой и ждёт ручного назначения, а не уходит случайному человеку.

Персонал склада

Кто какую работу может делать и где. Это не учётные записи: вход в систему живёт отдельно (Настройки → 🔑 Учётные записи, только администратор), а здесь — компетенции внутри филиала, и ими распоряжается управляющий. Сотрудник без учётной записи тоже нужен: грузчик без телефона задачи не открывает, но назначать их на него надо.
СотрудникОперацииГде работает СменаОткрытых задачСтатус

Заказы на отгрузку

№ДатаПокупательПозицийОтборСтатус

Как это работает

Черновик — заказ заполняется, склад не тронут.
🔒 Зарезервировать — система сама подбирает, откуда брать: сначала то, что раньше портится (FEFO), внутри одного срока — по порядку адресов. Товар блокируется под этот заказ и перестаёт быть свободным для других.
📋 Задание на отбор — список обхода по ячейкам. Отметка строки переносит товар в ячейку отгрузки и снимает с неё резерв.
🚚 Отгрузить — списание со склада и расходная накладная.
📦 По номенклатуре
🧱 По ячейкам
🔖 Единицы
🕘 Движения

Остатки по номенклатуре

АртикулНаименованиеЕд.Учёт ОстатокРезервСвободноЯчеекМин.

Заполнение ячеек

ЯчейкаЗонаПозицийСодержимое

Единицы хранения

КодНоменклатураПартияГоден до ЯчейкаОстатокСтатус

Журнал движений

ВремяТипНоменклатураПартия КоличествоОткуда → кудаИсполнитель

Отпуск материалов в производство

№ДатаКудаПозицийОтборСтатус

Как это работает

Путь тот же, что у отгрузки: черновик — заявка цеха, 🔒 Зарезервировать — система сама подбирает, откуда брать (FEFO, в набивных каналах — то, что стоит у выхода), 📋 Задание на отбор — обход по адресам, 🏭 Отпустить — списание со склада.
Цех — это место в топологии, зона с типом «Производство». Отбор физически везёт материал туда, поэтому до отпуска он числится в цехе, а не исчезает из остатков раньше времени.
Единицы резервируются частично. В отгрузке бочку нельзя разлить между заказами, поэтому она занимается целиком; здесь наоборот — из бочки 200 кг берут 50, остальные 150 остаются свободными.
Израсходованная не полностью тара остаётся в цехе с уменьшенным остатком: она физически там и есть. Возвращают её на склад обычным перемещением.

Возвраты от покупателей

№ДатаОт когоПозицийСтатус

Некондиция на складе

ЧтоПартияЯчейкаКоличество

Как это работает

Некондиция — это зона, а не пометка на товаре. Брак физически свозят в зону с типом «Карантин / брак», и всё, что там лежит, выпадает из свободного остатка и не резервируется под отгрузку. Одно правило работает и для поштучного учёта, и для количественного, а перевод в брак и обратно остаётся обычным перемещением — просто в журнале движений оно называется «Карантин» и «Снят с карантина».
Возврат — приход с решением по каждой строке: годное едет в ячейку приёмки и дальше размещается как обычно, негодное сразу в зону брака. Возвращённые поштучные единицы удобнее не вписывать, а сканировать: код на вернувшейся бочке тот же, что уезжал, и возврат воскрешает ту же единицу.
Списание — конец пути товара, доступно из списка некондиции и требует причины. Печатается актом.

Инвентаризации

№ВидОхватДатаПосчитаноРасхожденийСтатус

Как это работает

Создание — ведомость собирается один раз, в момент создания: что числится в этих ячейках сейчас. Дальше остатки могут двигаться другими операциями, но ведомость этого уже не видит — иначе расхождение оказалось бы выдуманным.
Обход — факт вписывается вручную в ведомости или сканированием: сначала ячейка, потом единицы в ней. Единица, найденная не там, где числится, помечается «не на месте» — это перемещение, а не пара «недостача плюс излишек». Товар, которого в ячейке не числится вовсе, добавляется кнопкой «➕ Нашли лишнее».
✅ Провести — остатки приводятся к факту, разница уходит движениями корректировки, а найденное не на месте переезжает туда, где нашли. Непосчитанные строки остаются как были.
Отмена — до проведения; введённые данные теряются, остатки не трогаются. После проведения — только откатом в журнале действий.
📦 Номенклатура
🗂️ Категории

Номенклатура

АртикулНаименованиеКатегорияЕд. УчётПартии / срокМин. / макс.ABC

Добавить категорию

Категории

НазваниеВходит вПозицийПримечание

Добавить контрагента

Контрагенты

НаименованиеРольИННКонтактАдрес
🏢 Организация
🏭 Филиалы
🔑 Учётные записи
📜 Аудит
🕘 Журнал действий
🔁 Обмен с 1С
🔄 Синхронизация

Реквизиты подразделения

Филиалы (склады)

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

Учётные записи

ЛогинФИОРольФилиал

Журнал аудита (сервер)

ВремяПользовательДействиеФилиалДетали

Журнал действий

ВремяПользовательДействие

Обмен с 1С

Формат — тот же XML, что понимала Expert Logistic, поэтому выгрузки из 1С менять не нужно. Связь между записями идёт по внешним кодам OutID_*, а не по названиям: переименование товара в 1С не рвёт связь.
ФайлЧто содержитНаправление
JКонтрагентыиз 1С
NНоменклатура с упаковкамииз 1С
PПартии со срокамииз 1С
CПриходные накладныеиз 1С · факт обратно
VРасходные накладныеиз 1С · факт обратно
OОстатки по зонамв 1С
RРезервы под заказыв 1С
IРезультат инвентаризациив 1С
Настройка на стороне 1С. Отправка файла — POST на адрес ниже, телом сам XML либо JSON вида {"key":"…","filename":"N_001.xml","body":"<ROOT>…"}:
Забрать выгрузку — POST на тот же адрес с sub=out. Отдаётся по одному файлу в аренду: пока 1С не подтвердит разбор запросом sub=out_ack с тем же id, файл вернётся в выдачу через 10 минут — так факт приёмки не теряется, если 1С упала на разборе. От дубля защищает неизменный id в каждой выдаче. Судьбу своего файла 1С узнаёт запросом sub=status: он отдаёт статус (done / partial / error) и построчный итог с причинами отказа.
Ключ обмена — SECRET_KEY из sync.php. Интерактивно войти 1С не может, а заводить ей учётную запись значит хранить пароль в настройках КИС.

Журнал обмена

ВремяНаправлениеФайлРазмерСтатусСообщение

Синхронизация с сервером