Многие пользователи и администраторы систем на базе 1С:Управление торговлей 11.5 (а также КА 2.5 и ERP 2.5) сталкиваются с ситуацией, когда, несмотря на установленный флаг «Контроль отрицательных остатков» в настройках склада, документы «Перемещение товаров» или складские ордера спокойно проводятся, «уводя» остатки в минус. Это вызывает закономерные вопросы к логике работы системы.
В этой статье мы подробно разберем, почему штатные механизмы контроля могут «пропускать» такие операции, как на это влияет архитектура современных конфигураций и что нужно проверить, чтобы добиться жесткого запрета на отрицательные остатки.
Первая и самая важная причина, которую мы должны осознать: в 1С:УТ 11.5 контроль остатков по умолчанию выполняется на текущий момент времени (оперативно), а не на дату и время проводимого документа. Рассмотрим подробнее, к чему это приводит:
Проанализируем ситуацию: такая логика была внедрена разработчиками для существенного ускорения работы системы. Проверка остатков на каждую секунду по всей временной оси при проведении документа — крайне ресурсоемкая операция, которая в многопользовательском режиме может привести к серьезным блокировкам и замедлению базы. Однако для пользователя это выглядит как «отсутствие контроля». Для решения этой проблемы можно использовать расширение для дополнительной проверки остатков при проведении документов в УТ 11.5.
Если на вашем складе используется ордерная схема, важно понимать разделение на финансовый и складской учет. Документ ПеремещениеТоваров в этом случае является лишь распоряжением и фиксирует изменение остатков в регистре ТоварыОрганизаций (финансовый учет). Для выявления расхождений между этими контурами можно использовать отчет для сравнения регистров «Товары на складах» и «Товары организаций».
Списание физического товара со склада происходит только документом РасходныйОрдерНаТовары. Проанализируем цепочку событий:
ТоварыНаСкладах возникает только в момент проведения складского ордера.Если контроль остатков настроен некорректно именно для складских операций в карточке склада (вкладка «Ордерная схема и структура»), система позволит кладовщику провести ордер в минус, считая, что раз распоряжение есть, то и товар должен быть выдан.
В актуальных версиях УТ 11.5 за логику доступности товаров отвечает специализированный регистр РаспределениеЗапасов. Рассмотрим подробнее его механику:
Система не просто вычитает «Остаток минус Резерв», а использует сложные алгоритмы распределения по приоритетам заказов. За актуализацию этого регистра часто отвечает фоновое задание. Если это задание зависло или работает с большой задержкой, система может «видеть» товар как свободный, хотя он уже зарезервирован или отгружен другим документом секунду назад.
Выясним причину возможных сбоев в этом регистре:
Документ ОрдерНаОтражениеПересортицы часто стоит особняком в системе контроля. Разберем ситуацию: этот документ предназначен для отражения фактического положения дел на складе по результатам инвентаризации. В логике 1С складские акты часто имеют приоритет, так как они фиксируют реальность, которая уже наступила (товар уже физически перепутан на полках).
Иногда система допускает проведение таких ордеров даже с минусом по одной из позиций, если операция считается корректирующей. Чтобы этого избежать, необходимо в настройках склада убедиться, что не установлены исключения для складских актов.
Часто решение проблемы кроется не в программном коде, а в настройках прав пользователей. Проанализируем права сотрудника, проводящего документы:
Если у пользователя есть роль «Проведение документов без контроля остатков» или назначены «Полные права», система будет игнорировать любые настройки контроля в карточке склада. Для таких пользователей проверка просто отключается на уровне ядра конфигурации для обеспечения возможности оперативного исправления ошибок администратором.
Рассмотрим, какие действия необходимо предпринять, чтобы минимизировать появление «минусов»:
Посмотрим на пример того, как программно в расширении можно было бы перехватить момент проверки (упрощенно):
// Пример логики в расширении (общий модуль)
&Перед("ПроверитьОстатки")
Процедура Расш_ПроверитьОстаткиНаДатуДокумента(ПараметрыУчета, Отказ)
// Здесь могла бы быть логика переключения режима контроля
// с оперативного на фактический на дату документа
// ВНИМАНИЕ: это существенно замедлит работу системы!
КонецПроцедуры
Подводя итог, отметим, что контроль остатков в 1С:УТ 11.5 — это не просто одна «галочка», а совокупность настроек склада, прав доступа, актуальности регистров распределения и понимания оперативной логики системы. Для достижения идеального порядка на складе рекомендуем использовать отчеты по доступности товаров и регулярно проводить регламентные задания по распределению запасов.