MOD-WAREHOUSE — Склад и остатки
Лицензия: Платный
Остаток здесь никогда не хранится числом, которое можно «поправить»: он деривируется как сумма движений леджера. Любая цифра в сводке ведёт к списку движений, из которых она получена, поэтому остаток на дату — это не отдельная таблица, а тот же леджер, срезанный по времени. Инвентаризация не переписывает количество напрямую: она снимает ожидаемый остаток, принимает фактический подсчёт и проводит знаковые корректировки на ненулевые расхождения.
Склады организованы деревом зон и ячеек и никогда не удаляются физически — только архивируются. Списание и перемещение необратимы и требуют подтверждения, перемещение проводится ровно двумя движениями атомарно (не прошло списание с источника — приёмник тоже не прибавляется). Резерв под сделку уменьшает доступное количество, не трогая физическое. Пакет из внешней учётной системы принимается идемпотентно по идентификатору партии и каждого движения.
Возможности
- Склады, зоны и ячейки деревом; архивация вместо удаления
- Приход: черновик без движений либо проводка в приходные движения
- Списание с указанием причины (брак, потеря, срок, потребление, отгрузка) и запретом ухода в минус
- Перемещение между складами и ячейками ровно двумя движениями, атомарно
- Остатки как сумма движений, в том числе на дату, с ссылкой на первоисточник
- Инвентаризация: ведомость, фактический подсчёт, дифференциалы, проводка корректировок
- Пороги минимума и максимума с проблемными статусами: ниже минимума, затоваривание, срок, просрочено
- Резервы под сделку: доступное = остаток − резерв, снятие резерва идемпотентно
- Приём синхронизации из внешней учётной системы и честный статус свежести данных
Основные MCP-инструменты
| Инструмент | Назначение |
|---|---|
warehouse__list_warehouses | Список складов, архивные скрыты по умолчанию |
warehouse__create_warehouse | Создать склад с типом и периодом инвентаризации |
warehouse__create_location | Создать зону или ячейку в дереве склада |
warehouse__archive_warehouse | Архивировать склад (с подтверждением; физического удаления нет) |
warehouse__create_receipt | Приход: черновик или проводка приходных движений |
warehouse__create_writeoff | Списание с причиной (необратимо, с подтверждением) |
warehouse__create_transfer | Атомарное перемещение: списание и приход одной парой движений |
warehouse__get_stock | Остатки по складу, артикулу, ячейке, партии, в том числе на дату |
warehouse__list_movements | Леджер движений — первоисточник остатка |
warehouse__start_inventory | Открыть инвентаризационную ведомость с ожидаемыми остатками |
warehouse__submit_inventory_counts | Внести фактический подсчёт и получить расхождения |
warehouse__post_inventory | Провести инвентаризацию корректировками (необратимо, с подтверждением) |
warehouse__get_stock_summary | Сводка и показатели по складам с проблемными позициями |
warehouse__set_stock_thresholds | Задать пороги минимума и максимума позиции |
warehouse__reserve_stock | Забронировать остаток под сделку |
warehouse__release_reserve | Снять бронь (идемпотентно) |
warehouse__sync_inbound | Принять пакет синхронизации из внешней учётной системы |
warehouse__get_sync_status | Свежесть синхронизации: отставание, ожидающие, ошибки |
warehouse__item.update | Изменить метаданные позиции: наименование, артикул, единицу, категорию |
Блоки холста
warehouse-card— карточка складаwarehouse-field— отдельное поле складаstockitem-card— карточка товарной позицииstockitem-field— отдельное поле товарной позицииstockmovement-card— карточка движения товараstockmovement-field— отдельное поле движения
Связанные модули
- MOD-PRODUCTS — номенклатура и карточки товаров
- MOD-CRM — резервы остатка под сделку
- MOD-DOCS — складские документы и их согласование
- MOD-ORG — подразделения, по которым разграничен доступ к складам