К статье
Практический материал

Торговля и Склад · 11 мин

Как в 1С поставить запрет на списание МПЗ при их отсутствии

Как в 1С запретить списание МПЗ при их отсутствии: настройки контроля остатков в Бухгалтерии, Управлении торговлей и ERP, проверка результата и типичные ошибки.

Списание материально-производственных запасов «в минус» — одна из самых распространённых проблем учёта: документ проводится, хотя нужного товара на складе физически нет. В результате в отчётах появляются отрицательные остатки, искажается себестоимость, а при инвентаризации выясняются расхождения, которые приходится разбирать задним числом. Настройка запрета на списание МПЗ при их отсутствии решает эту проблему на уровне программы: система просто не даст провести документ, пока остаток не будет введён.

Механизм контроля зависит от конфигурации. В «1С:Бухгалтерии» контроль остатков встроен в типовые процедуры проведения, а в «Управлении торговлей» и «ERP» есть отдельные настройки контроля товаров на складах, которые можно гибко включать и отключать. Ниже разобраны оба подхода, а также способ программного запрета для самописных и доработанных конфигураций.

Почему возникает списание «в минус» и чем это опасно

Отрицательные остатки появляются, когда документ списания (требование-накладная, реализация, списание материалов в производство) проводится раньше документа оприходования, либо когда приход вообще не введён в программу. Типичная ситуация: материалы фактически поступили и были отпущены в производство, а накладную от поставщика бухгалтер получил и ввёл только через неделю.

Последствия не ограничиваются «красными» цифрами в оборотно-сальдовой ведомости. При отрицательном остатке программа не может корректно рассчитать себестоимость списания по FIFO или средней — себестоимость будет занижена или равна нулю, а при последующем оприходовании возникнет разница, которую придётся корректировать. Кроме того, минус по складу искажает данные для инвентаризации и управленческой отчётности.

Запрет списания при отсутствии остатка переводит проблему из разряда «найти и исправить потом» в разряд «нельзя ошибиться сразу». Пользователь, пытающийся провести документ, получает сообщение о нехватке конкретной номенклатуры на конкретном складе и вынужден разобраться с приходом до списания.

Контроль остатков в 1С:Бухгалтерии

В типовой «1С:Бухгалтерии 8» контроль остатков при списании МПЗ встроен в процедуры проведения документов «Требование-накладная», «Реализация (акты, накладные)», «Списание материалов» и других. По умолчанию при проведении программа проверяет остаток по счёту учёта (10, 41 и др.) с учётом склада и номенклатуры, и при нехватке выдаёт ошибку «Недостаточно товара» с указанием количества.

Если документы в вашей базе проводятся «в минус», значит контроль был отключён или обойдён. Проверьте следующие места:

  • раздел «Администрирование → Проведение документов» — в некоторых релизах доступна настройка, разрешающая списание при отсутствии остатков;
  • наличие внешних обработок и расширений, подменяющих процедуру проведения;
  • привилегированный режим проведения в доработках — в этом режиме контроль может не срабатывать.

Отдельный нюанс — проведение документов задним числом. Если списание проводится датой раньше оприходования, контроль сработает корректно и не даст провести документ, даже если на текущую дату остаток есть. Это правильное поведение: сначала нужно восстановить последовательность документов или изменить дату списания.

Настройка запрета в 1С:Управление торговлей и ERP

В «Управлении торговлей 11» и «1С:ERP» контроль остатков настраивается централизованно. Откройте раздел «НСИ и администрирование → Настройка НСИ и разделов → Склад и доставка» (в ранних версиях — «Настройка складского учёта»). Здесь находятся ключевые переключатели:

  • «Контролировать остатки товаров организаций» — запрещает списание товаров, не оприходованных на организацию;
  • «Контролировать обеспечение» — при включённом ордерном складе и резервировании проверяет наличие свободного (не зарезервированного) остатка;
  • контроль при заполнении документов — предупреждение о нехватке ещё на этапе ввода строк.
Порядок действий в УТ 11
  1. 1
    Откройте «НСИ и администрирование → Настройка НСИ и разделов → Склад и доставка»
  2. 2
    Установите флажок «Контролировать остатки товаров организаций»
  3. 3
    При использовании резервов включите контроль обеспечения
  4. 4
    Запишите настройки и перезапустите сеанс при необходимости
  5. 5
    Проверьте запрет на тестовом документе списания

После включения настройки попробуйте провести реализацию или внутреннее потребление товара, которого нет на складе. Программа должна отказать в проведении с сообщением о нехватке по конкретной номенклатуре, складу и организации. Если документ провёлся — проверьте, не отключён ли контроль для конкретного склада (в карточке склада может стоять признак, разрешающий отрицательные остатки) и нет ли у пользователя роли, разрешающей превышение контроля.

Исключения и гибкие сценарии

В некоторых процессах осознанно допускают временный минус: например, при ордерной схеме, когда товар отгружен, а приходный ордер оформят позже. В УТ для этого предусмотрены настройки отдельных складов и статусы документов. Прежде чем отключать контроль для конкретного склада, оцените риск: отрицательные остатки по этому складу будут попадать в отчёты и себестоимость.

Программный запрет в собственных и доработанных конфигурациях

Если конфигурация самописная или сильно доработана, типового контроля может не быть. В этом случае запрет добавляется в модуль объекта документа списания, в процедуру ОбработкаПроведения. Логика простая: перед формированием движений запросить остатки по регистру и при нехватке вызвать Отказ = Истина с сообщением пользователю.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Остатки.Номенклатура КАК Номенклатура,

| Остатки.КоличествоОстаток КАК Остаток

|ИЗ

| РегистрНакопления.ОстаткиМПЗ.Остатки(, Склад = &Склад) КАК Остатки

