Общие сведения
Обзор процесса закупок в VirtualPos: как система рассчитывает, сколько товара докупить, как из этого получаются заявки и заказы поставщикам, как всё настроить с нуля на основе уже накопленной истории продаж и как работать дальше каждую неделю.
Общая схема
Закупка в VirtualPos — это цепочка из четырёх документов и расчётов. Каждое звено можно использовать отдельно, но вместе они позволяют пополнять запасы почти автоматически.
- Планирование Для каждого товара в каждой точке продаж система знает, сколько его должно быть, — планируемый запас. Он рассчитывается по истории продаж и выбранному алгоритму. См. Планирование запасов.
- Заявка на пополнение Система сравнивает планируемый запас с остатком и товаром в пути и формирует потребность — сколько докупить. Руководитель утверждает количества. См. Заявки на пополнение запасов.
- Заказ поставщику Закупщик распределяет утверждённые товары по поставщикам. Пока заказ «В пути», его товар учитывается в расчёте, чтобы не заказать повторно. См. Заказы поставщикам.
- Поступление Пришедший товар оприходуется поступлением. Когда заказ получен полностью, система предлагает его завершить.
Цель — держать в каждой точке столько товара, сколько продаётся за цикл закупки с запасом на случай задержек, и не больше.
Основные принципы
Как считается потребность
Потребность = планируемый запас − (остаток + в пути)
| Планируемый запас | Сколько товара должно быть в точке продаж. Рассчитывается алгоритмом по команде «рассчитать» и хранится до следующего расчёта |
| Остаток | Сколько товара сейчас в точке, по всем характеристикам |
| В пути | Товар в заказах поставщикам этой точки в статусе «В пути» — уже заказан, но ещё не пришёл |
Если потребность не больше нуля, закупать не нужно. Потребность видна в карточке товарного запаса («Рекомендовано к закупке») и в заявке на пополнение (колонка «Потребность»).
Откуда берётся скорость продаж
Основа планирования — оборачиваемость: за сколько дней продаётся одна единица товара в этой точке. Система считает её сама по истории продаж:
- учитываются кассовые продажи этой точки продаж. Отгрузки со склада, перемещения и списания в оборачиваемость не входят;
- период подбирается автоматически из 30, 60, 90, 180 и 365 дней: берётся самый короткий, за который удаётся посчитать оборачиваемость, — так она отражает свежий спрос;
- дни, когда товара не было в наличии, не учитываются — иначе дефицит выглядел бы как падение спроса.
Если продаж мало или их нет (новый товар, оптовые продажи отгрузками), задайте пользовательскую оборачиваемость — она важнее расчётной. Скорость продаж = 1 / оборачиваемость: оборачиваемость 0,5 дня означает 2 шт. в день.
Оборачиваемость и планируемый запас сами не пересчитываются. Перед каждой закупкой их нужно обновить — см. Регулярная работа.
Какие параметры описывают вашу закупку
Для расчёта уровней система спрашивает три параметра — они описывают, как вы работаете с поставщиком:
| Частота закупок | Как часто вы заказываете товар: каждый день, раз в неделю, раз в месяц |
| Срок поставки | Сколько дней проходит от заказа до появления товара в продаже |
| Страховой запас | Запас на колебания спроса и задержки поставок, в процентах. Для стабильного спроса — 20–40 %, для средней изменчивости — 50–80 %, для нестабильного — 80–250 % |
Выбор алгоритма
Алгоритм задаётся для каждого товара в каждой точке продаж. Разным группам товаров можно назначить разные алгоритмы.
- Алгоритм Теория ограничений Голдратта Товар дозаказывается до целевого уровня при каждой закупке: продали 5 — докупили 5. Минимальные запасы и частые небольшие заказы. Подходит для постоянного ассортимента с регулярными продажами и поставщиков, которые возят часто.
- Алгоритм Минимакс Товар заказывается, только когда остаток с учётом пути опустился ниже минимума, и сразу до максимума. Реже, но крупнее заказы. Подходит, когда у поставщика минимальная партия, доставка дорогая или товар выгоднее брать упаковками.
- Алгоритм Персональный алгоритм Собственные правила расчёта потребности под задачи вашей компании: например, учёт сроков годности, кратности упаковки или продаж в похожих точках. Настраивается по заявке через службу поддержки и появляется в списке алгоритмов под своим названием. Подходит, когда стандартные алгоритмы не учитывают особенности вашего бизнеса.
- Алгоритм Без алгоритма Планируемый запас не рассчитывается, товар в заявку автоматически не попадает. Подходит для разовых закупок, товаров под заказ, выводимого ассортимента — их добавляют в заявку или заказ вручную.
Как система считает уровни:
| Алгоритм | Уровень | Формула |
|---|---|---|
| Голдратт | Целевой уровень = планируемый запас | продажи в день × (частота + срок поставки) × (1 + страховой %) |
| Минимакс | Минимальный уровень | продажи в день × (частота + срок поставки) × (1 + страховой %) |
| Минимакс | Максимальный уровень = планируемый запас, если остаток + в пути ниже минимума | продажи в день × (2 × частота + срок поставки) × (1 + страховой %) |
Все уровни округляются вверх до целого. Подробнее, с примерами расчёта, — в статье Планирование запасов.
Какие данные нужны
Перед запуском планирования проверьте:
| История продаж | Продажи через кассу в каждой точке продаж хотя бы за 1–3 месяца. Чем длиннее история, тем точнее оборачиваемость. Для товаров без продаж нужна пользовательская оборачиваемость |
| Правильные остатки | От остатка зависит потребность. Если остатки давно не сверялись, проведите инвентаризацию |
| Поставщики | Справочник Закупки → Поставщики. В карточке товара полезно указать предпочитаемого поставщика — при подборе поставщиков в заявке его можно выбрать одним нажатием |
| Прайс-лист точки | Розничные цены нужны для колонки «Прогноз прибыли» в заявке |
| Параметры закупки | Частота закупок, срок поставки и страховой запас для каждой группы товаров или поставщика |
| Права | Пользователю, который настраивает планирование, нужны права на изменение параметров и массовые расчёты в товарных запасах (см. Права доступа) |
Первоначальная настройка
Порядок для одной точки продаж. Все массовые операции находятся в меню «Действия» раздела Запасы → Товарные запасы и применяются к товарам, отобранным фильтрами таблицы.
- Откройте Запасы → Товарные запасы и выберите точку продаж.
- Отберите товары, которые планируете пополнять: например, наличие «В наличии» или группу товаров. Удобно включить колонки «Группы» и «Алгоритм расчета планируемого запаса» в «Действия» → Настроить колонки….
- Назначьте алгоритм: «Действия» → Массовое изменение параметров…, поле «Алгоритм расчета планируемого запаса» — «Теория ограничений Голдратта» или «Минимакс». Для разных групп повторите отбор и назначение.

