В процессе работы с системой 1С:ERP Управление предприятием или 1С:Комплексная автоматизация пользователи часто сталкиваются с ситуацией, когда при отмене проведения приходного документа система позволяет «уйти в минус» по складским остаткам, несмотря на включенные настройки контроля. Особенно остро этот вопрос встает при использовании ордерной схемы документооборота. Рассмотрим подробнее, почему так происходит, разберем механизмы контроля и выясним, как обеспечить корректность данных.
Для начала проанализируем разницу в поведении системы на двух типах складов. На обычном (неордерном) складе за баланс отвечает один основной документ — например, Приобретение товаров и услуг. Он одновременно отражает поступление товара в финансовом учете (по организации) и в складском учете (по складу). При попытке отменить проведение такого документа система проверяет, не был ли этот товар уже списан. Если остатка недостаточно, программа выдаст ошибку и заблокирует действие.
На ордерном складе ситуация иная. Здесь складской учет отделен от финансового. За фактическое наличие товара отвечает документ Приходный ордер на товары. Проблема, описанная пользователями, заключается в том, что при отмене проведения именно ордера контроль в регистре Товары на складах часто не срабатывает. Это происходит потому, что ордер считается первичным отражением физического факта. Если кладовщик «отменяет» приемку, система доверяет этому действию, даже если это приводит к отрицательному остатку в программе, предполагая, что физически товара на полках действительно нет.
Чтобы понять, где именно «проседает» контроль, нам нужно рассмотреть два независимых контура, существующих в 1С:ERP:
Товары организаций. Здесь контролируется право собственности на товар. Если вы попытаетесь отменить Приобретение товаров и услуг, когда товар уже продан, система выдаст ошибку, так как нельзя продать то, что организации не принадлежит.Товары на складах. Здесь фиксируется физическое количество. На ордерных складах этот контур управляется ордерами. Именно здесь при отмене прихода часто разрешается «минус».Посмотрим на пример логической цепочки, которая приводит к ошибке:
Приход (Ордер №1) -> Расход (Ордер №2) -> Отмена Прихода (Ордер №1).
В момент отмены система видит, что вы изымаете партию товара. На обычном складе алгоритм проверки вызывается принудительно. На ордерном складе в коде типового решения проверка остатков при отмене проведения может быть оптимизирована (отключена) для повышения производительности, так как приоритетом является отражение реального складского состояния.
Проанализируем настройку в карточке склада. На закладке «Ордерная схема и структура» есть флаг Контролировать оперативные остатки. Важно понимать, как он работает в версиях 2.5.15 и выше:
Расходный ордер на товары, если товара нет. Однако он не всегда блокирует «движение назад» (отмену прихода).В обсуждении часто упоминается вопрос производительности. Настоящий, «честный» контроль отрицательных остатков — это проверка остатка не только на текущий момент (на «конец времен»), но и в каждой точке временной шкалы. Рассмотрим пример кода, который мог бы это реализовывать (условно):
Процедура ПроверитьОстаткиНаВсеДаты(Товар, Склад, ДатаНачала)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КонечныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, , День, , Номенклатура = &Товар И Склад = &Склад) ГДЕ Второе < 0";
// ... выполнение запроса ...
Если Не Результат.Пустой() Тогда
Отказ = Истина;
Сообщить("Обнаружен кассовый разрыв в периоде!");
КонецЕсли;
КонецПроцедуры
Если бы система выполняла такую проверку при каждом перепроведении документа за прошлый месяц, работа в многопользовательском режиме стала бы невозможной. Поэтому 1С применяет упрощенные механизмы контроля, которые иногда допускают временные «минусы» при отмене документов прихода.
Если вы столкнулись с тем, что пользователи бесконтрольно отменяют приходы, приводя склад к отрицательным остаткам, рекомендуем использовать следующие инструменты:
Это самый надежный способ. Обработка Закрытие месяца включает в себя этап «Исправление отрицательных остатков товаров организаций». Система не позволит закрыть период, пока все «минусы» не будут устранены. Хотя это контроль «постфактум», он гарантирует корректность финансового результата. Для оперативного исправления таких разрывов можно использовать обработку для автоматического устранения отрицательных остатков.
Не ждите конца месяца. Настройте отчет Ведомость по товарам на складах. Разберем, как это сделать:
Конечный остаток со значением «Меньше 0».Самый эффективный административный метод. Как только период (день, неделя или месяц) проверен и согласован, необходимо установить дату запрета. Это предотвратит отмену приходных ордеров в периодах, где товары уже были распределены или отгружены покупателям.
Выясним правильный порядок действий при ошибке в приходе. Вместо простой отмены ордера, предложите пользователям следующую схему:
Таким образом, мы выяснили, что отсутствие ошибки при отмене приходного ордера на ордерном складе — это не баг, а особенность реализации складского модуля 1С:ERP, ориентированная на отражение оперативного факта. Для предотвращения ошибок используйте совокупность настроек склада, дат запрета и регулярного контроля через специализированные отчеты. Для сверки данных складского и финансового контуров подойдет отчет для поиска расхождений между товарами на складах и товарами организаций.