веб-приложение для пекарни помогает сводить план выпечки по дням, считать списания сырья и видеть остатки. Разберем шаги, экраны и пример.

В пекарне каждый день начинается с одних и тех же решений: что печь, сколько штук, к какому часу, и хватит ли сырья. Если спрос, заказы или поставка меняют план, пересчитывать все вручную приходится на ходу.
Когда план живет в таблицах и чатах, ошибки появляются незаметно. Вчера списали муку «примерно», сегодня замесили чуть больше, завтра в отчете внезапно минус по дрожжам. Остатки начинают жить своей жизнью: по факту мешок почти пустой, а по учету «еще на два дня». В итоге страдают и продажи (нет нужного изделия на полке), и деньги (лишние закупки, списания, срочные доставки).
Простой инструмент должен закрывать три вопроса, без лишней сложности:
Важно, чтобы это работало не «для бухучета», а для смены. Например: технолог задал нормы по рецептуре, сменный мастер утром внес план, а вечером видно, что из-за дополнительной партии батонов ушло больше муки и масла, и остатки пересчитались автоматически.
Ниже - каркас минимального веб-приложения для пекарни с двумя ключевыми частями: экран планирования выпечки по дням и отчет по остаткам ингредиентов.
Чтобы веб-приложение для пекарни реально помогало, начните не с экранов, а с простого ответа: какие решения вы хотите принимать каждый день. Обычно это две вещи: что и сколько печь по сменам, и хватает ли сырья, чтобы выполнить план без сюрпризов.
Минимальный набор «кирпичиков» небольшой. Нужны изделия (что продаете), сырье (что покупаете), рецептуры (как сырье превращается в изделие), остатки (сколько на складе) и списания (что ушло в производство или в брак). Если убрать хоть один элемент, появятся ручные правки и споры «почему цифры не сходятся».
План выпечки лучше фиксировать как записи по конкретной дате и смене. Для пекарни часто хватает 2-3 смен: утро, день, ночь. Тогда один и тот же день можно разделить по нагрузке и по факту выпуска, а не хранить «на день в целом».
Отдельно договоритесь, где живут нормы списания. Есть три частых варианта: на 1 штуку (круассан, булочка), на партию (например, противень 30 штук) или на 1 кг теста (если изделия отличаются формовкой, а замес общий). Выберите один основной подход, а остальное считайте автоматически. Иначе учет будет разным у разных смен.
К концу дня отчеты должны отвечать на три вопроса: что испекли, сколько сырья должно было уйти по нормам и сколько реально осталось. Например: утром запланировали 80 багетов и 40 сдобы, по нормам ушло 18 кг муки и 1,2 кг дрожжей, по факту списали чуть больше из-за брака, остаток муки 42 кг. Такой формат быстро показывает, где причина расхождений: план, нормы или дисциплина ввода.
Чтобы учет не превращался в спор у печи, нормы списания нужно зафиксировать один раз и одинаково применять каждый день. Это не про идеальную точность, а про понятные правила, которые дают стабильный результат: план выпечки превращается в потребность в сырье, а остатки в конце смены выглядят правдоподобно.
Начните с единиц измерения и запрета на «как-нибудь». Для каждого ингредиента выберите одну базовую единицу: мука в граммах или килограммах, молоко в миллилитрах или литрах, яйца в штуках. Если один и тот же продукт приходит в разных упаковках (например, масло 180 г и 5 кг), храните упаковку как справочную, а списание всегда ведите в базовой единице. Так меньше путаницы при пересчетах.
Дальше договоритесь, что такое норма по рецепту. Обычно есть брутто (сколько взяли со склада) и нетто (сколько ушло в тесто). Между ними потери: обрезь, прилипание к таре, усушка, остаток в мешке. Выберите один из двух подходов и держитесь его:
Добавьте правила округления. Например: дрожжи - до 1 г, соль - до 5 г, яйца - до 1 шт. Без этого план на 37 булочек каждый раз будет давать «0,37 яйца».
Если у вас есть партии и полуфабрикаты (опара, закваска, крем), решите, что вы считаете продуктом учета: сырье или полуфабрикат. Практичный вариант - опара как отдельная позиция с рецептом, а ее «производство» заранее списывает муку и воду. Тогда при планировании изделий опара списывается как готовый компонент.
Правило пересчета должно быть простым и одинаковым для всех:
Пример: на 1 батон нужно 300 г муки нетто, потери 2%. План 40 батонов. Потребность: 40 x 300 = 12 000 г, плюс 240 г потерь, итого 12 240 г, округляем до 12,25 кг.
Когда правила закреплены, веб-приложение для пекарни становится предсказуемым: экран планирования показывает потребность, а отчет по остаткам не «прыгает».
Чтобы план выпечки, списания и остатки не спорили друг с другом, держите два проверяемых факта: что вы планировали произвести и какие движения прошли по складу. Остальное - вычисления.
Основа обычно укладывается в пять сущностей. Их удобно держать отдельными таблицами даже для небольшого решения: Products (изделия), Ingredients (сырье), Recipes (рецептуры), PlanItems (план по дням), StockMoves (движения склада).
Рецепт лучше хранить не как текст, а как список строк: ингредиент + норма на 1 штуку (или на 1 кг, если так привычнее) + единица измерения. Тогда списание получается простым умножением: плановый выпуск x норма.
Заранее решите, что является единицей выпуска. Например, «батон» - штуки, и «хлеб на закваске» - тоже штуки, даже если вес гуляет. Если продажа идет в граммах, все равно можно планировать в штуках, а вес учитывать отдельным полем (справочно).
Остаток лучше не хранить отдельным числом - надежнее считать. StockMoves - это журнал операций по каждому ингредиенту и дате. Минимальный набор типов движений:
Расчет остатка за период: начальный остаток + сумма движений. Если была инвентаризация, ее удобно записывать как отдельное движение «инвентаризация» с фактическим остатком, а затем автоматически добавлять корректировку до этого значения.
Мини-пример: в плане на понедельник 40 булочек, в рецепте 0,03 кг муки на штуку. Плановое списание = 1,2 кг. Приход 25 кг, списание 1,2 кг, корректировка -0,3 кг после пересчета - и остаток сходится без ручных таблиц.
Для старта хватит двух экранов. Первый отвечает за план выпечки, второй показывает, что осталось на складе после списаний.
Форма должна быть простой: по дням (списком или календарем), чтобы пекарю и сменному мастеру не приходилось искать нужную дату. Внутри дня план удобно держать как таблицу со строками.
В каждой строке обычно достаточно:
Главная функция здесь - быстрый расчет потребности. По выбранному дню и смене система показывает, сколько сырья понадобится, и каким будет объем списаний по нормам. Если какого-то ингредиента не хватает, подсветите проблему до замеса.
Пример: на среду ставите 60 круассанов в утреннюю смену и 30 батонов в дневную. Нажали расчет и получили: мука 18 кг, масло 3,6 кг, дрожжи 180 г, плюс упаковка. Сразу видно, что масла на складе 3 кг и нужно докупить.
Во втором экране важны фильтры: дата (на конкретный день), склад (если их несколько) и, по желанию, категория («мука», «молочка», «упаковка»). Отчет лучше показывать двумя цифрами: остаток на начало дня и остаток на конец дня, а между ними - движение по списаниям и приходам.
Минимальный набор колонок: ингредиент, единица, остаток, зарезервировано под план, доступно, причина изменений (списания по плану, ручная корректировка, приход).
Если хотите сделать веб-приложение для пекарни быстро, не пытайтесь автоматизировать все сразу. Цель первой версии простая: смена внесла план, система посчитала потребность, а остатки начали сходиться с реальностью.
Начните с одного абзаца про пользователя. Например: «Бригадир утром открывает план на сегодня, добавляет изделия и количество, видит сколько нужно муки, масла и дрожжей, вечером подтверждает выпуск, а система списывает сырье и показывает остатки на завтра». Этот абзац станет фильтром для решений.
Дальше двигайтесь короткими шагами:
Удобное разделение по итерациям: (1) план на день и расчет потребности, (2) движения склада, отчет остатков и сверка.
Чтобы собрать приложение через TakProsto, важнее всего не «красиво описать идею», а зафиксировать правила. Думайте как технолог: что вводим, что считаем, что показываем.
Запрос обычно включает четыре части:
Если вы только начинаете, полезно прямо ограничить масштаб: «Сделай черновик без прав доступа, без ролей, без интеграций. Один пользователь, одна пекарня». Так быстрее увидеть рабочую логику, а усложнения добавить во второй итерации.
Добавьте отдельный блок «Формулы и округления» и оформите его как правила, которые нельзя трактовать по-разному. Например: списание ингредиента = план_шт x норма_на_шт; округление до 1 г; если ингредиент в штуках - округление вверх до целого.
Для проверки попросите сразу добавить тестовые данные и примеры расчетов: 2-3 изделия и около 5 ингредиентов. Затем вручную пересчитайте одну дату. Если совпало - идете дальше. Если нет - уточняете нормы, единицы и округления.
Собери черновик приложения.
Роль: аналитик + дизайнер.
Экраны: План по дням, Рецептуры, Остатки, Отчет по списаниям/остаткам.
Поля: дата, изделие, план (шт), ингредиент, норма (г на 1 шт), остаток (г).
Формулы: списание = план * норма; округление до 1 г; отрицательные остатки разрешены, помечать красным.
Тест: 2 изделия, 5 ингредиентов, показать расчет на 1 день.
Чтобы быстро проверить логику, возьмем два изделия и простые нормы. На таком примере хорошо видно, где появляются расхождения.
| Изделие | Мука | Вода | Дрожжи | Масло |
|---|---|---|---|---|
| Батон | 0,30 кг | 0,18 л | 3 г | 0 г |
| Круассан | 0,12 кг | 0,06 л | 2 г | 25 г |
Допустим, в понедельник вечером вы ставите план на вторник: 40 батонов и 60 круассанов. Экран планирования показывает потребность: мука 19,2 кг (40 x 0,30 + 60 x 0,12), вода 10,8 л, дрожжи 240 г, масло 1,5 кг.
Дальше важно разделить план и факт. Во вторник по факту испекли 38 батонов и 65 круассанов (круассаны ушли лучше). В экране производства фиксируете факт, а списание сырья считается от факта, а не от плана. Если часть теста ушла в брак, добавляете отдельную строку списания, чтобы не портить нормы по изделию.
К концу дня отчет по остаткам отвечает на четыре вопроса:
Например, если масла было 2,0 кг, то после факта по круассанам (65 x 25 г = 1,625 кг) останется 0,375 кг. Если на среду план 80 круассанов, система подсветит, что нужно докупить минимум 1,625 кг масла с учетом текущего остатка.
Даже если веб-приложение для пекарни уже работает, учет сырья часто «плывет» не из-за кода, а из-за мелких правил, о которых никто не договорился. Потом люди перестают доверять остаткам и возвращаются к тетрадям.
Один и тот же ингредиент живет в разных единицах: мука в кг, в граммах и в «мешках по 25 кг», а списания идут как попало. В итоге остатки невозможно сравнивать.
Выберите базовую единицу для каждого ингредиента и приводите к ней все операции: приход, списание, корректировки. Если кладовщику нужно видеть «мешки» или «пачки» - это только формат отображения, не отдельная логика.
Многие позиции физически нельзя списывать как «0,03 упаковки». Дрожжи приходят по 100 г, ванилин по 10 г, масло по 180 г. Если система списывает строго по рецепту, а на складе уходит целая пачка, расхождение неизбежно.
Заранее решите, где округляете. Обычно выбирают один из вариантов и фиксируют его по каждому ингредиенту:
Главное - не держать эти правила «в голове у старшего смены», иначе они не повторяются от дня к дню.
Если списания формируются автоматически из плана, а фактический выпуск отличается, остатки будут «правильные по документам» и неверные в реальности. Минимальный выход - разделить план и факт: план создает ожидание, а списание подтверждается фактом выпуска.
Инвентаризация без отдельной операции корректировки ломает доверие к системе. Нужен явный документ «корректировка остатков» с датой, автором и причиной (пересчет, порча, пересорт). Тогда история сохраняется, и понятно, откуда взялись расхождения.
Сегодня в рецепте булочки 6 г дрожжей, завтра 5 г. Если вы просто «перезаписали» норму, история расчетов за прошлую неделю станет неверной.
Пример: в понедельник выпустили 100 булочек по старой норме, а во вторник поменяли рецепт. Если система не хранит версии с датой начала действия, она пересчитает понедельник по новой норме и покажет «лишние» дрожжи. Решение - у рецептуры должна быть дата начала действия (и при необходимости дата окончания), чтобы расчеты по прошлым дням не менялись.
Перед тем как запускать веб-приложение для пекарни в ежедневную работу, выделите 40-60 минут на проверку с одним пекарем и человеком, который отвечает за склад. Сверяйте цифры не на всем ассортименте, а на нескольких понятных примерах.
Возьмите 3 изделия, которые часто печете, и проведите расчет сырья двумя способами: в приложении и вручную по техкарте. Если расход совпал, можно двигаться дальше. Если нет, не спешите «чинить» кодом - сначала уточните правила: что считается отходом, где учитывается усушка, как списывается вода, соль, дрожжи.
Проверку лучше делать на одном дне, где есть и выпуск, и поставка, и хотя бы одна правка. Тогда сразу видно, сходится ли логика остатков.
Небольшой сценарий для проверки: запланируйте на завтра 30 батонов и 20 круассанов, заведите приход муки и масла, сделайте одно списание и одну корректировку «по факту». Если после этого остатки выглядят правдоподобно, вы готовы к пилоту.
Чтобы веб-приложение для пекарни реально заработало, начните с базы: справочники изделий, сырья и рецептур. Пусть у каждого изделия будет понятный выход, а у каждого ингредиента - единицы измерения (кг, л, шт) и правило округления.
Минимальный пилот реально запустить за 1-2 дня: план на завтра и отчет по остаткам после списаний. Выбирайте одну смену или одну точку, чтобы быстро увидеть, где «не сходится» фактический расход и где персоналу неудобно.
Перед стартом пилота проверьте:
Дальше развивайте систему маленькими шагами, добавляя только то, что закрывает конкретную боль. Обычно следующими идут учет смен (кто и когда выпекал), несколько точек (витрина, цех, кофе-точка), закупки и напоминания о минимальных остатках. Уведомления стоит подключать только после того, как нормы и остатки стали стабильными.
Чтобы упростить ежедневную работу, заведите шаблоны дней: «будний», «пятница», «выходной», «праздник». А изменения в рецептурах делайте безопасно: сохраняйте снимок перед правками и держите возможность отката, если после обновления «поехали» списания.
Если вам нужен быстрый черновик без долгой разработки, этот минимальный контур удобно собрать через vibe-кодинг в TakProsto (takprosto.ai): описываете сущности, формулы и два экрана, а затем проверяете расчеты на одном «тестовом дне» и уточняете правила вместе со сменой.