Excel-импорт на складе: BIN, SKU и masterbox

Три столбца означают разные вещи

BIN — код места хранения, SKU — идентификатор товара, qty masterbox — число коробок. Masterbox не является ни кодом товара, ни его базовым количеством. Смешение этих понятий приводит к неверному остатку.

Условный пример: если masterbox товара SKU-001 содержит 12 штук, три masterbox дают 36 штук. У другого товара коэффициент может быть равен шести. Общий коэффициент для всех SKU применять нельзя.

Сохраняйте идентификаторы текстом

BIN и SKU в Excel хранятся как текст. Иначе у кода 00123 могут исчезнуть начальные нули, а длинный идентификатор превратится в научную запись. Отображаемое значение ячейки иногда отличается от фактического.

В шаблоне явно указываются BIN, SKU, qty masterbox. Лишние пробелы можно обработать, но нельзя произвольно менять регистр и начальные нули. Отдельно задаются десятичный разделитель и допустимость неполной коробки.

Проверяйте весь файл до записи

  • Тип и размер файла, максимальное число строк, обязательные заголовки.
  • Существующий SKU и BIN выбранного склада.
  • Пустое, нулевое или отрицательное количество; известный коэффициент упаковки.
  • Правило объединения или отклонения повторных BIN + SKU.
  • Достаточный остаток конкретного товара и BIN для расхода.
  • Права оператора на создание и подтверждение документа.

Предпросмотр отдельно от подтверждения

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

В приходе BIN означает место поступления, в расходе — место списания. Смена склада или типа документа требует повторной проверки предпросмотра. При окончательном подтверждении заново проверяются текущий остаток и разрешения.

Транзакция и повторный запрос

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

Двойной клик или повтор запроса после разрыва связи не должны создавать второй документ. Имя файла — ненадёжный ключ повтора: нужны контекст, содержимое и уникальный идентификатор подтверждения. Отдельно проверяется влияние отмены на остаток.

Проверка на практике

Используйте SKU с начальным нулём, один товар в двух BIN, разные коэффициенты, неизвестный BIN, недостаточный остаток и повторное подтверждение. Статья описывает проектирование импорта и не утверждает, что все перечисленные функции уже внедрены в каком-либо проекте.

Смотрите проект Anbarex и разработку складской системы. Переход со старого учёта может потребовать отдельного переноса данных.