Содержание статьи
Продолжение серии «Автоматизация для новичков на примере малых предприятий».
В прошлой главе я уже продал Азизу CRM и разъяснил вам основные термины интеграторов ERP простым языком обывателя. Настало время вновь заглянуть в Непревзойдённую шаверму и познать чем же так важны Фефа и Фифа в пищевом бизнесе.
Часть 1. Сюрприз из ларца
Подойдя в тот день к «Непревзойдённой шаверме» я застал неожиданную картину — Азиз держал на руках какой-то свёрток и натурально плакал. Щеглов же стоял рядом с видом виноватого юноши только что узнавшего, что он внезапно стал отцом в свои 18 лет.
—Почему он — чОрный? — сквозь слёзы простонал Азиз обращаясь к сменщику.
— Ну, может порода такая? Как альбинос, только наоборот.
— Пойми, я не расист, я ничего не имею против альбе… альби… в общем мне пофиг какой у него нос. Но мясо барашка не может быть чёрным! Даже если его из Африки привезли по культурному обмену.
Приблизившись к парочке и взглянув на слегка попахивающий, почерневший, кусок мяса в руках хозяина Непревзойдённой шавермы, мне стало понятно — во время прошлой интеграции CRM с учётом продаж и логикой заказа мяса что-то всё-таки осталось за кадром.
— Азиз, гамарджоба, что у тебя случилось?
— И тебе шалом, Павлик. У меня тут мясо решило получить разрешение на работу и устроиться в мою шаверму вместо Щеглова. Судя по его виду оно скоро обретёт сознание и заговорит…
— Так у тебя в руках просрочка! Откуда она вообще?
— Со дна ларя достал. Оно всё? Капут? Может если гриль посильнее включить, то запах исчезнет?
— Запах исчезнет вместе с клиентами. Там кадаверин, эндотоксины и пероксиды вовсю поселились уже. Хотя если ты вдруг владеешь долями бизнеса в ближайшем WC, то будет двойная прибыль в моменте.
— И что делать? А?
— Положи это в мусорный пакет, тщательно вымой руки и давай разбираться в чём причина. Я же, вроде, планирование закупки нормально настроил в системе, каждые 900 продаж уведомление “Закажи шесть новых комплектов мяса”.
— Павлик, а я однажды восемь заказал — вздохнул Азиз.
В первой главе нашего увлекательного повествования система уже умела считать продажи, понимать средний расход мяса исходя из количества продаж и заранее напоминать, что пора заказывать новую партию баранины, чтобы точка не встретила вечерний поток клиентов концепцией «Веганское меню». Но инопланетное мясо в ларе недвусмысленно намекало: вовремя заказать товар и правильно управлять его физическим движением — это две разные задачи. Даже в пределах маленького ларька с шавермой внутри которого, простите за тавтологию, ларь с запасами шавермы.
Часть 2. Как всё началось летом
Чтобы понять, откуда взялась просрочка, я начал расспрашивать Азиза. И довольно быстро выяснилось, что история началась не сегодня и даже не вчера, а ещё летом, в дни, когда обычная Непревзойдённая петербургская шаверма внезапно столкнулась с макроэкономической активностью.

Азиз рассказал, что в один из дней поток покупателей резко вырос. В обычный день точка продаёт около 300 шаверм, то есть расходует примерно 2 вертела по 20 кг. Но тогда за день ушло не два, а три. Именно в этот день уведомление о необходимости заказать следующую партию пришло во вторую смену, когда у кассы стоял Щеглов. Он увидел задачу, закрыл её, но мясо не заказал.
— Летом это было. Международный фестиваль какой-то. Девушки стаями ходили и все, представляешь, голодные, водители голодные, охрана голодная, люди с галстуками — тоже голодные. За день не два вертела ушло, а три.
— И система… триггер сработал?
— Выкинуло уведомление: «закажи мясо». Во вторую смену. Щеглов увидел. Щеглов закрыл. Щеглов молодец — может по кнопке попасть.
— А заказал?
— Нет. Я своих поставщиков при себе держу, мне не надо что бы он узнал как и у кого заказывать, а потом конкурирующую точку напротив открыл.
— Логично. И…?
— И я с утра увидел, что в запасе три, а не четыре комплекта мяса. Срочно заказал конечно, обошлось.
Часть 3. Что именно считала система
Чтобы не обвинять CRM во всех бедах человечества, надо восстановить логику процесса. В точке Азиза продаётся около 300 шаверм в день. Из одного вертела физически нельзя продать больше 150 порций, поэтому при продажах от 151 до 300 шаверм за день расходуются уже два вертела, а при продажах от 301 до 450 — три. Это важный момент: считать здесь нужно не абстрактные килограммы, а фактическое количество открытых вертелов по дневному объёму продаж.

