15 мая 2025 г.·8 мин

Разработка WMS с поддержкой ТСД: офлайн-процессы склада

Разработка WMS с поддержкой ТСД: как спроектировать приемку, размещение, отбор и инвентаризацию с офлайн-режимом и быстрыми операциями.

Разработка WMS с поддержкой ТСД: офлайн-процессы склада

Что вы строите: WMS с ТСД и офлайн-режимом

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

Офлайн-режим нужен даже при хорошем Wi‑Fi. На складе сеть часто проседает в проходах, у ворот, в морозилках, возле металлоконструкций. Плюс бывают работы на сети, перегрузка точки доступа и переключение между точками. Если терминал в этот момент блокирует действие, вы теряете темп и копите очередь на приемке или отгрузке.

На ТСД важна «быстрая операция»: один шаг должен занимать 3-5 секунд. Это означает минимум текста, крупные кнопки, один скан вместо ручного ввода и понятную подсказку, что делать дальше. Типовой пример: сотрудник сканирует короб, система сразу показывает товар и ожидаемое количество, затем просит сканировать ячейку.

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

Складская модель: зоны, ячейки, товары и штрихкоды

Если вы планируете разработку WMS с поддержкой ТСД, начните не с экранов, а с простой и строгой модели склада. ТСД прощает мало: оператор должен быстро понимать, где он находится, что держит в руках и что система от него ждет.

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

Ключевой элемент адресации - ячейка. Код должен быть коротким и читаемым для человека, а не только для базы данных. Хорошо, когда по коду понятно, где искать: ряд, секция, уровень, позиция. И важно правило: один физический знак на стойке = один штрихкод ячейки, без альтернатив и «временных» наклеек.

Практичные правила кодирования ячеек простые: фиксированная длина и один формат на всем складе, без похожих символов (0/О, 1/I), понятная логика слева направо (зона-ряд-секция-уровень-позиция), крупная печать, чтобы сканировать на расстоянии.

Дальше - единицы учета: штука, короб, палета. Для WMS это разные сущности, потому что приемка может идти палетами, а отбор - штуками. Если склад живет партиями, сроками годности или серийными номерами, добавьте эти поля в остаток. Иначе инвентаризация и разбор претензий быстро превратятся в гадание.

Отдельно держите справочники: товары, штрихкоды (включая альтернативные), тара и упаковки, контрагенты, сотрудники. Небольшой пример: один и тот же товар может иметь EAN на штуку и внутренний код на короб, и ТСД должен понимать оба без лишних вопросов оператору.

Роли и документы: чтобы процессы были управляемыми

Чтобы склад работал предсказуемо, в WMS важно сразу разделить два слоя: кто выполняет действие (роль) и в каком «контейнере» это действие живет (документ). Тогда даже в офлайн-режиме ТСД понимает, что разрешено сделать, а что можно только посмотреть.

Роли: кто за что отвечает

Роли лучше задавать простыми правилами доступа, привязанными к операциям сканирования и подтверждения. На практике чаще всего хватает такого набора:

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

Такой подход упрощает разработку WMS с поддержкой ТСД: устройство показывает только те экраны и кнопки, которые нужны конкретной роли.

Документы, статусы и запреты

Документ - это «рамка», где фиксируются операции: поставка (приемка), перемещение, заказ (отбор), инвентаризация, списание. У каждого документа должны быть понятные статусы, чтобы офлайн-операции не превращались в хаос: например, «Черновик», «В работе», «На проверке», «Закрыт».

На ТСД обычно оставляют только быстрые действия, которые подтверждаются сканированием: добавить строку факта, изменить количество в пределах допуска, сменить ячейку назначения по правилам, выбрать причину расхождения из списка. Опасные изменения лучше оставить «в офисе»: вручную менять номенклатуру, задним числом менять склад, удалять строки, снимать закрытие документа.

Логи: кто и что подтвердил

Логи нужны не «для контроля людей», а для разбора спорных ситуаций. Минимум, который стоит хранить: пользователь, время, устройство, тип операции, отсканированные коды (товар, ячейка, документ), значения до и после по количеству.

Пример: комплектовщик в офлайне отсканировал ячейку A-03-02 и товар, подтвердил 10 штук. Позже сеть появилась, а другой сотрудник уже закрыл заказ на 8. По логам видно, кто и когда подтвердил 10, и система может отправить документ на проверку, а не молча «переписать» факт.

Офлайн-first архитектура простыми словами

Офлайн-first означает, что ТСД не «ждет сеть», чтобы работать. Приемка, размещение, отбор и инвентаризация должны выполняться так же быстро в глубине склада, как и рядом с точкой доступа. Когда связь появляется, устройство аккуратно догоняет сервер.

