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