На складе дистрибьютора молочной продукции мы однажды насчитали 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С при этом остаётся для бухгалтерии. Туда уходят приходы, отгрузки и списания в разрезе номенклатуры, оттуда приходят оплаты. Партии в бухгалтерии обычно не нужны, главбуху достаточно сумм.

С чего начать

  1. Посчитайте списания из-за сроков за последние 6 месяцев в рублях. Это база для расчёта окупаемости.
  2. Проверьте, где сейчас хранится срок годности: на этикетке, в приходной накладной, в таблице.
  3. Выпишите требования клиентов к остаточному сроку и смешиванию партий.
  4. Проведите инвентаризацию с фиксацией партий. Без неё система стартует с неверных остатков.

Если списания по срокам у вас заметные, можно написать нам в Telegram @automationdev24: опишите процесс, и мы скажем, хватит ли доработки текущей системы или нужна своя.

Узнали свою ситуацию?

Опишите в Telegram, как у вас сейчас идут заявки и учёт. Скажем, хватит ли доработки вашей CRM или лучше собрать свою систему. Первая консультация бесплатная.

Написать в Telegram