Локальная база на ТСД: что хранить

На ТСД храните только то, что нужно для быстрых операций и проверок на месте: справочники и активные задания. Все «тяжелое» и редкое оставляйте на сервере.

Обычно на устройстве достаточно держать:

  • номенклатуру (ID, название, штрихкоды, единицы измерения)
  • адресное хранение (зоны, ячейки, статусы доступности)
  • текущие документы и задания пользователя (приемка, пикинг, пересчет)
  • правила валидации (что можно сканировать, какие поля обязательны)
  • «последнее известное состояние» остатков для подсказок, но не как источник истины

Не стоит тянуть на ТСД полную историю движений, все остатки по складу и отчеты. Это замедляет поиск, усложняет обновления и повышает риск утечки.

Очередь операций и синхронизация

Каждое действие на ТСД записывается как операция в очередь: «принял 10 шт», «переместил в ячейку A-01-02», «собрал позицию», «посчитал ячейку». Очередь отправляется на сервер в исходном порядке, с повторными попытками при ошибках. Важный момент: операция должна быть идемпотентной, чтобы повторная отправка не задваивала результат.

Синхронизацию обычно запускают сразу после операции, если сеть есть, по расписанию (например, каждые 1-5 минут), а также при появлении сети или входе в приложение.

Безопасность: минимум, который обязателен

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

Процесс приемки: быстрый сценарий на ТСД

Приемка на ТСД должна работать одинаково быстро онлайн и офлайн. Зона шумная, руки заняты, сеть может пропадать. Поэтому сценарий делайте коротким: минимум экранов, максимум сканирований.

Быстрый поток действий выглядит так:

  • выбрать поставку (по номеру, QR или из списка «ожидает приемки»)
  • сканировать товар (штрихкод товара или этикетку поставщика)
  • ввести количество (по умолчанию 1, быстрые кнопки +1, +5, +10)
  • при необходимости выбрать причину отклонения (повреждение, пересорт)
  • подтвердить строку (сохранить локально, если нет сети)

Важно, чтобы ТСД сразу показывал короткую подсказку: что ожидалось по этой поставке и сколько уже принято. Это снижает споры у ворот и ускоряет обучение новичков.

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

Маркировку и серийные номера спрашивайте только там, где это реально нужно. Хорошее правило: если товар штучный и дорогой (например, серверы, рабочие станции), серийник обязателен. Если это расходник коробами, чаще достаточно количества по упаковке. В офлайне валидации делайте локально (формат серийника, уникальность в текущей поставке), а «глобальные» проверки выполняйте при синхронизации.

Печать и наклейки оправданы в двух местах: когда на товаре нет читаемого кода для дальнейших операций и когда вы явно отделяете поток (карантин, возврат, пересорт). Иначе печать в приемке тормозит линию и превращается в очередь у принтера.

Размещение: как упростить выбор ячейки и снизить ошибки

Оборудование с локальным статусом
Подберем решения с отечественным оборудованием для закупок и прозрачности цепочки поставок.
Уточнить

Размещение часто съедает время не из-за «тяжелых» алгоритмов, а из-за мелких сомнений: куда поставить, можно ли туда, не занято ли. Цель простая: кладовщик делает минимум действий, а система подсказывает безопасный вариант и не дает ошибиться.

Правила подбора ячейки, которые работают в реальном складе

Хороший подбор начинается с базовой фильтрации. Сначала система отбрасывает явно неподходящие места: нет свободного объема, не та температура, запрет по совместимости (например, химия и продукты), не та зона. Затем выбирает «лучшее» из оставшегося: по ABC (быстрые товары ближе к отгрузке), по высоте и весу, по заполненности стеллажа, по маршруту погрузчика.

Чтобы ТСД не превращался в «мини-компьютер», правила лучше упаковать в понятные шаблоны: «палеты в палетные ячейки», «штучный товар в полку», «карантин только в зону QC». Такие шаблоны проще объяснить сотрудникам и легче поддерживать.

Сценарий на ТСД: три скана и готово

На экране должно быть одно действие за раз и крупная подсказка, что сканировать:

  1. Скан палеты или короба (система понимает товар, партию, количество).
  2. Подсказка ячейки и скан ячейки на стеллаже.
  3. Подтверждение размещения (кнопкой или автоподтверждение, если все совпало).

Исключения лучше решать сразу на месте. Если предложенная ячейка занята, ТСД показывает причину и дает 2-3 альтернативы. Если «нет места», сотрудник выбирает режим временного размещения в буферной зоне. Если сканировали ячейку не из той зоны, система пишет прямо: «Это зона отгрузки, размещение запрещено».

