На складе дистрибьютора молочной продукции мы однажды насчитали 340 кг йогуртов, списанных за месяц. Товар не залежался: свежие партии просто уходили раньше старых, потому что стояли ближе к воротам. В Excel у кладовщика был остаток по наименованию, без партий и дат, и подсказать, что брать первым, ему было нечем.
Для продуктов, косметики, автохимии, медизделий и кормов учёт по наименованию не работает. Нужно знать, сколько товара в каждой партии, до какого числа он годен и что из этого уже обещано клиентам. Ниже о том, как это устроено в системе учёта запасов, которую мы делаем под такие склады.
Партия как отдельная запись
Партия появляется в момент приёмки. Кладовщик принимает поставку по УПД поставщика и для каждой позиции фиксирует:
- номер партии производителя;
- дату производства и срок годности;
- количество в базовых единицах и в упаковках;
- ячейку хранения;
- закупочную цену, если её нужно видеть на складе.
Дальше каждый документ движения ссылается на партию: перемещение, отгрузка, возврат, списание. Остаток по наименованию считается как сумма остатков партий. Поэтому вопрос «сколько у нас этого товара годностью до 15 ноября» решается одним фильтром.
Ручной ввод дат на приёмке даёт ошибки, особенно когда на этикетке формат «ММ/ГГ». Где получается, читаем данные со штрихкода GS1 или DataMatrix: в нём уже зашиты партия и срок. Для товаров в системе «Честный знак» код маркировки сканируется в любом случае, так что лишнего действия у кладовщика нет.
FEFO: первым уходит то, что раньше истекает
Для скоропорта FIFO не подходит. Партия, пришедшая позже, может истекать раньше, если поставщик отгрузил вам старый остаток. Поэтому используем FEFO (first expired, first out): при сборке заказа система предлагает партию с ближайшим сроком годности.
На практике правило дополняется двумя условиями:
- Минимальный остаточный срок для клиента. Сеть принимает товар, только если осталось не меньше 70% срока. Для такого клиента система пропускает партии с меньшим остатком, даже если они ближе к истечению.
- Одна партия в позиции. Некоторые покупатели требуют не смешивать партии в одной строке отгрузки. Тогда система ищет партию, где хватает всего количества.
Кладовщик получает лист сборки или задание на ТСД с ячейкой и номером партии. Если он берёт другую, при сканировании появляется предупреждение. Решение остаётся за ним, но отклонение фиксируется, и потом видно, почему отгрузили не ту партию.
Резервы
Резерв закрепляет количество конкретной партии за заказом. Без резервов два менеджера одновременно продают последние 50 упаковок разным клиентам, и склад узнаёт об этом на сборке.
Как мы это настраиваем:
- резерв ставится при подтверждении заказа, черновики и заявки товар не держат;
- у резерва есть срок: если оплаты нет 3 рабочих дня, он снимается, а менеджер получает уведомление;
- менеджер видит свободный остаток по каждой партии, то есть общий минус зарезервированный;
- РОП может переставить резерв с одного заказа на другой, это записывается в историю.
Контроль сроков до списания
Просрочку видно заранее, если на неё есть отчёт. В системе их обычно три:
| Отчёт | Кому | Что показывает |
|---|---|---|
| Истекает в ближайшие 30 дней | РОП, закупщик | Партии, остаток, сумма в закупочных ценах |
| Ниже порога для сетей | Менеджеры | Что уже нельзя отгрузить в сеть, но можно продать оптовику со скидкой |
| Просрочено | Кладовщик, главбух | Что снять с полки и списать актом |
Менеджерам удобно, когда прямо в заказе на карточке товара видно: из 600 штук 120 истекают через 12 дней. Тогда скидку на такую партию предлагают сразу, пока её ещё можно продать.
Возвраты и списания
Возврат от клиента приходит на ту же партию, с которой товар уехал. Если клиент вернул товар без документа с номером партии, кладовщик выбирает её из отгрузок этому клиенту за последние 60 дней, и вручную вводить номер не нужно. Возвращённый товар попадает в отдельную ячейку карантина и становится доступен для продажи только после проверки упаковки и срока.
Списание оформляется актом по конкретным партиям с причиной: истёк срок, бой, брак производителя. Причина нужна для разговора с поставщиком. Если брак повторяется в партиях одного завода, это видно в отчёте, и закупщик предъявляет претензию с цифрами на руках.
Как это стыкуется с 1С и МойСклад
1С:УТ 11 умеет вести учёт по сериям и срокам годности. Если склад уже работает в ней и кладовщиков всё устраивает, своя система не нужна: достаточно включить серии и настроить отчёты. МойСклад тоже поддерживает серии, но FEFO с порогами под конкретных клиентов и резервы по партиям там приходится обходить вручную.
Свою систему учёта запасов мы делаем, когда складская логика сложнее типовой: пороги по клиентам, несколько складов с перемещениями, сборка через ТСД, учёт в разных единицах. 1С при этом остаётся для бухгалтерии. Туда уходят приходы, отгрузки и списания в разрезе номенклатуры, оттуда приходят оплаты. Партии в бухгалтерии обычно не нужны, главбуху достаточно сумм.
С чего начать
- Посчитайте списания из-за сроков за последние 6 месяцев в рублях. Это база для расчёта окупаемости.
- Проверьте, где сейчас хранится срок годности: на этикетке, в приходной накладной, в таблице.
- Выпишите требования клиентов к остаточному сроку и смешиванию партий.
- Проведите инвентаризацию с фиксацией партий. Без неё система стартует с неверных остатков.
Если списания по срокам у вас заметные, можно написать нам в Telegram @automationdev24: опишите процесс, и мы скажем, хватит ли доработки текущей системы или нужна своя.
Узнали свою ситуацию?
Опишите в Telegram, как у вас сейчас идут заявки и учёт. Скажем, хватит ли доработки вашей CRM или лучше собрать свою систему. Первая консультация бесплатная.
Написать в Telegram