Исходная схема была такой. Один вертел находится в работе на гриле, второй размораживается на вторую половину дня, а в ларе между поставками хранится рабочий запас. Поставка приходит раз в три дня, обычно во второй половине дня, и привозит шесть вертелов, то есть 120 кг. Максимально в точке, в день ранней поставки, может одновременно оказаться восемь вертелов: шесть в ларе, один на гриле и один на разморозке. Минимально, если поставка успевает только к вечеру, остаются два активных вертела: один в работе и один размораживается; ларь к этому моменту пуст.
При этом обычный цикл потребления за три дня — это 900 шаверм, то есть ровно шесть полных вертелов.
День цикла
На гриле
Размораживается
В ларе
Событие
День поставки после приёмки
1
1
6
Поставка принята
Следующий день
1
1
4
Обычная работа
День перед заказом
1
1
2
Азиз должен получить задачу «закажи мясо на завтра»
День поставки до приезда машины
1
1
0
Работа до поставки
Форс-мажор показал слабое место не в математике продаж как таковой, а в логике исполнения. Система увидела рост расхода и честно создала задачу на заказ, но не учитывала полномочия пользователя в открытой смене. Уведомление попадало к Щеглову, который не отвечает за закупку, но технически мог задачу закрыть так как не было настроено разделение ролей.
— Ну я после того случая подумал: жизнь непредсказуемая, надо держать резерв. И взял два вертела сверху. Для спокойствия. Вдруг снова голодные девушки придут?
Азиз не стал менять систему, а решил изменить реальность вокруг неё. Однажды мясо привезли рано утром, до того как из ларя вынули два оборотных вертела. Так Азиз познал, сам того не догадываясь, реальную вместимость хранения, увидев что поставка из шести упаковок спокойно поместилась в ларь с двумя оборотными и сделал из этого практический вывод: в ларе можно физически держать восемь вертелов по 20 кг. После инцидента с внезапным ростом продаж Азиз решил создать резерв из двух дополнительных вертелов «на всякий случай».
Это решение выглядело разумным ровно до того момента, пока не вспоминался срок годности мяса — три месяца. При старой логике в точке одновременно могло быть максимум восемь вертелов: шесть свежих в ларе после поставки, один на гриле и один на разморозке. И эти шесть по заложенной логике расходовались к моменту совершения свежей поставки. Девятого и десятого вертела в схеме не было. Когда Азиз добавил резерв, он фактически сделал эти девятый и десятый вертелы частью постоянного запаса, но не изменил правила учёта, размещения и отбора. Система продолжала жить в мире обычного восьмивертельного цикла и логика бизнес-процесса всё ещё вынимала за несколько дней очередные шесть вертелов из обычного оборота, но не доходила до резервных, которые лежали внизу и постепенно устаревали.
— Азиз, скажи честно: резерв этот с какого времени лежит?
— С лета ещё. Паша, не смотри на меня так.
— Поздравляю. Ты изобрёл складской саркофаг для баранины. Придётся внедрять тебе FIFO.
— В моей шаверме попрошу не выражаться! Просил же, по-русски…
FIFO — First In, First Out, «первым пришёл — первым ушёл».
Самый понятный бытовой пример — очередь при распределении мест в детском саду. Ребёнок которого родители поставили в очередь на поступление в детский сад сразу после рождения в идеальном мире должен к моменту окончания декретного отпуска родителей достичь своей очерёдности и получить место в детском саду. При нарушении очерёдности из-за добавления приоритетных пакетов льготников и неверно рассчитанной емкости детсада ребёнок получает место только по достижении 7-ми лет, когда уже в школу пора.
Часть 5. Как внедрить FIFO без излишеств
На этом месте Павлик объясняет Азизу важную вещь: ему пока не нужна тяжёлая отдельная WMS. Для одной точки и одного ларя достаточно добавить в учёт несколько параметров и дисциплину работы с партиями ТМЦ.
Для мяса вводится простая схема маркировки. Каждая новая партия получает бумажную метку под прозрачным скотчем: номер партии, дата поступления и срок годности. Например:
МЯСО-041 Поступило: 12 июня Годно до: 12 сентября
Дальше правило становится бытовым и понятным любому сотруднику:
-
Поставка принимается и маркируется.
-
Более новые партии кладутся так, чтобы не перекрывать доступ к старым.
-
На разморозку и в работу первым идёт вертел с самой ранней допустимой датой.
-
Если партия испорчена или режим хранения нарушен, это фиксируется как списание, а не задвигается в историческую тьму.
— Смотри, Азиз. Мы не будем строить тебе логистический центр. Просто на каждую новую партию клеим бумажку с номером и датой. Старая лежит так, чтобы её можно было взять первой. Новая — за ней. И Щеглов берёт не то, что ближе к руке, а то, что приехало раньше.
Часть 6. Роли, смены и кто имеет право закрывать задачу
Но одним FIFO проблема не исчерпывалась. История началась с того, что триггер попал во вторую смену Щеглова, а тот смог закрыть задачу, не имея полномочий на заказ партии. Поэтому вместе с маркировкой партий пришлось изменить и сам бизнес-процесс: кто видит событие, кто может его подтвердить и в какое время оно должно появляться как обязательное.
Теперь логика такая. Если условие заказа достигается в смену человека, который не отвечает за закупку, уведомление показывается как информационное и не мешает работе. Но закрыть его нельзя. При следующем открытии смены ответственным сотрудником — Азизом — задача дублируется уже как обязательная к подтверждению. Таким образом триггер остаётся привязан к фактическому состоянию запаса, а право совершить действие — к роли и полномочиям сотрудника.