- Рассчитайте оборачиваемость по истории продаж: «Действия» → Рассчитать оборачиваемость → «Рассчитать». При большом ассортименте расчёт идёт несколько минут.
- Отберите товары без расчётной оборачиваемости (колонка «Оборачиваемость расчетная (дней)» пустая) и задайте им пользовательскую оборачиваемость через массовое изменение или загрузку через таблицу. Если спрос на них не известен, пока оставьте такие товары без алгоритма.
- Рассчитайте уровни: «Действия» → Рассчитать уровни планирования запасов → для алгоритма Голдратта… (и для алгоритма Минимакс…). Укажите частоту закупок, срок поставки и страховой запас, в поле «Пересчитать уровни» оставьте «(пересчитать все)» и нажмите «Рассчитать».

- Рассчитайте планируемый запас: «Действия» → Рассчитать планируемый запас… → «Рассчитать».
- Проверьте результат: колонки «Планируемый запас» и светофор в списке, «Рекомендовано к закупке» в карточках нескольких хорошо знакомых товаров. Если значения кажутся завышенными или заниженными, поправьте параметры закупки или страховой запас и пересчитайте уровни.

Несколько точек продаж. Настройте одну точку-образец, затем в остальных используйте «Действия» → Скопировать параметры c другой точки продаж…: скопируйте алгоритм и его параметры, а оборачиваемость и уровни рассчитайте в каждой точке по её собственным продажам.
Если параметры удобнее готовить в Excel, выгрузите список («Действия» → Выгрузить в CSV), заполните алгоритм, уровни или оборачиваемость и загрузите обратно через «Действия» → Загрузить через таблицу….
Регулярная работа
Цикл, который повторяется с частотой закупок — например, раз в неделю:
- Закройте прошлые заказы. В разделе Заказы поставщикам завершите полученные заказы и отмените те, что уже не придут. Иначе их товар будет учитываться «в пути», и потребность окажется заниженной.
- Обновите оборачиваемость. «Действия» → Рассчитать оборачиваемость по точке продаж. Расчёт удобно запускать накануне.
- Пересчитайте уровни, если изменились продажи или условия поставки. Чтобы не пересчитывать всё, выберите в «Пересчитать уровни» вариант «старше 30 дней».
- Пересчитайте планируемый запас: «Действия» → Рассчитать планируемый запас….
- Сформируйте заявку: «Действия» → Сформировать заявку на пополнение или создайте заявку с автозаполнением в разделе Заявки на пополнение. Поправьте количества, отправьте на утверждение.
- Создайте заказы. После утверждения распределите товары по поставщикам и создайте заказы. Когда поставщик подтвердит заказ, нажмите «Принят поставщиком».
- Примите товар. Создайте поступление из заказа, проверьте количества и проведите. Если заказ получен полностью, система предложит его завершить.

