Товар на складе есть, а отгрузить нельзя: где в 1С теряется доступный остаток
Почему «остаток» в 1С — это не одно число
В обычной голове остаток — это «сколько лежит на полке». В типовых конфигурациях 1С на одну и ту же номенклатуру есть несколько параллельных учётных характеристик: физическое наличие, зарезервированное под клиента, отгружаемое прямо сейчас, в пути с другого склада, забронированное под производственный заказ. Все они хранятся в разных регистрах учёта и складываются в формулу доступности.
Упрощённо она выглядит так:
Доступно = Физический остаток − Резерв под заказы − В работе у склада на отгрузку − Зарезервировано под производство
Это упрощённая модель — в каждой конфигурации состав слагаемых отличается. В УТ 11 / ERP полный набор; в УНФ — урезанный; в Бухгалтерии 3.0 типового регистра резервов нет вовсе. Но идея одна: физический остаток и доступный — разные величины, и в большинстве конфигураций есть штатный отчёт с разбивкой по этим колонкам.
Пять типичных причин «есть, но нельзя»
1. Резерв под более ранний заказ покупателя
По опыту обращений в техподдержку — одна из самых частых причин. Заказ от другого клиента, оформленный неделю назад, держит часть остатка в резерве. Менеджер этого может не видеть, потому что заказ оформлял коллега. В отчёте «Анализ остатков и резервов» (или его аналоге в вашей конфигурации) такие резервы видны явно: остаток 47, резерв 30, свободно 17. Если попытаться отгрузить 25 — система откажет.
2. Документ отгрузки уже создан, но не проведён
Кто-то из коллег открыл реализацию, набил строки, нажал «Записать», но не «Провести». Документ висит непроведённым, а его строки уже учтены в «к отгрузке». При попытке создать вторую реализацию на тот же товар вы упрётесь в этот «черновик». Лечится либо проведением первого документа, либо его удалением.
3. Перемещение в пути
Товар отправлен с центрального склада в магазин: документ «Перемещение» создан, но магазин ещё не подтвердил приёмку. На центральном складе товар уже списан, на магазине ещё не оприходован — он находится «в пути». В отдельной колонке отчёта он есть, физически тоже есть (в коробке грузовика), а к использованию недоступен.
4. Серии / характеристики / партии
Учёт ведётся не просто «47 штук номенклатуры X», а «47 штук номенклатуры X в трёх характеристиках и пяти партиях». Менеджер ищет «штуки серого цвета размер 42», а они закончились — есть только синие и красные. Формально остаток 47, фактически нужной комбинации — ноль.
5. Учёт по партиям и срокам годности
В конфигурациях с партионным учётом отгрузка может быть невозможна, потому что доступные партии не подходят по сроку годности или по требованию клиента (например, поставка должна быть из конкретной партии под маркировку).
Как посмотреть, где потерялась разница
| Что нужно понять | Где смотреть | На что обратить внимание |
|---|---|---|
| Физический остаток | Карточка номенклатуры → быстрый отчёт «Остатки» | Это база, от неё пляшем |
| Резервы под заказы | Отчёт «Анализ остатков и резервов» | Колонка «В резерве» по клиентам |
| Непроведённые отгрузки | Журнал реализаций с фильтром «не проведённые» | Дата создания и кто автор — часто там «забытый черновик» |
| В пути | Перемещения товаров, статус «отгружено, не принято» | Указывает на расхождение между складами |
| Характеристики и серии | Фильтр по характеристике в отчёте остатков | На номенклатуре с характеристиками отчёт без фильтра обманывает |
Программная проверка по складу
Когда менеджер постоянно жалуется «не могу отгрузить», а руками каждый раз ходить в отчёты долго — можно подцепить простой запрос к остаткам в кнопке формы заказа или в собственной обработке-диагностике. Имена регистра подставьте под свою конфигурацию (в УТ/ERP это обычно регистр накопления остатков товаров; в УНФ — свой).
// Получить остаток на конкретную дату по складу — каркас под доработку под вашу конфигурацию
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Номенклатура,
| Остатки.Склад,
| Остатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Остатки
|ГДЕ
| Остатки.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСервера());
Запрос.УстановитьПараметр("Склад", ВыбранныйСклад);
Запрос.УстановитьПараметр("Номенклатура", ТекущаяНоменклатура);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Остатков по этой номенклатуре на складе нет.");
Иначе
Выборка = Результат.Выбрать();
Выборка.Следующий();
Сообщить("Физический остаток: " + Выборка.КоличествоОстаток);
КонецЕсли;
Регистр ТоварыНаСкладах существует в УТ 11 / ERP / КА; в Бухгалтерии 3.0 товарный учёт идёт через счёт 41 и регистр бухгалтерии, а не через отдельный регистр накопления. Перед использованием этого кода — проверьте, какой регистр у вашей конфигурации действительно отвечает за физические остатки.
Чек-лист «менеджер не может отгрузить»
- Открыть отчёт по доступным остаткам (название зависит от конфигурации — обычно «Анализ остатков и резервов» или «Свободные остатки»). Посмотреть колонки физического остатка, резерва, в пути, к отгрузке.
- Если в колонке «Резерв» есть значения — найти, под какие именно заказы зарезервировано. Если эти заказы уже отменены — снять резерв.
- Проверить журнал реализаций за последнюю неделю с фильтром «не проведённые». Удалить забытые черновики или провести/отменить.
- Если у номенклатуры есть характеристики или серии — проверить, что менеджер искал именно ту комбинацию, которая нужна клиенту.
- Если включён учёт по партиям — проверить, что есть подходящие партии по сроку годности и условиям договора.
- Если ничего из перечисленного не объясняет разницу — сравнить физический остаток в учёте с фактом на складе. Возможно, расхождение появилось из-за непроведённой инвентаризации, и регистр просто отстаёт от реальности.
Типичные ошибки
- Смотрят только физический остаток. «47 штук — значит можно отгрузить 47». В простой файловой базе без резервов и перемещений это так. В конфигурациях с резервами, заказами в работе и характеристиками — пропуск любого из этих регистров даёт неприятный сюрприз: остаток есть, доступности нет.
- Удаляют чужие резервы без согласования. Менеджер видит «резерв 30 штук на клиента, которого мы давно не вспоминали», снимает резерв, отгружает другому. Через час оригинальный клиент звонит за своим заказом, и обнаруживается, что отгружать нечего. Резервы снимают только после подтверждения с автором заказа.
- Игнорируют товар «в пути». При планировании отгрузки видят остаток только на текущем складе. А товар в дороге уже идёт к нужному магазину — на него можно опереться через 2 дня, и заказ можно зафиксировать. Полная картина включает «в пути».
- Один общий справочник без характеристик при разнотипных товарах. «47 платьев» в карточке, при том что у клиента запрос «синие 42 размер». Если учёт без характеристик — система не различит, и менеджер каждый раз будет вручную проверять. Минимальный учёт — это всегда плюс к жизни.
- Закрытие месяца без проверки расхождений. Кассовая инвентаризация показала 45 штук, в учёте 47 — но никто не оформил списание. Через месяц менеджер пытается отгрузить 47, и нарывается на «недостаточно». Расхождения исправляют сразу после инвентаризации, не «потом».
- Доверять старой выписке остатков. В многопользовательской базе остаток между утром и обедом может измениться: коллега зарезервировал половину под другую сделку. Менеджер пытается отгрузить — пусто. Отчёт по доступным остаткам имеет смысл открывать непосредственно перед оформлением отгрузки, не утренний.
Перейти в каталог решений →