В процессе работы с производственным контуром 1С:ERP пользователи часто сталкиваются с ситуацией, когда документ Этап производства отказывается проводиться, выдавая диагностическое сообщение: «Заказано для обеспечения больше чем требуется на Х шт.». При этом администраторы системы замечают странную особенность: под полными правами документ проводится без нареканий, а у производственника с ограниченным набором ролей возникает блокирующая ошибка. Рассмотрим подробнее, почему так происходит, как работает механизм контроля и какими способами можно устранить данную проблему.
В типовых конфигурациях на базе 1С:ERP (включая «Комплексную автоматизацию») многие механизмы контроля остатков и резервов реализованы на уровне программного кода в модулях проведения. Проанализируем типичный фрагмент логики системы: разработчики часто встраивают условие, которое отключает жесткие проверки для пользователей с административными полномочиями. Это сделано для того, чтобы в экстренных ситуациях администратор мог «протолкнуть» документ, не исправляя всю цепочку товародвижения.
Пример упрощенной логики в коде может выглядеть так:
Если НЕ РольДоступна("ПолныеПрава")
И НЕ РольДоступна("РазрешитьПроведениеДокументовБезКонтроляОстатков") Тогда
// Выполнить проверку регистра "Обеспечение заказов"
// Если "Заказано" > "Потребуется", ВызватьИсключение ТекстОшибки;
КонецЕсли;
Таким образом, когда производственник пытается провести Этап производства, система обращается к регистрам накопления и видит «переобеспечение». Для обычного пользователя это критическая ошибка, так как система пытается поддерживать строгий баланс между тем, что мы планируем потребить, и тем, что мы уже заказали у поставщиков или в других цехах.
Ошибка не возникает на пустом месте. Система сообщает о том, что под конкретное Назначение (связка Заказа на производство и выпускаемой продукции) уже зарезервировано или заказано товаров больше, чем указано в текущем этапе. Разберем основные сценарии, приводящие к этому:
Этап производства на 100 единиц продукции. На основании этого этапа сформировали Заказ поставщику на 100 единиц комплектующих с обособлением под данный этап. Позже спецификация изменилась или объем выпуска сократили до 80 единиц. Потребность в этапе уменьшилась, но Заказ поставщику все еще «ждет» 100 единиц под это назначение. Система видит лишние 20 единиц и блокирует проведение этапа.Заказ на перемещение, и Заказ поставщику, в регистре Обеспечение заказов возникнет двойной объем.Чтобы понять, где именно «зависли» лишние остатки, нам необходимо проверить состояние регистров. Рекомендуем использовать следующие инструменты:
1. Отчет «Состояние обеспечения заказов»
Это главный помощник логиста и производственника. Найдите в нем ваш Заказ на производство. Если в колонке «Избыток» или в расшифровке обеспечения вы видите количество, превышающее потребность этапа, — это и есть причина ошибки. Отчет наглядно покажет, какой именно документ (Заказ поставщику, Заказ на перемещение или другой Этап) создал лишний резерв.
2. Регистр накопления «Обеспечение заказов»
Проанализируем записи этого регистра через «Все функции» (или «Функции для технического специалиста»). Нас интересуют измерения: Назначение, Склад и Номенклатура. Ресурс Заказано должен строго соответствовать ресурсу Потребуется. Если значение в Заказано больше — система выдаст ошибку.
Рассмотрим способы исправления ситуации без использования полных прав:
Этапе производства, необходимо зайти в соответствующий Заказ поставщику (или Заказ на перемещение) и либо уменьшить в нем количество, либо снять флаг обособления (выбрать «Не обеспечивать» в строке с избытком).Разрешить проведение документов без контроля остатков или Отклонение от условий закупок. Однако помните, что это ослабляет контроль за складскими запасами.Запасы и потребности и Обеспечение заказов.Важный момент: При работе с Этапами производства в 1С:ERP всегда соблюдайте последовательность действий. Старайтесь не менять количественные параметры этапа, если по нему уже запущена цепочка снабжения, без предварительной ревизии созданных заказов. Это поможет избежать блокировок и сохранит актуальность данных в системе.