Почему в 1С:ERP, КА и УТ контроль остатков происходит на текущую дату, а не на дату документа?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с современными конфигурациями на платформе 1С:Предприятие 8.3, такими как Управление торговлей 11, Комплексная автоматизация 2 или ERP Управление предприятием, пользователи часто сталкиваются с ситуацией, когда при проведении документов «задним числом» система допускает появление отрицательных остатков. Рассмотрим типовой сценарий: мы оформляем поступление товара вчерашним числом, а затем проводим реализацию сегодняшним числом (или наоборот), и в какой-то момент обнаруживаем «минусы» в складских отчетах, хотя галочка «Контролировать остатки» в настройках склада установлена. Выясним причину такого поведения системы и разберем, как с этим работать.

Принцип оперативного контроля остатков

Проанализируем базовую логику, заложенную разработчиками фирмы «1С». В актуальных редакциях систем автоматизации торгового и производственного учета контроль остатков является оперативным. Это означает, что проверка наличия товара на складе производится не на момент времени, указанный в документе (дата документа), а на текущий момент времени (реальное время нажатия кнопки «Провести»).

Рассмотрим подробнее, почему выбрана именно такая модель:

Таким образом, если мы проводим документ реализации «задним числом» (например, вчерашней датой), система все равно посмотрит, сколько товара на полках сейчас. Если сейчас остаток положительный, документ проведется. Однако, если за период между «вчера» и «сегодня» были другие движения, в хронологической последовательности может образоваться временной разрыв с отрицательным значением.

Проблема «Петли времени» и партионный учет

Проведение документов в обратной последовательности или задним числом порождает проблему, которую специалисты часто называют «петлей времени». Разберем ситуацию на примере:

  1. На 1-е число месяца остаток товара — 0.
  2. 10-го числа мы проводим Реализацию (расход) 5 штук. Программа видит, что сейчас (в момент проведения) товара нет, и выдает ошибку.
  3. Мы решаем «обмануть» систему: создаем Поступление (приход) 10 штук 15-м числом и проводим его. Теперь на остатке 10 штук.
  4. Возвращаемся в Реализацию от 10-го числа и снова нажимаем «Провести». Теперь система видит, что на текущий момент товара 10 штук, и позволяет провести документ 10-м числом.

В результате, если мы сформируем отчет «Ведомость по товарам на складах» с детализацией по дням, мы увидим, что с 10-го по 15-е число у нас на складе было -5 штук. Это классический пример того, как оперативный контроль пропускает «минус» в прошлом.

Важный нюанс: Подобные действия фатально влияют на расчет себестоимости и партионный учет. Даже если документ провелся, регламентная операция Расчет себестоимости может выдать ошибку или рассчитать стоимость некорректно, так как на момент расхода (10-е число) партий прихода еще не существовало в системе.

Специализированные инструменты контроля

Поскольку оперативный контроль не гарантирует отсутствие минусов в прошлом, в типовых конфигурациях 1С (ERP, КА, УТ) предусмотрены другие механизмы для поддержания порядка:

1. Отчет «Контроль отрицательных остатков»
В разделе «Склад и доставка — Отчеты по складу» доступен специализированный отчет. В отличие от обычных ведомостей, он анализирует именно те моменты, где последовательность была нарушена и возникли логические минусы. Рекомендуется проверять этот отчет перед закрытием месяца.

2. Настройка контроля при отмене проведения
В современных релизах (начиная с УТ 11.5 / ERP 2.5) в настройках системы появилась опция «Контролировать остатки при отмене проведения и уменьшении количества». Если вы попытаетесь отменить проведение старого приходного документа, на основании которого товар уже был продан позже, система заблокирует это действие, так как это приведет к «минусу» в текущем периоде.

Как настроить контроль на дату документа?

Многие пользователи спрашивают: можно ли штатно переключить систему в режим контроля «на дату документа»? Ответ — нет, штатной «галочки» для этого не существует. Однако задачу можно решить организационными или техническими методами.

Вариант 1: Организационный (Дата запрета редактирования)

Это самый правильный метод с точки зрения методологии 1С. Установка Даты запрета редактирования (НСИ и администрирование — Поддержка и обслуживание) исключает возможность ввода или изменения документов в закрытых периодах. Это приучает пользователей вводить документы оперативно, что сводит проблему контроля задним числом к минимуму.

Вариант 2: Программный (Расширение конфигурации)

Для программистов существует возможность вмешаться в логику проведения. Проанализируем, где именно происходит проверка. В типовых конфигурациях за проверку остатков отвечает механизм проведения через «Границы фактических остатков». Проверка обычно инициируется в модулях менеджеров документов или в общих модулях, связанных с проведением (например, через процедуру ИнициализироватьДанныеДокумента).

Если стоит задача жестко ограничить списание, можно создать расширение, которое будет выполнять запрос к регистру накопления ТоварыНаСкладах на момент времени документа. Пример логики запроса:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток
    |ИЗ
    |	РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментВремени, Склад = &Склад И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("МоментВремени", ЭтотОбъект.МоментВремени());
Запрос.УстановитьПараметр("Склад", Склад);
// ... установка остальных параметров

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

Особенности при использовании «Интеркампани»

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

Резюме

Подведем итог нашему анализу:

  1. Контроль остатков на текущую дату в УТ/КА/ERP — это не ошибка, а архитектурное решение для обеспечения высокой производительности.
  2. Для поиска ошибок, возникших из-за проведения задним числом, используйте отчет «Контроль отрицательных остатков».
  3. Для предотвращения проблем в закрытых периодах обязательно используйте механизм даты запрета редактирования.
  4. Если бизнес-процесс требует контроля именно на дату документа, это реализуется только путем программной доработки через расширение, но требует осторожности из-за рисков снижения производительности.

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

← На главную