Остаток в системе врёт не потому, что обмен настроен раз в час. Он врёт потому, что между реальным движением товара и цифрой в канале продаж стоит цепочка из четырёх звеньев, и любое из них рвёт результат независимо от остальных. Можно поставить событийный обмен, при котором каждое движение улетает мгновенно, и по-прежнему продавать то, чего нет: если документ провели на следующее утро, мгновенно уходит вчерашняя неправда.
Поэтому «реальное время» стоит понимать не как частоту обмена, а как допустимую задержку между фактом на складе и цифрой в канале. Для B2B-отгрузок она измеряется часами, для маркетплейсов — минутами, и от этого зависит, за что вообще имеет смысл платить.
Четыре места, где рвётся цепочка
Разрывы стоит перебирать именно в этом порядке — от самого частого и самого дешёвого в починке к самому редкому и самому дорогому.
- 11. Движение зафиксировано задним числом
Машину выпустили в 19:00, накладную провели в 10:00 следующего дня. Поставку разгрузили и поставили в зону приёмки, а оприходовали через два дня, когда дошли руки до сверки с УПД. Всё это время система показывает цифру, которая была верна вчера. Это самый частый разрыв и единственный, который чинится без денег — регламентом и запретом выпускать машину без проведённого документа.
- 22. Обмен идёт по расписанию
Ночной обмен между учётной системой и сайтом означает задержку до 24 часов; часовой — до часа. Разрыв честный и предсказуемый, и лечится он не всегда учащением: сначала стоит понять, какая задержка вообще допустима для вашего канала, потому что событийный обмен стоит денег и добавляет точку отказа.
- 33. Остаток правят руками
«Поправил, чтобы сошлось» — самый разрушительный разрыв, потому что он не оставляет следа. После ручной правки нельзя ни найти причину расхождения, ни доказать, что расхождения не было. Одна такая правка портит не одну цифру, а всю последующую диагностику по этой позиции.
- 44. Товар в отборе, но резерва нет
Комплектовщик снял пять штук с полки и везёт их на упаковку. Физически их на полке уже нет, в системе они ещё есть и доступны к продаже — и в этот момент их продают второй раз. На складе с несколькими каналами это даёт устойчивый поток отмен, у которого нет видимой причины: и остатки верны, и учёт верен, и всё равно не хватило. Механику разбора — в статье о резервировании товара под заказы.
Порядок починки задаётся не техникой, а ценой. Первый и третий разрывы закрываются регламентом и правами доступа — это бесплатно и делается за неделю. Четвёртый требует настройки резервирования при выдаче задания — дни работы в системе. Второй, единственный, за который берут деньги как за интеграцию, стоит трогать последним: пока три остальных открыты, любое учащение обмена просто быстрее доставляет ту же неверную цифру.
Горизонтальная схема из пяти блоков слева направо: «Факт на складе» → «Фиксация движения документом» → «Остаток в учётной системе» → «Обмен» → «Цифра в канале продаж». Над стрелками между блоками — четыре красных разрыва с номерами и подписями: 1 «проведено задним числом, до 24 часов», 2 «обмен по расписанию, до 24 часов», 3 «ручная правка без документа», 4 «товар в отборе не зарезервирован». Под схемой подпись: «событийный обмен закрывает только разрыв 2». Чертёжный стиль, подписи по-русски.
Что «реальное время» значит для разных каналов
Допустимая задержка определяется не техникой, а длиной цикла заказа в канале. Если клиент принимает решение о покупке за 15 секунд, остаток обязан быть свежим в пределах минут. Если заявка неделю согласовывается, суточная задержка ни на что не влияет.
| Канал продаж | Допустимая задержка | Практическая частота обмена | Что происходит при превышении |
|---|---|---|---|
| Отгрузки B2B по заявкам | 4–8 часов | 2–4 раза в день | Менеджер обещает то, чего нет; дата отгрузки переносится, репутационные потери без прямых |
| Розничная точка на общем складе | 2–4 часа | Раз в час | Продавец подтверждает наличие, а товар уже уехал в отгрузку другому каналу |
| Интернет-магазин | 15–30 минут | Каждые 5–15 минут | Заказ оформлен и оплачен на отсутствующий товар, дальше отмена и возврат оплаты |
| Маркетплейсы, схема со своего склада | 5–15 минут | Каждые 5–15 минут или по событию | Отмена по вине продавца: помимо упущенной маржи бьёт по показателям карточки |
| Склад материалов под производство | Сутки | Ночной обмен | Заявка на снабжение уходит на день позже, что заметно только на дефицитных позициях |
Из таблицы следует практический вывод, который экономит деньги: если у вас один канал и это B2B-отгрузки, обмен раз в 15 минут — избыточная роскошь, а раз в час — с запасом. Если каналов больше двух и один из них маркетплейс, то не помогает уже никакая частота, пока не закрыт четвёртый разрыв — товар в отборе должен уходить из доступного остатка в момент выдачи задания, а не в момент отгрузки.
Цена задержки: расчёт на 500 заказах в месяц
Считаем компанию с 500 заказами в месяц, средним заказом 8 000 ₽ и маржой 25 % — то есть 2 000 ₽ маржи на заказ. Точность остатков — 92 %, обмен с каналом продаж раз в час, резервирование при отборе не настроено.
Два замечания к этой арифметике. Первое: доля в 2 % — не константа, а функция точности остатков; на складе с точностью 98 % она падает примерно до 0,5 %, и вся строка усыхает вчетверо. Второе: здесь не учтены потери на стороне канала — понижение карточки в выдаче маркетплейса после отмен по вине продавца и отток клиентов, который проявится месяцами позже. Считать их модельно нечестно, но помнить о них надо: они обычно больше прямых.
Столбчатая диаграмма из трёх столбцов с общим итогом сверху «15 100 ₽ в месяц, 181 200 ₽ в год». Столбцы: «Отменённые заказы, 4 × 2 000 ₽» — 8 000 ₽, самый высокий и выделенный; «Разбор с клиентом, 10 × 30 минут» — 3 500 ₽; «Повторные и частичные отгрузки, 6 × 600 ₽» — 3 600 ₽. Под графиком строка исходных данных: «500 заказов в месяц, средний заказ 8 000 ₽, маржа 25 %, точность остатков 92 %, обмен раз в час». Сбоку пунктирная отметка «при точности 98 % — примерно вчетверо ниже». Чертёжный стиль, подписи по-русски.
Как найти источник расхождения за один вечер
Диагностика делается на одной позиции, по которой уже поймано расхождение. Из учётной системы выгружаются все её движения за сутки с двумя отметками времени: время факта — когда операция произошла на складе — и время проведения документа. Дальше сравниваются два столбца, и картина укладывается в один из трёх сценариев.
- 1Время проведения систематически позже времени факта на часы. Это первый разрыв: движения фиксируются задним числом. Признак — сдвиг регулярный и одинаковый по направлению, обычно «вечерние отгрузки проводятся утром». Чинится регламентом, денег не требует.
- 2Расхождение появляется и исчезает по расписанию. Остаток в канале расходится ровно между сеансами обмена и выравнивается после каждого. Признак — период расхождения совпадает с периодом обмена. Здесь и только здесь имеет смысл разговор о частоте.
- 3В движениях есть документ корректировки или изменение остатка без документа-основания. Это третий разрыв. Причина расхождения при этом уже не восстанавливается — правка стёрла след, — но виден масштаб проблемы: количество и сумма корректировок за месяц.
Если ни один из трёх сценариев не подошёл, а расхождение есть — остаётся четвёртый разрыв: товар в отборе. Проверяется он просто: сравнивается остаток по ячейке с остатком за вычетом открытых заданий. Если вторая цифра сходится с фактом, а первая нет, вопрос закрыт.
Отдельный случай — когда в выгрузке нет столбца «время факта», потому что система хранит только время проведения. Тогда его роль играют внешние отметки времени: время выпуска машины на пропускном журнале, время закрытия задания на терминале, время подписания УПД при приёмке. Сравнивать приходится вручную и по десятку операций, но одного вечера всё равно хватает — сдвиг, если он есть, виден сразу и он систематический, а не случайный.
Абстрактный нарисованный экран выгрузки движений по одной позиции за сутки (не скриншот реального продукта). Таблица из пяти колонок: документ, операция, количество, «время факта», «время проведения». Шесть строк; в трёх строках время проведения отстаёт от времени факта на 12–15 часов, и эти ячейки подсвечены. Одна строка — «корректировка остатка» без документа-основания, помечена восклицательным знаком. Справа сбоку — три подписи-сценария: «сдвиг по времени», «период обмена», «ручная правка». Чертёжный стиль, подписи по-русски.
Ручные правки: полный запрет и что вместо
Правило формулируется в одну строку: остаток меняется только документом, у документа есть основание, у основания есть автор. Возможность отредактировать количество напрямую в карточке или в регистре должна быть закрыта правами доступа, а не устной договорённостью.
Отдельный документ, который меняет остаток и обязательно содержит четыре вещи: причину из закрытого списка (ошибка размещения, незафиксированное перемещение, ошибка кратности упаковки, подтверждённая недостача), ответственного, ссылку на пересчёт ячейки и дату. Свободный комментарий вместо закрытого списка не годится: такие причины не суммируются, а значит, по ним нельзя понять, что чинить.
Корректировки не должны быть нулём — на живом складе они есть всегда, и обнулить их можно только запретом признавать ошибки. Нормальный ориентир — не более 1–2 % позиций в месяц, и при этом с равномерным распределением по причинам. Тревожный признак другой: половина корректировок приходится на одного человека или на одну причину. Это уже не учётный шум, а конкретная поломка в процессе, и лечится она там, где ломается, а не в системе. Регулярный источник таких строк отлично видно через циклический пересчёт с журналом причин.
Когда пятнадцати минут достаточно
Событийный обмен — когда каждое движение уходит в канал в момент проведения — стоит дороже пакетного не столько разработкой, сколько эксплуатацией: нужна очередь сообщений, обработка сбоев доставки, повторная отправка и мониторинг. Это плюс 80 000–150 000 ₽ к проекту интеграции и постоянное внимание к очереди. Отказаться от него можно в трёх случаях.
- Один канал продаж и цикл заказа дольше часа. B2B-отгрузки по заявкам, снабжение производства, оптовые поставки по договору — обмен раз в 15 минут здесь неотличим от мгновенного, потому что решение всё равно принимается людьми и не за секунды.
- Товар с большим запасом относительно суточных продаж. Если на позиции лежит месячный запас, задержка в четверть часа физически не может привести к продаже отсутствующего: остаток не успевает уйти в ноль за это время. Событийный обмен нужен только на позициях с оборачиваемостью в дни, и включать его разумно выборочно, а не на весь справочник.
- Не закрыты первые три разрыва. Пока отгрузки проводятся задним числом, а остаток правят руками, учащение обмена ускоряет доставку неверной цифры — и ничего больше. Порядок починки всегда один: регламент фиксации, запрет ручных правок, резервирование при отборе и только потом частота. Тот же принцип «сначала дешёвое, потом дорогое» лежит в основе всей ступенчатой автоматизации склада.
И обратный случай, где платить придётся: один и тот же остаток продаётся более чем в двух каналах одновременно, среди них есть маркетплейс, а оборачиваемость ходовых позиций — единицы дней. Здесь событийный обмен окупается быстро, потому что каждая отмена бьёт не только по марже, но и по позиции карточки. Как именно связывают склад с каналами продаж и что при этом ломается, мы разбирали на странице интеграций; отраслевую специфику для интернет-магазинов и маркетплейсов считаем отдельно.
Остаток в реальном времени — это не про скорость обмена. Это про то, что между действием на складе и записью в системе не проходит ни минуты и не участвует ни одна память человека.