|ГДЕ

| Остатки.Номенклатура В (&СписокНоменклатуры)";

Запрос.УстановитьПараметр("Склад", Склад);

Запрос.УстановитьПараметр("СписокНоменклатуры",

Товары.ВыгрузитьКолонку("Номенклатура"));

Остатки = Запрос.Выполнить().Выгрузить();

Для Каждого Строка Из Товары Цикл

Найдено = Остатки.Найти(Строка.Номенклатура, "Номенклатура");

Доступно = ?(Найдено = Неопределено, 0, Найдено.Остаток);

Если Доступно < Строка.Количество Тогда

Сообщить("Недостаточно: " + Строка.Номенклатура

+ ". Остаток: " + Доступно + ", требуется: " + Строка.Количество);

Отказ = Истина;

КонецЕсли;

КонецЦикла;

КонецПроцедуры

Нюансы реализации: проверку лучше выполнять с учётом блокировки данных (установить управляемую блокировку по регистру до чтения остатков), иначе два одновременных документа могут пройти контроль и списать один и тот же остаток. Также учитывайте собственные движения документа при перепроведении — остатки нужно запрашивать на момент времени документа.

Что делать с уже накопленными минусами

Включение запрета не исправляет историю: отрицательные остатки, возникшие раньше, останутся в регистрах и будут мешать закрытию месяца. Перед включением контроля имеет смысл провести ревизию остатков.

Порядок работы: сформируйте отчёт «Остатки товаров на складах» (в УТ/ERP) или оборотно-сальдовую ведомость по счетам 10 и 41 с детализацией по номенклатуре (в Бухгалтерии) и отберите позиции с отрицательным количеством. По каждой позиции выясните причину: не введённый приход, ошибка в количестве списания, неверный склад или организация в документе. Затем введите недостающие приходные документы правильными датами либо скорректируйте ошибочные списания.

После исправления перепроведите документы списания по проблемным позициям, чтобы система пересчитала себестоимость. Только после этого включайте жёсткий запрет — иначе пользователи сразу столкнутся с массовыми отказами в проведении и не смогут работать.

Типичные ошибки
01
Включение запрета до исправления накопленных минусов — пользователи не могут провести ни один документ, работа склада встаёт
02
Отключение контроля «на время» без даты возврата — временное исключение становится постоянным, минусы копятся снова
03
Игнорирование причины минуса: вводят фиктивный приход вместо поиска реальной ошибки в документах
04
Проверка контроля только под администратором — у роли администратора контроль может обходиться, тестировать нужно под учётной записью рядового пользователя

Проверка результата и частые ошибки

После настройки выполните контрольную проверку под учётной записью обычного пользователя, а не администратора: создайте документ списания с номенклатурой, которой заведомо нет на остатке, и попробуйте провести. Система должна отказать с понятным сообщением: какой товар, на каком складе, сколько требуется и сколько доступно.

Вторая проверка — положительный сценарий: оприходуйте тестовое количество и убедитесь, что списание в пределах остатка проходит без ошибок. Это подтвердит, что контроль работает избирательно, а не блокирует проведение вообще.

Контрольные точки

Как проверить результат

Проведение списания без остатка
Норма

Отказ с сообщением о нехватке конкретной номенклатуры

Тревожный признак

Документ проводится, в отчёте появляется минус

Проведение списания в пределах остатка
Норма

Документ проводится, остаток уменьшается корректно

Тревожный признак

Ошибка даже при достаточном остатке — контроль настроен слишком широко

Отчёт по остаткам после теста
Норма

Отрицательных остатков нет

Тревожный признак

Минус появляется — контроль обходится доработкой или ролью

FAQ

Запрет включён, но документ всё равно проводится в минус. Почему?

Наиболее вероятные причины: у пользователя роль с правом превышения контроля, в карточке склада разрешены отрицательные остатки, либо в базе работает расширение или внешняя обработка, подменяющая проведение. Проверьте документ под обычным пользователем и посмотрите список подключённых расширений.

Можно ли сделать не запрет, а только предупреждение?

Да. В УТ и ERP часть настроек контроля работает в режиме предупреждения при заполнении документа — пользователь видит сообщение о нехватке, но может провести. Это компромисс для переходного периода, но минусы при таком режиме продолжат появляться, поэтому целевое состояние — жёсткий запрет.

Как быть, если товар отгружают до получения накладной от поставщика?

Оформляйте приход в программе по факту поступления на склад, а не по дате получения бумажных документов: используйте предварительный приходный документ или распоряжение на приёмку. Тогда остаток появится до отгрузки и контроль не помешает.

Влияет ли запрет на обмены данными и фоновые задания?

Да. Если документы загружаются обменом (например, из интернет-магазина или WMS), документ с нехваткой остатка не проведётся и зависнет в очереди ошибок. Настройте мониторинг ошибок обмена и порядок, при котором приходы загружаются раньше расходов.

Нужно ли включать контроль для всех складов сразу?

Не обязательно. Начните с основного товарного склада, где чаще всего возникают минусы, отладьте процесс ввода приходов, а затем распространите настройку на остальные склады. Это снижает риск остановки работы всего предприятия.

Контроль мешает провести документ задним числом, хотя остаток сейчас есть. Что делать?

Это штатное поведение: на дату документа остатка действительно не было. Приведите даты в соответствие с фактической последовательностью операций — сначала приход, затем списание — либо измените дату документа, если это допустимо по учётной политике.

Итог

Что важно запомнить

Запрет списания МПЗ при отсутствии остатка включается в настройках складского учёта (УТ/ERP) или уже встроен в проведение (Бухгалтерия). Перед включением исправьте накопленные минусы, после — проверьте работу под обычным пользователем в обоих сценариях: отказ при нехватке и успешное списание при наличии остатка.