Сценарии работы
Магазин у дома: еженедельная закупка у дистрибьютора
Дистрибьютор принимает заказы по понедельникам и привозит через 2 дня, спрос стабильный.
- Алгоритм — Голдратт, частота закупок — раз в неделю, срок поставки — 2 дня, страховой запас — 30 %.
- Товар продаётся по 2 шт. в день: целевой уровень = 2 × (7 + 2) × 1,3 = 23,4 → 24 шт.
- В понедельник на остатке 9 шт., в пути ничего: в заявку попадёт 24 − 9 = 15 шт.
- Каждую неделю — регулярный цикл; уровни достаточно пересчитывать раз в месяц.
Товар партиями: минимальный заказ у поставщика
Поставщик возит раз в две недели, выгоднее заказывать крупно.
- Алгоритм — Минимакс, частота закупок — раз в 2 недели, срок поставки — 7 дней, страховой запас — 20 %.
- Товар продаётся по 1 шт. в день: минимум = 1 × (14 + 7) × 1,2 = 25,2 → 26, максимум = 1 × (28 + 7) × 1,2 = 42 → 42.
- Пока остаток с учётом пути не меньше 26, товар в заявку не попадает. Опустился до 20 — в заявку попадёт 42 − 20 = 22 шт.
- Если товар нужно заказывать кратно упаковке, поправьте количество в заявке перед утверждением.
Новая точка продаж без истории
Продаж в новой точке ещё нет, оборачиваемость не рассчитать.
- Скопируйте параметры с похожей действующей точки: «Скопировать параметры c другой точки продаж…» — алгоритм и параметры алгоритма, а также уровень планируемого запаса.
- Первые недели работайте по скопированному запасу или задайте пользовательскую оборачиваемость по опыту похожей точки.
- Через 1–2 месяца рассчитайте оборачиваемость по собственным продажам, очистите пользовательскую (знак
-в массовом изменении) и пересчитайте уровни.
Сезонный спрос или промоакция
Перед сезоном спрос вырастет, а расчётная оборачиваемость этого ещё не знает.
- Отберите сезонные товары и задайте им пользовательскую оборачиваемость под ожидаемый спрос — расчёт уровней и запаса будет опираться на неё.
- После сезона очистите пользовательскую оборачиваемость знаком
-— система вернётся к расчётной.
Частичная поставка
Поставщик привёз не всё.
- Создайте поступление из заказа, уменьшите количества до фактических и проведите. Система покажет «Заказ поставщику получен частично» со списком недостающего, заказ останется «В пути».
- Остаток пришёл — создайте ещё одно поступление из того же заказа. Когда получено всё, система предложит «Завершить заказ».
- Остаток не придёт — завершите заказ вручную, и при следующем расчёте недостающее попадёт в новую заявку.
Закупка без планирования
Товар под заказ клиента, разовая закупка, новинка.
- Создайте заявку без автозаполнения и добавьте товар вручную или сразу создайте заказ поставщику.
- Такие товары лучше оставить без алгоритма, чтобы они не попадали в автоматические заявки.
Частые ошибки
| Ситуация | Причина | Что делать |
|---|---|---|
| В заявке нет товаров | Не выбран алгоритм, не рассчитан планируемый запас или остатков хватает | Проверьте алгоритм и выполните расчёты по порядку: оборачиваемость → уровни → планируемый запас |
| Оборачиваемость не рассчиталась | Нет кассовых продаж товара в этой точке | Задайте пользовательскую оборачиваемость |
| Товары, которые продаются отгрузками, не планируются | Отгрузки не входят в оборачиваемость | Задайте пользовательскую оборачиваемость |
| Потребность занижена | В пути числятся полученные или отменённые заказы | Завершите или отмените такие заказы |
| Потребность завышена после инвентаризации | Остатки до инвентаризации были неверными, планируемый запас считался по ним | Пересчитайте оборачиваемость, уровни и планируемый запас |
| Заказывается слишком много мелочи | Голдратт при частых закупках | Для таких товаров используйте Минимакс |