Все статьи
30 августа 2026 · 20 мин чтенияУчёт расходных материалов в салоне красоты: нормы и списание
Расходники — самая незаметная статья затрат салона: краска, окислитель, шампунь, перчатки, одноразовое бельё уходят по чуть-чуть, а в конце месяца выясняется, что на закупку ушла заметная сумма и никто не может сказать, куда именно. Разбираем, как устроен складской учёт в SetNow: как задать норму расхода на услугу, почему материалы списываются сами после визита, что происходит при отмене, как считается себестоимость и маржа услуги и как увидеть, кто из мастеров расходует больше нормы.
Складской учёт можно начать без пересчёта всего салона
Главная причина, по которой склад не внедряют, звучит одинаково: «сначала надо всё пересчитать». Поэтому у каждой позиции есть отдельный переключатель «Вести остаток». Пока он выключен, движения не пишутся и склад ничего не требует, но плановая себестоимость и нормы расхода работают — материалы на одно оказание и маржа услуги считаются с первого дня. Включить остаток можно позже: система попросит ввести начальные остатки только по тем позициям, за которыми вы решили следить.
Рабочий порядок такой: завести позиции, проставить им плановую себестоимость, задать нормы для пяти-десяти самых частых услуг. Уже на этом шаге видно, сколько материалов съедает одно окрашивание и что остаётся от цены. Остатки, приходы и инвентаризация — второй шаг, к которому можно перейти через неделю или через месяц.
Номенклатура: позиция, назначение, единица
Единица учёта — позиция номенклатуры с назначением: «расходник» (уходит на услуги), «товар» (лежит на полке) или «товар и расходник». Последнее — не редкость, а норма для салона: один и тот же шампунь и продаётся клиенту, и льётся на мойке. Заводить под это две карточки с двумя остатками нельзя — так получается вечный пересорт, поэтому назначение является свойством позиции, а не признаком отдельного склада.
Единица измерения выбирается из закрытого списка — штуки, миллилитры, литры, граммы, килограммы, метры — и фиксируется первым движением; конвертаций между единицами нет намеренно. Упаковка вроде «флакон 250 мл» существует только для ввода и отображения — учёт всегда идёт в базовой единице. Позиции раскладываются по категориям, у прихода есть справочник поставщиков.
Складом работает филиал
Остаток и себестоимость ведутся по паре «позиция + филиал». Отдельной сущности «склад» нет, и селектора склада в формах тоже нет: сценарий «две кладовки в одном помещении» салонам и студиям не нужен, а от филиалов бесплатно наследуется модель доступа — владелец видит компанию целиком, администратор свои филиалы.
Перемещение между филиалами — отдельный документ, а не пара «списание плюс приход». Одна операция создаёт две половины сразу: расход в филиале-отправителе и приход в получателе, с одним номером и в одной транзакции — половина без второй половины невозможна. Себестоимость переносится сама, вводить цену нельзя: внутренняя перевозка не должна менять стоимость запаса компании ни на копейку. В расход и в потери перемещение не попадает ни в одном срезе — товар сменил полку, а не выбыл. Товарный баланс показывает переезды отдельными колонками: без них «расход 40 штук» не отвечает, продали товар, извели или увезли.
Норма расхода задаётся на услуге, а не на паре «услуга + мастер»
Норма живёт на отдельной вкладке «Материалы» в карточке услуги: строки «позиция + количество в базовой единице». Это принципиальный выбор. В матричном подходе, где норма привязана к паре «услуга × сотрудник», салон с двадцатью услугами и десятью мастерами получает двести точек настройки — их никто никогда не заполнит целиком, а половина заполненных устареет.
Исключения для конкретного сотрудника есть, но живут отдельным блоком, свёрнутым, пока он пуст. Сначала выбирается сотрудник, потом его строки — так исключение и читается: «у Анны иначе». Переопределение полностью заменяет базовую строку по той же позиции, в том числе значением 0 — «не использует». Ноль показывается явной пометкой, а не пустым полем: «не использует» и «не заполнили» — разные факты.
У строки нормы есть шкала. «На каждого пришедшего» — краска, перчатки, всё, что тратится на человека. «Один раз на состоявшееся занятие» — дезинфекция зала, материалы на группу целиком; такая строка списывается по завершении занятия, если пришёл хотя бы один участник. Именно вторая шкала делает учёт групповых форматов честным: расход на зал не должен умножаться на число участников. Одна позиция на одной услуге несёт одну шкалу — переключатель правит существующую строку, а не заводит вторую.
Правка нормы не действует задним числом. В списании участвуют только строки, созданные до факта посещения, а в каждом движении хранится снимок нормы. Поэтому изменение нормы сегодня не порождает расход у вчерашних визитов и не переписывает уже списанное — и отчёт за закрытый месяц не меняется сам собой.
Списание материалов идёт от факта визита, а не от нажатой кнопки
Отметили клиента как пришедшего — материалы списались в той же операции, вручную ничего проводить не нужно. Если посещаемость проставляется автозавершением записей, списание материализуется фоновой задачей с отсрочкой в 12 часов. Отсрочка здесь не техническая: автозавершение переводит в «пришёл» всех подряд, включая фактические неявки, и немедленное списание дало бы фантомный расход ровно по их доле — обычно 10–20 %. Двенадцать часов — окно, за которое специалист успевает исправить неявку до того, как она станет расходом.
Отмена — всегда видимый документ сторно, а не молчаливое исчезновение строки. Перевели визит в неявку, удалили ошибочную запись, отменили занятие целиком — материалы вернулись, и в журнале движений это отдельный документ со ссылкой на исходный. Возврат материалов не зависит от того, сгорело ли посещение абонемента: у штрафов по абонементам свои правила, у материалов — свои.
Нехватка остатка визит не блокирует. Услуга уже оказана, отрицать это учётом бессмысленно: автосписание проводится всегда, остаток уходит в минус ровно на непокрытую часть, недостача фиксируется в документе, а ответственным уходит уведомление. Минус гасится ближайшим приходом или инвентаризацией. Ручные операции в минус, наоборот, отклоняются всегда — с указанием доступного количества.
Фактический расход правит тот, кто оказывал услугу
Норма — это план, а факт знает только мастер: краски ушло полтора тюбика, а не один. Поэтому правка фактического расхода живёт прямо в карточке записи и доступна исполнителю без доступа к складу — при этом закупочные цены и суммы сервер ему не отдаёт, он видит только количества.
Ограничения у этой правки узкие и осознанные:
- только у записи в статусе «Пришёл» — в любом другом расход уже возвращён сторно;
- только позиции из норм услуг этой записи плюс расходники того же филиала;
- нехватка остатка — отказ: это ручная операция, а в минус уходит только автосписание;
- окно правки — от момента посещения до конца следующих суток по времени компании, дальше исправлять нужно складским документом.
Правка до материализации сама проводит списание с фактическими количествами и закрывает отсрочку; правка после — сторнирует прежнее движение и проводит новое, и так сколько угодно раз. Расход уровня занятия правится отдельной операцией на завершённом занятии, с тем же окном.
Складские документы: черновик → проведён, исправление только сторно
Все операции склада — документы одного устройства: начальные остатки, приход, списание, инвентаризация, переоценка, расход на услуги, сторно. Черновик правится и удаляется свободно и остатков не трогает. Проведение одной атомарной операцией создаёт движения и сдвигает остаток.
Проведённый документ не редактируется и не удаляется никогда. Ошибку исправляет встречный документ — сторно, зеркальное исходному, со ссылкой на него и датой дня исправления; дважды сторнировать один документ невозможно. По той же причине запрещена ретро-датировка: документ датируется моментом проведения, а номер и дата бумажной накладной — это реквизиты, а не дата операции. Только в такой модели журнал движений остаётся честным ответом на вопрос «куда делись 12 флаконов», а закрытый месяц не переписывается сам собой.
Приход адресный: поставщик из справочника и обязательная закупочная цена каждой строки — форма подставляет текущую среднюю или плановую себестоимость, чтобы не заставлять вводить цену заново. Одна позиция может идти двумя строками с разными ценами: две партии в одной накладной — обычное дело.
Списание обязано нести причину, одну на документ: порча, истёк срок годности, тестер, внутреннее потребление, недостача, исправление ошибки ввода. Без причины отчёт «куда делись двенадцать флаконов» не строится, и склад перестаёт быть инструментом контроля. Причина «перенос в другой филиал» осталась только в исторических документах — для переездов теперь есть документ перемещения, и новое списание с этой причиной система не примет.
Опечатка в цене накладной чинится переоценкой — она задаёт новую себестоимость позиции в филиале, не трогая количество, и требует комментария с причиной. Сторнировать приход, по которому уже прошёл расход, не выйдет: откат упрётся в запрет минуса. Поэтому правило простое — цена исправляется переоценкой, количество сторно.
Себестоимость средняя: каждый приход пересчитывает её по позиции и филиалу. Уже проведённые расходы при этом не переписываются — в движении лежит снимок себестоимости на момент списания, поэтому отчёт за прошлый месяц считается в ценах того месяца, а не в сегодняшних.
Начальные остатки и загрузка файлом
Начальные остатки — отдельный вид документа, а не приход: иначе они попали бы в отчёт «сколько вложено в закупки» и завысили бы его на всё, что и так лежало на полке. Вводятся они один раз: строка по паре «позиция + филиал», у которой уже есть движения, отклоняется — повторное «начало» просто задвоило бы остаток. Довнести найденное после старта можно приходом или инвентаризацией.
Для массового старта есть загрузка файлом «номенклатура + остатки» — с предпросмотром и сопоставлением колонок, как в импорте клиентов: разбор, затем создание позиций и один документ начальных остатков на филиал.
Инвентаризация в салоне: черновик, два снимка и пустая ячейка вместо нуля
Пересчёт полки — процесс, а не мгновенная правка остатков, поэтому у инвентаризации обязательный черновик: строки заполняются сколь угодно долго, до проведения остатки не тронуты. Пересчёт можно вести с телефона у стеллажа — это тот же документ и та же механика, что в вебе.
В каждой строке хранятся два снимка учётного остатка: на момент создания документа и на момент проведения. Корректировка строится от снимка на проведение, а разница между снимками показывается отдельной колонкой «изменилось за время пересчёта» с провалом в движения этого интервала. Визит, списавший краску, пока вы считали полку, виден явно и не выглядит недостачей.
Пустой факт и ноль — разные вещи, и это самое дорогое место инвентаризации. Непосчитанная позиция при проведении остаток не трогает вообще; ноль списывает её в ноль. Проведение порождает отдельные движения излишка и недостачи; себестоимость излишка берётся из строки, а если её не ввели — из текущей средней, а если и её нет — из плановой цены позиции.
Проведённая инвентаризация не удаляется — только сторнируется целиком, и только пока откат ни одной строки не уводит остаток в минус. Излишек, уже израсходованный визитами, делает сторно невозможным: система откажет со списком блокирующих позиций, и штатное исправление тогда — новая, компенсирующая инвентаризация. История в любом случае остаётся: ошибочный пересчёт видно, он не подчищается.
Партии и сроки годности: включаются на позицию, а не на весь склад
Партии нужны не всей номенклатуре. У косметолога шкаф филлеров стоит рядом со шкафом перчаток, в салоне из двухсот позиций серии важны для пяти-двадцати — краска, оксид, клей для ресниц, дезсредства. Поэтому партионность включается переключателем на позиции: выключатель на всю компанию заставил бы вести серии по бумажным полотенцам.
У партионной позиции приход обязан нести серию или срок годности — иначе товар молча ушёл бы в общий остаток, и прослеживаемость, ради которой позицию и пометили, терялась бы на самой частой операции. Повторный приход той же серии попадает в ту же партию, а не плодит близнецов.
Списание партию выбирает само — сначала то, что истекает раньше. Мастер не выбирает серию перед визитом и вообще о партиях не думает: карточка расхода показывает ему одну строку, даже если материал взялся из двух партий. Заставлять выбирать партию руками значит получить учёт, который начнут обходить.
Реакция на просроченное — настройка компании: салону предупреждение, клинике запрет. Запрет означает «пропустить партию и взять следующую», а не «отказать»: отказ приходит, только когда годного не хватило. Два исключения обязательны — списание по причине «истёк срок» берёт просроченное всегда, иначе его нельзя ни использовать, ни списать; и визит не блокируется никогда, потому что услуга уже оказана.
Срок сверяется с датой операции, а не с сегодняшним днём: автосписание материализуется фоновой задачей позже визита, и препарат, годный в момент оказания услуги, не должен задним числом становиться просроченным. Перевозка в другой филиал переносит партию вместе со сроком — переезд не способ обнулить контроль просрочки.
Себестоимость услуги: материалы на одно оказание и маржа
Сверху на вкладке «Материалы» в карточке услуги — две цифры, ради которых модуль чаще всего и включают: материалы на одно оказание и маржа, то есть цена минус материалы, в рублях и процентах. Если у услуги задана цена первого посещения, маржа по ней показывается второй строкой: акция, уводящая услугу в минус по материалам, должна быть видна до запуска, а не по итогам месяца.
Считается это по базовой норме со шкалой «на клиента». Нормы «на занятие целиком» в маржу услуги не входят — они относятся к занятию, а не к одному человеку, и делить их на число участников значило бы придумывать данные. Себестоимость единицы берётся общекомпанийская, средневзвешенная по филиалам: услуга не привязана к филиалу, и число в её карточке не должно меняться от того, какой филиал выбран в другом окне.
Если себестоимости нет ни в остатках, ни в плановой цене, маржа помечается неполной и перечисляет эти позиции ссылкой в отчёт «Нет себестоимости». Ноль вместо неизвестного здесь не подставляется никогда: молчаливый ноль превращает «мы не знаем себестоимость» в «материалы бесплатны». Под числами стоит постоянная подпись — оценка по нормам и текущей средней себестоимости, в выручку и финансовый отчёт она не входит.
Кто перерасходует: план/факт и отчёт по сотрудникам
Отчёты строятся по фактическим движениям расхода и читают снимки в строках, а не живые справочники: правка нормы или себестоимости сегодня не переписывает перерасход прошлого месяца.
Строка отчёта «План/факт» — пара «услуга + позиция»: план как сумма снимков нормы, факт, расхождение и его стоимость. Позиции, добавленные в визит вручную сверх нормы, помечаются «вне нормы» — сравнивать не с чем, стопроцентным перерасходом они не считаются. Отчёт «Перерасход» — та же выборка с группировкой по исполнителю, с разворачиванием до услуги.
Два правила, которые делают эти отчёты пригодными для разговора с человеком. Первое: перерасходом считается только положительное расхождение. Экономия показывается, но в итог не засчитывается — иначе один мастер компенсировал бы другого, и общий показатель врал бы в обе стороны. Второе: отменённые визиты исключаются из отчёта целиком, их расход возвращён сторно. Мастеру не предъявляют материалы по визиту, которого не было.
Деньги в отчётах считаются по снимку себестоимости на момент списания и остаются оценкой расхода материалов: они не складываются с ценой услуги и не попадают ни в выручку, ни в финансовый отчёт — раздела расходов у него нет. Связи с зарплатой тоже нет намеренно: удержание за перерасход оформляется вручную, корректировкой строки в расчёте зарплаты, с причиной и автором. Цена ошибки в автоматике по деньгам сотрудника выше, чем экономия ручного шага.
Оба отчёта требуют включённого «вести остаток»: у позиции, которая ведётся на глазок, движений не пишется, а плана без факта отчёт не строит. Обещание «работает с первого дня» относится к марже услуги, не к план/факту.
Продажа товара клиенту и цена на полке
Позиции с назначением «товар» продаются клиенту прямо из карточки: продавец указывается явно — он и исполнитель услуги не всегда один человек, и процент с продаж считается отдельным компонентом зарплаты, не смешиваясь с процентом от выручки визитов.
Выручка признаётся датой оплаты, а не датой оформления. Продажу можно сохранить в долг: товар ушёл, деньги нет — это явное состояние со своим списком, а не расхождение, которое потом ищут. Возврат — отдельный документ своей датой, а не удаление продажи; товар возвращается в ту партию, из которой ушёл, чтобы просроченная серия не воскресла как свежая.
У позиции есть цена продажи за упаковку — она предзаполняет строку продажи и печатается на ценнике. Ценники печатаются листом PDF на выбранные позиции: название, цена, фасовка, артикул и продавец с филиалом. Себестоимость на ценник не попадает никогда — он уходит в руки покупателю.
Расходная часть: сколько съели материалы и что такое валовая маржа
Финансовый отчёт получил вторую сторону. Главное правило, на котором она стоит: закупка — это не расход. Купленный товар не потрачен, он лежит на полке; расход — это выбытие. Отчёт, где закупка стоит в расходах, показывает убыток в месяц завоза и сверхприбыль в месяц распродажи при ровной работе салона.
Категорий три, а не одна сумма: материалы на услуги, себестоимость проданных товаров и потери. Слипшись, они перестают быть управляемыми — рост числа не скажет, работать стали больше или воровать. Списания с причинами «исправление ошибки» и «перенос в филиал» в потери не попадают.
Себестоимость признаётся вместе со своей выручкой: материалы — днём визита, товар — днём оплаты, а не отгрузки. Иначе продажа в долг разводит выручку и её себестоимость по разным месяцам, и маржа ломается в обоих. Итог называется валовой маржой и несёт постоянную подпись: это не прибыль.
ABC по обороту отвечает на вопрос «на чём сосредоточиться»: какие позиции съедают восемьдесят процентов складских денег, а какие лежат мёртвым грузом. Оборот — себестоимость выбытия, одна шкала на товар и расходник: считать товару выручку, а расходнику себестоимость нельзя, иначе в класс A попадёт товар с наценкой, а не позиция, которая реально съедает деньги. Списания и недостача в оборот не входят — иначе воровство поднимало бы позицию наверх и увеличивало её закупку.
Пороги остатков, отчёт «Что заказать» и уведомления
У позиции задаются минимальный и целевой остаток — сразу для всех филиалов, с возможностью перекрыть их на конкретном. Пустой порог означает «за позицией не следим». Отчёт «Что заказать» считает дефицит до целевого остатка и группирует его по поставщику, а кнопка создаёт черновик прихода с позициями и количествами: заявка собирается за один клик, а не переписыванием остатков в блокнот.
Уведомление о низком остатке приходит раз в сутки одним сообщением на филиал — «N позиций заканчиваются». Это тоже осознанно: компания, у которой в первый день внедрения двести позиций ниже порога, получит два уведомления, а не двести. Позиция не попадает в повторные пуши, пока её не пополнили выше порога, поэтому колебание около минимума даёт максимум одно предупреждение на цикл «упало — заказали».
Второй тип — недосписание: материал кончился прямо в момент автосписания и остаток ушёл в минус. Текст называет позицию, филиал и сколько не хватило; на пару «позиция + филиал» приходит не больше одного такого уведомления в сутки. Получатели у обоих типов одни: владелец и администраторы с доступом к складу и этим филиалом в зоне ответственности. Специалистам склад не отправляется никогда — у них нет такой страницы. Личный переключатель «Склад» в настройках уведомлений выключает и то и другое.
Кто видит склад
Доступ к модулю — один ключ страницы «Склад», и в стандартные роли он не входит. Причина простая: страницы склада показывают закупочные цены, поэтому доступ выдаёт владелец осознанно. Пока ключ никому не выдан, модуля для компании просто нет — это штатный выключенный режим, а не отдельная настройка.
Дальше действует обычный скоуп: владелец видит всю компанию, администратор — свои филиалы. Единственное исключение — правка фактического расхода в своей записи: она ключом не гейтится, иначе факт некому было бы вносить. Но суммы и закупочные цены сервер вырезает всем, у кого ключа нет, — не прячет в интерфейсе, а не отдаёт вовсе.
Склад в телефоне: то же самое, что в вебе
Мобильное приложение специалиста зеркалит склад целиком: номенклатура и справочники, остатки и пороги, документы всех видов с проведением и сторно, журнал движений, нормы расхода и маржа услуги, правка фактического расхода, отчёты, загрузка начальных остатков. Эндпоинты те же, что у веба, и расхождение поведения между вебом и телефоном по одной и той же операции считается дефектом, а не особенностью платформы.
Сканер штрихкодов в телефоне есть: камера читает код в карточке позиции, в поиске номенклатуры и прямо в продаже — отсканировал товар, строка добавилась с ценой из карточки. В вебе сканер работает и так: USB-сканер печатает код в поле поиска как клавиатура.
Чего в модуле нет намеренно
Отсутствующая функция честнее плохо работающей, поэтому список закрытых решений стоит знать заранее:
- Партионной оценки запаса. Партии и сроки годности есть (см. раздел выше), но себестоимость остаётся средней по позиции: партия режет количество и срок, а не деньги. Отчёта «серия A стоила 10, серия B — 14» нет — этого не просит ни одна сфера, а стоит он переписывания трёх отчётов разом.
- Нескольких складов внутри одного филиала. Складом работает филиал — «две кладовки в одном помещении» не тот сценарий, ради которого стоит добавлять селектор склада в каждую форму.
- Нескольких складов внутри одного филиала и взаиморасчётов с поставщиками. Складом работает филиал; приход хранит поставщика и номер накладной, но денежных отношений с ним модуль не ведёт.
- Закрытого учётного периода и ретро-окон прав. Прошлое и так не переписывается: проведённый документ неизменяем, а исправление — сторно днём исправления.
- Раздела «прибыль». Валовая маржа в финансовом отчёте есть — выручка минус материалы и себестоимость проданного, — но прибылью она не называется и ею не является: зарплата, аренда, налоги и подписки в неё не входят, и подпись об этом стоит прямо в отчёте.
Частые вопросы
- Обязательно ли вести остатки, чтобы увидеть маржу услуги? Нет. Достаточно нормы расхода и плановой себестоимости позиции. Остатки нужны для план/факта и отчёта по перерасходу.
- Что будет, если материал закончился, а клиент уже в кресле? Визит пройдёт как обычно: списание проведётся, остаток уйдёт в минус на непокрытую часть, ответственным придёт уведомление. Минус погасит ближайший приход или инвентаризация.
- Ошиблись в количестве прихода — как исправить? Сторнируйте документ и проведите правильный. Если по позиции уже прошёл расход и сторно упирается в запрет минуса, исправляйте инвентаризацией, а цену — переоценкой.
- Поменяли норму в середине месяца — пересчитается ли прошлое? Нет. Новая норма действует с момента правки, у списанных движений остаётся снимок старой.
- Мастер потратил меньше нормы — это где-то видно? Да, в план/факте и в отчёте «Перерасход» экономия показывается. В итог перерасхода она не засчитывается, чтобы один сотрудник не компенсировал другого.
- Можно ли автоматически удержать перерасход из зарплаты? Нет, это делается вручную — корректировкой строки в расчёте зарплаты, с причиной и автором.
- Пересчёт занял полдня, а салон работал — данные не собьются? Нет: корректировка строится от остатка на момент проведения, а всё, что случилось за время пересчёта, показывается отдельной колонкой с провалом в движения.
- Сколько позиций нужно завести, чтобы модуль был полезен? Обычно хватает десяти-пятнадцати: краска, окислитель, шампуни и маски, перчатки, одноразовое бельё. Мелочь вроде ватных дисков проще не считать вовсе, чем считать неаккуратно.
С чего начать
Заведите позиции только для того, что дорого или быстро кончается, и проставьте им плановую себестоимость. Задайте нормы для пяти-десяти самых частых услуг — этого достаточно, чтобы увидеть материалы на одно оказание и маржу, не введя ни одного остатка. Через неделю включите «вести остаток» у тех позиций, за которыми действительно хотите следить, введите начальные остатки — руками по филиалу или файлом — и поставьте минимальный и целевой порог. Дальше модуль ведёт себя сам: приход при поставке, автосписание после визитов, «Что заказать» перед закупкой, инвентаризация раз в месяц.
Смысл здесь не в том, чтобы «вести склад», а в том, чтобы на три вопроса был ответ в системе, а не в чьей-то памяти: сколько материалов съедает одна услуга, правильно ли назначена её цена и куда делись те самые 12 флаконов.
Читайте также
Попробуйте SetNow для своего бизнеса
Настройте онлайн-запись за один день и начните принимать клиентов 24/7. Регистрация бесплатная.