Склад запчастей: почему остаток нельзя просто исправить
Остаток — это сумма движений, а не число, которое кто-то ввёл. Разбираем, как деталь уходит в счёт визита, откуда берётся закупочная цена и почему инвентаризация вводит факт, а не разницу.
Склад автосервиса — это сотни позиций, из которых половина меняется каждый день, и немногие продаются со стойки. Пока остаток ведётся в столбце таблицы, он правдоподобен до вопроса «а куда делись две штуки». Тогда выясняется, что цифру меняли три человека, никто не помнит зачем, и инвентаризация становится поиском виноватого. Разберём, как устроен склад в LocalB.Автомастер и почему в нём нельзя просто поправить число.
Остаток — это движения, а не число
Остаток — это сумма движений, а не число, которое кто-то ввёл. Поэтому на вопрос «куда делись три штуки» всегда есть ответ, и поэтому «просто поправить цифру» нельзя.
Каждое изменение количества — это движение с датой, автором и причиной. Причина одна из одиннадцати, и по ним читается вся история позиции: приход, резерв, освобождение, продажа, списание, корректировка, расход на визит, возврат с визита, приход и расход перемещением, сторно. Ни одна из них не появляется сама, и ни одну нельзя придумать задним числом: для этого есть сторно, он записывает точную обратную операцию.
Два баланса, а не один
В системе два счёта, и их важно не путать. «Позиции» — то, что лежит на складе. «Товары в продаже» — витрина, то, что клиент может купить. Единица лежит ровно на одном из двух балансов: со склада на витрину её переносит документ «Перемещение», обратно — «Возврат на склад». Поэтому «на складе есть, а купить нельзя» — это не ошибка, а незакрытое перемещение.
Важное для мастерской. Запчасть, которая уходит на машину клиента, списывается со складского остатка, а не с витрины: то, что сервис расходует на работах, никогда не было выставлено на продажу. Расход на визит — отдельная причина движения, а не списание. Деталь, установленная клиенту, не потеряна, и сервис, который не различает эти два случая, не может отличить убыль от оборота.
Продажа со стойки живёт по своим правилам: единица уходит с витрины в момент создания заказа, то есть резервируется, а при завершении резерв превращается в продажу. Количество второй раз не меняется: единица ушла ещё на резерве. При отмене заказа позиции возвращаются на витрину, а всё оплаченное уходит в ту кассу, куда пришло.
Откуда берётся закупочная цена
Цена закупки — это не поле, которое кто-то переписывает в прайсе. Она приезжает вместе с поставкой: в каждой строке прихода стоит позиция, количество и цена, по которой вы реально заплатили. Поставщик при этом не строчка в комментарии, а запись справочника: видно, у кого и сколько вы берёте.
При следующей поставке цена подставляется с последней закупки этой позиции, и видно не только число, но и дату, по которой оно взято. Если в какой-то строке цены нет, документ скажет об этом, назвав строки, а не просто посчитает итог меньше.
Оценка склада идёт по этому числу — по тому, за что вы заплатили, а не по цене продажи. Витрина показывает обе цифры рядом, и они намеренно разведены: свести их к одной можно только выдуманной маржой.
Приход, инвентаризация, сторно
Приход — простой документ без сюрпризов: указали поставщика, добавили строки, проверили сумму, провели. До проведения остатки не тронуты, и черновик можно распечатать, чтобы прочитать план до того, как применять.
Инвентаризация — пересчёт. В строке указывается фактически найденное количество, а разницу с учётным остатком система посчитает сама. Это самая частая ошибка при пересчёте: вносить разницу вместо факта. После проведения появится корректировка — единственное движение, где число вводит человек.
Сторно — способ исправить ошибку. Проведённый документ не редактируется: правка переписала бы историю, которую остатки уже учли, и итоги тихо перестали бы сходиться. Поэтому ошибка исправляется сторно плюс новый документ — и в истории видно и ошибку, и исправление. Двух шагов не избежать, и это не бюрократия.
Механик ставит деталь, а отвечает другой
Запчасть попадает на визит через вкладку «Запчасти»: строку записывает мастер, а согласование подписывает ответственный. Состояний три, и каждое видно на карточке:
- На согласовании — деталь записана, решения ещё нет;
- Согласована — входит в сумму визита;
- Отклонена — в сумму не входит, но строка остаётся видна.
Отклонённая строка не удаляется намеренно: она объясняет, почему итог визита меньше, чем список деталей. Пока визит не в конечном статусе, запчасти правятся; у завершённого визита правки закрыты, потому что он уже посчитан, а у отменённого — потому что детали уже вернулись на склад. Ошибочно закрытый визит правится складским документом, а не редактированием визита.
Где остаток уезжает в минус
Почти всегда причина одна: расход на визит по позиции, которую забыли оприходовать. Смотреть надо историю движений позиции — у каждого движения есть автор и дата. Ещё одна причина — удалять товары вместо снятия с продажи: у удалённого товара нет баланса, на который можно вернуть отменённый заказ, и единицы становятся неучтёнными.
Порог «заканчивается» задаётся на самом экране: рядом с галочкой «только заканчивающиеся» стоит поле «остаток ≤». Это тот же порог, что уходит в выгрузку, поэтому файл не назовёт заканчивающимся не то, что видит экран.
Как это проверить
Склад — из тех разделов, где теория убедительнее одного пересчёта. На витрине LocalB.Автомастер показаны складские документы и финансы рядом, а в справке описаны все виды документов и одиннадцать причин движения остатка.
А если хотите проверить на своём складе, возьмите ключ на 14 дней, без карты и без обязательств. Расскажите, как у вас ведётся остаток и откуда берётся закупочная цена, — посмотрим, что закрывается настройкой, а что останется вашим решением. Пишите нам — отвечаем быстро.