Чтобы меньше вводить руками, используйте автопредложение: система запоминает типовые связки «товар - зона - тип ячейки», а в офлайн-режиме проверяет ключевые ограничения по локальным справочникам и не останавливает работу.

Отбор (пикинг): скорость без потери точности

Отбор - место, где WMS либо экономит минуты на каждом заказе, либо «съедает» смену из-за лишних шагов. В связке ТСД + WMS цель простая: сотрудник делает минимум действий, а система тихо проверяет все важное.

Способ отбора выбирают под склад и нагрузку. Для небольших потоков работает отбор «по заказу». Когда заказов много и они похожи, удобны волны (wave picking). Если важна скорость перемещения, помогает маршрутный отбор. На большом складе часто выигрывает зональный подход, когда каждый проходит свою зону и передает тару дальше.

На ТСД сценарий должен быть коротким и повторяемым:

  • взять задание (заказ, волну или участок маршрута)
  • скан ячейки, откуда берут
  • скан товара (штрихкод, DataMatrix, серийник - что принято)
  • ввод или подтверждение количества
  • подтверждение строки и переход к следующей

Дальше включаются «невидимые» проверки, которые спасают от пересорта. Если сканировали не ту ячейку, ТСД должен сразу показать ошибку и не дать подтвердить. Если не тот товар, нужна жесткая блокировка. Если количество больше доступного или больше в задании, дайте понятный выбор: запретить или разрешить только с причиной (например, «пересчет на месте») и записать событие для разбора.

Офлайн-режим здесь критичен: ТСД должен продолжать отбор без сети, используя заранее скачанное задание и локальные остатки. Чтобы данные не разъезжались, обычно фиксируют «мягкий резерв» на устройстве и отправляют события (скан, количество, время) при синхронизации.

Короткий контроль перед отгрузкой снижает возвраты без долгих проверок. Например, на упаковке сканируют код тары или коробки и затем быстро пересканируют 3-5 позиций из комплекта (или все, если заказ маленький). Это ловит типичную ошибку «взял с соседней полки» еще до ворот.

Инвентаризация: как считать быстро и без хаоса

24/7 поддержка ИТ систем
Организуем сопровождение инфраструктуры и быстрые реакции на инциденты.
Подключить

Инвентаризация в WMS с ТСД ценится не за «красивые отчеты», а за скорость и контроль. Заранее решите, какие режимы нужны: полная (редко, но основательно), циклическая (каждый день понемногу), по зоне (например, только «приемка» или «хранение»), по конкретной ячейке (когда есть подозрение на ошибку). Важно, чтобы все эти варианты выглядели одинаково просто на ТСД.

На складе лучше всего работает сценарий «ячейка за ячейкой». Человек не думает о документах, он закрывает одну точку учета и идет дальше. На ТСД это выглядит так:

  • выбрать зону или маршрут (чтобы ТСД показывал ближайшие ячейки)
  • сканировать штрихкод ячейки
  • сканировать товары и вводить количество (или подтверждать поштучно)
  • закрыть ячейку и перейти к следующей

Чтобы не было хаоса, «закрытие ячейки» должно быть явным действием. После закрытия система фиксирует итог и отмечает, кто и когда считал. Для скорости добавьте короткие подсказки: последний отсканированный товар, ожидаемый товар для этой ячейки, и заметный сигнал при ошибке штрихкода.

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

Офлайн-сценарий критичен: результаты нельзя потерять, даже если сеть пропала в середине ряда. На устройстве храните операции как очередь событий (скан, количество, закрытие ячейки) с временем и пользователем. Когда связь появится, данные уходят на сервер, а ТСД получает подтверждение. Если возник конфликт (например, ячейку уже пересчитали другим), показывайте простое решение: принять более свежий счет, отправить на проверку или открыть задачу на пересчет.

Быстрые операции на ТСД: UX, который реально экономит время

Скорость на складе обычно упирается не в логику WMS, а в то, сколько раз человек вынужден думать, печатать и исправлять. В разработке WMS с поддержкой ТСД выигрывает тот, кто делает ввод максимально «скан-центричным» и предсказуемым, даже когда устройство работает офлайн.

Хороший экран на ТСД отвечает на один вопрос за раз. Сначала «что это?» (скан товара), потом «откуда?» (ячейка-источник), затем «куда?» (ячейка-назначение), и только после этого количество, если оно не считывается из контекста. Чем меньше полей, тем меньше ошибок и тем быстрее руки.