— То есть Щеглов теперь задачу видит, но закрыть не может?
— Именно. Видеть — может. Решать — нет.
— Ладно, мясо понял. А пита? Я иногда не у поставщика, а в соседнем магазине беру по акции, там дешевле. Её тоже по очереди маркировать?
— Не всегда. Если сроки разные, там уже не FIFO, а FEFO. Сначала уходит то, что раньше испортится.
Часть 7. Применение FEFO в ретейле
После истории с FIFO Азиз закономерно спросил про другой товар. Иногда он покупает замороженную питу в соседнем магазине по акции, потому что так выходит дешевле, чем у основного поставщика. Но у такой питы срок годности обычно на исходе, и тут простого порядка поступления уже недостаточно и необходимо вести учёт срока годности который будет являться приоритетным значением. Если у нас осталось в запасе 3000 (запас на 10 дней работы) пит от поставщика со сроком годности истекающим через 1 месяц, но в соседнем магазине выложили в продажу питы по акции с датой best before наступающей через неделю, то их требуется пустить в использование первоочерёдно.
Кстати, сами акции в магазинах часто работают по похожей логике. Когда система управления запасами видит, что товар приближается к сроку после которого его придётся утилизировать — срабатывает триггер и бизнес-процесс согласно определённому правилу снижает цену, запускает акцию, печатает новые ценники и проводит ротацию таких остатков со склада на выкладку на витрине, чтобы ускорить продажу и не переводить товар в списание. То есть внезапная щедрость магазина к покупателю часто оказывается не добротой маркетолога, а довольно холодной математикой срока годности. Простейший механический пример FEFO вы можете видеть на полках с молочной продукцией в ближайшем магазине — свежие бутылки молока, независимо от того проводится загрузка с фронтальной либо задней части холодильника — стоят у задней стенки. У края полки стоят товары с истекающим в ближайшие сутки сроком годности.
— Так как это событие непериодично, то предлагаю ввести цветовую дифференциацию штанов. Если закупаешь что-то по акции, что почти уже стало просрочкой — маркируй чёрным стикером и скажи Щеглову что бы первыми расходовал запасы с такой меткой. Меньше думать — меньше портить.
— Павлик, а если я двух распродаж притащу, тогда ещё и жёлтое — пора шевелиться, но только после чёрного, да?
— Пойдёт. Один взгляд, и уже понятно, что можно оставить, а что надо срочно пускать в дело. Главное никакой путаницы и необходимости смотреть дату годности на мелкоштучных предметах. И базу перегружать не будем учётом 100500 единиц товара с тремя разными сроками годности.
Эпилог. К чему это всё ведёт
Через несколько дней у Азиза была уже не просто шаверма с холодильником, а маленькая взрослая логика складского учёта. CRM по-прежнему понимала клиентов и продажи, а связанный с ней учёт всё так же прогнозировал момент, когда пора формировать задачу на заказ мяса, исходя из скорости реализации и фактического состояния запаса. Но теперь к этой истории добавились партии, сроки годности, порядок отбора, роли сотрудников и привязка уведомлений к полномочиям.
Просроченное мясо пришлось списать. Резерв Азиз оставил, но уже не как тайную заначку на дне ларя, а как видимый элемент процесса, который подчиняется правилам FIFO. Щеглов больше не мог закрывать чужие задачи. А Азизу стало понятно, что любое изменение в бизнес-процессе сначала вносится в систему, а уже потом — в холодильник.

— Паша, хорошо. А поможешь потом ещё с кассой разобраться? С этими закупками по акции, списаниями просрочки я уже путаться начинаю в деньгах. Тут мне ещё какой-то терминал для эквайринга в банке выдали. Говорят, что бы клиенты карточками платили прямо мне на счёт и не приходилось деньги мешками в банк таскать. Как с него Z-отчёт снимать?
— Ну теперь пора знакомиться с POS, кассой и магией ПэйВэй.
Но это уже совсем другая история…