Паттерны экранов, которые работают в зоне склада

Обычно достаточно нескольких правил:

  • Крупные кнопки и короткие подписи, без мелких таблиц и длинных форм.
  • Курсор всегда в поле сканирования, клавиатура открывается только при необходимости.
  • Автопереход на следующий шаг после успешного скана.
  • «Повтор последнего действия» и быстрый возврат на шаг назад.
  • Четкий итог на экране: что сделано и что делать дальше.

Сигналы и «горячие» операции

Оператору важнее понять ошибку, чем прочитать ее. Звук, вибрация и цвет должны отличать «успех» от «стоп» без чтения текста, а сообщение должно говорить простыми словами: «Ячейка не та», «Товар не из этого задания», «Нет связи, операция сохранена».

Часто нужны действия, которые нельзя прятать в меню: быстрое перемещение между ячейками, уточнение ячейки при пересорте, разукомплектация набора, печать и перепечать этикетки. Например, при отборе оператор сканирует товар, а система сразу предлагает подходящую тару и дает одну кнопку «переложить в другую ячейку», если на месте нет остатка, сохраняя событие в очереди до синхронизации.

Синхронизация и конфликты: что делать, когда сеть «прыгает»

Офлайн-режим на складе обычно означает одно: ТСД продолжает работать быстро, а синхронизация догоняет позже. Чтобы операции не ломались при пропадающей сети, держите простое правило: каждое действие на ТСД - это отдельная запись в локальной очереди, которую можно безопасно отправить на сервер повторно.

Ключ к этому - стабильные идентификаторы и идемпотентность. Для каждой операции (скан ячейки, подтверждение размещения, списание при отборе, ввод пересчета) создавайте уникальный operation_id и храните его и на ТСД, и на сервере. Если сеть оборвалась и ТСД отправил одно и то же два раза, сервер должен распознать дубль и ответить тем же результатом, не создавая повторное списание или приход. Это база для разработки WMS с поддержкой ТСД.

Конфликты все равно будут. Типовые случаи:

  • Один и тот же товар списали дважды в разных сменах, пока оба ТСД были офлайн.
  • Две операции «заняли» одну ячейку параллельно.
  • Инвентаризация изменила остаток, а отбор уже подтвержден позже.

Политики разрешения определите заранее и сделайте их понятными для людей. Часто работает комбинация: серверный приоритет для учетных остатков, мягкие блокировки на критичные объекты (ячейка, палета, документ) и ручная проверка, когда система видит риск ошибки. Например, если две операции пытаются занять одну ячейку, сервер подтверждает первую, а вторую переводит в статус «требует решения».

Наблюдаемость не менее важна, чем логика. Супервизору нужна понятная картина: сколько операций в очереди, сколько не отправлено, какие ошибки повторяются. Минимальный набор сигналов: размер очереди на каждом ТСД, возраст самого старого события, доля отклоненных операций, список конфликтов по документам, уведомление при «застревании» синхронизации.

Типовые ошибки при разработке WMS с ТСД

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

Главная ловушка в том, что WMS отлично выглядит в браузере, но «умирает» на ТСД. Если на экране много полей, мелкий текст и нужно постоянно переключаться между вкладками, люди начинают обходить систему: вводят «примерно», пропускают сканы, делают пометки на бумаге.

Частая причина ошибок - слабая адресация. Когда зоны и ячейки описаны размыто или не закреплены правила (куда можно ставить, откуда можно отбирать), сотрудники начинают ориентироваться по памяти. В итоге растет пересорт, появляются «потерянные» остатки, а разбор занимает часы.

Офлайн-режим нередко делают «как получится»: операции сохраняются непонятно где, статусы не видны, при синхронизации данные перетираются. Важно заранее определить: что считается завершенной операцией на устройстве, когда она уходит на сервер и как пользователь видит, что все действительно отправилось.

Еще одна ошибка - тестировать только идеальные кейсы. На складе всегда есть частичная приемка, недовложение, возвраты, замена партии, отбор без нужной ячейки, пересчет «по факту». Если эти сценарии не проверены вживую, система будет ломаться в самый загруженный час.

Наконец, многие экономят на логах. Полезный лог - это не просто «ошибка 500», а контекст: кто, где, по какому документу, что сканировал, какой был остаток до и после, был ли офлайн.

Если нужен быстрый способ снизить риски, держитесь пяти правил: 1 действие = 1 экран и минимум ручного ввода; обязательные сканы товара и адреса (и понятные исключения); видимая очередь офлайн-операций и их статус; тесты на «грязных» сценариях с реальными кладовщиками; логи с контекстом для разбора спорных ситуаций.

Чеклист и следующие шаги внедрения

Перед запуском убедитесь, что база и правила склада готовы. Иначе даже лучшая разработка WMS с поддержкой ТСД упрется в спорные статусы, «серые» ячейки и ручные обходы.

Короткий чеклист готовности

Проверьте эти вещи до пилота:

  • Справочники: товары, упаковки, партии или сроки годности (если нужны), зоны, ячейки, типы тары, пользователи и роли.
  • Статусы и запреты: что можно делать с товаром в каждом состоянии (принят, в размещении, в отборе, заблокирован, пересчет).
  • Офлайн-очередь: какие операции разрешены без сети, как хранится очередь на ТСД, что считается успешной отправкой.
  • Скан-контроль: где скан обязателен (товар, ячейка, палета), какие подсказки показывать при ошибке, как предотвращать «просканы».
  • Логи: кто, что и когда сделал, включая отмены, исправления и офлайн-события.

Дальше сделайте минимальный пилот. Его цель - не «внедрить все», а доказать, что люди успевают работать в реальном темпе и данные сходятся.

Соберите пилот так, чтобы он был честным: один склад или одна зона, 2-3 процесса (например, приемка, размещение, отбор), 2 роли (кладовщик и старший смены). Используйте реальные смены и реальные объемы, ограничьте число ТСД и задайте фиксированное окно наблюдения (например, 1-2 недели). Метрики лучше выбрать заранее: среднее время операции, процент ошибок по сканам, доля офлайн-операций, время синхронизации и число конфликтов.

После пилота переходите к масштабированию: уточните требования по складу (маркировка, адресация, правила хранения), затем подберите инфраструктуру под нагрузку (серверы, рабочие места, сеть, резервное питание, поддержка). Если нужна помощь с инфраструктурой и интеграцией под WMS, можно опираться на опыт GSE.kz (gse.kz) в системной интеграции и серверной базе, включая поддержку 24/7.

FAQ

С чего лучше начинать разработку WMS с ТСД, чтобы не утонуть в деталях?

Начните с модели склада: зоны, адресные ячейки, единицы учета (штука/короб/палета), правила совместимости и ограничения. Если адресация и штрихкоды сделаны «как получится», на ТСД вы не спасетесь интерфейсом — люди будут ошибаться и обходить контроль.

Зачем офлайн-режим, если на складе есть Wi‑Fi?

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

Какая скорость операций на ТСД считается нормальной и как ее добиться?

Ориентир — 3–5 секунд на шаг: один вопрос на экран, минимум текста, крупные элементы и обязательный фокус на поле сканирования. Типовой поток — скан товара, затем скан ячейки, затем короткое подтверждение без лишних форм.

Как правильно организовать адресацию ячеек и их штрихкоды?

Делайте код коротким, одинакового формата по всему складу и читаемым для человека, а не только для базы. Избегайте похожих символов вроде 0/О и 1/I и придерживайтесь одной логики слева направо, чтобы сотрудник мог найти место даже без подсказки системы.

Какие роли и права стоит заложить в WMS с ТСД?

Для ТСД лучше разделять права по операциям: приемка, размещение, отбор, контроль, администрирование. Тогда устройство показывает только нужные действия, а риск «случайных» опасных правок снижается, особенно когда работа идет в спешке.

Что можно безопасно разрешать делать на ТСД, а что лучше запретить?

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

Какие данные реально стоит хранить локально на ТСД для офлайн-first?

Храните то, что нужно для быстрых проверок на месте: номенклатуру и штрихкоды, зоны и ячейки, активные задания, правила валидации. Полные остатки, историю движений и отчеты на устройство не тяните — это замедляет работу и усложняет обновления.

Как сделать синхронизацию офлайн-операций без дублей и потерь?

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

Как решать конфликты, когда два ТСД подтвердили операции офлайн и данные разъехались?

Заранее задайте простые политики: что имеет приоритет, когда нужен ручной разбор и какие объекты стоит мягко блокировать (ячейка, палета, документ). Если система видит риск ошибки, лучше отправить документ на проверку и показать понятный статус, чем молча перезаписать данные.

Какие логи обязательны в WMS с ТСД и зачем они нужны на практике?

Минимум — пользователь, время, устройство, тип операции, отсканированные коды и значения количества до/после. Такие логи помогают быстро разбирать претензии и конфликты синхронизации, а еще показывают, где процесс «ломается» и что нужно поправить в правилах или интерфейсе.

Разработка WMS с поддержкой ТСД: офлайн-процессы склада | GSE