Ситуация, когда в программе «1С:Управление торговлей 11.1» документ «Перемещение товаров» (или любой другой документ списания) отказывается проводиться задним числом, хотя на тот момент товара было достаточно, является классической для систем на базе ERP 2.0. Основная сложность заключается в том, что стандартный отчет «Ведомость по товарам на складах» показывает наличие товара, а система при проведении выдает ошибку отсутствия остатка. Разберем подробно, почему это происходит и как решить данную проблему.
Проанализируем алгоритм работы конфигурации. В отличие от старых версий (например, УТ 10.3), где контроль остатков чаще всего происходил на момент времени документа, в УТ 11 реализован более жесткий механизм. Система проверяет остатки не только на дату документа, но и на текущую дату, а также во всех промежуточных точках.
Выясним причину такого поведения: если вы проводите документ задним числом на списание 10 единиц товара, а сегодня у вас на остатке всего 2 единицы, то после проведения документа за прошлый период текущий остаток станет «минус 8». Система «спасает» базу от появления отрицательных остатков в будущем. Программа анализирует цепочку движений и ищет точку минимального остатка. Если в любой момент времени после даты вашего документа остаток станет отрицательным — проведение будет заблокировано.
Часто пользователи отключают контроль остатков на складах, но забывают про контроль по юридическим лицам. Рассмотрим этот механизм подробнее. В УТ 11 существует два независимых уровня контроля:
Контролировать остатки товаров организаций.Посмотрим, где это проверить: перейдем в раздел НСИ и администрирование — Финансовый результат и контроллинг. Если там включен флаг контроля остатков организаций, система будет блокировать проведение документа, если по данному юридическому лицу на текущий момент (или в промежутке) образуется минус. Чтобы провести документ, необходимо либо временно отключить эту опцию, либо убедиться, что по регистру Товары организаций остатков достаточно.
Разберем ситуацию с документом «Перемещение товаров». Его поведение сильно зависит от установленного статуса (К отгрузке, Отгружено, Принято):
Проанализируем регистр Распределение запасов. Часто отчет «Остатки и доступность товаров» показывает отсутствие товара из-за того, что он зарезервирован другими заказами (клиентов или на перемещение), даже если в общих настройках «Обеспечение склада» выключено. Проверьте, не установлены ли в заказах действия Резервировать на складе. Резерв уменьшает доступный остаток, что блокирует проведение новых документов задним числом.
Выясним, как влияет ордерная схема склада. Если склад ордерный, то финансовый документ («Перемещение товаров») делает движения по регистру Товары организаций, а фактическое списание со склада происходит только после оформления документа «Расходный ордер на товары», который делает движения по регистру Товары на складах. Возникает разрыв:
Рассмотрим пример: документ перемещения создан 02.12.2016, но расходный ордер к нему не оформлен или оформлен другой датой. В ведомостях остаток будет «висеть», но для системы он уже будет считаться «в процессе передачи», что отразится в регистре Товары к оформлению передач и может блокировать другие операции.
Если вам необходимо провести документ во что бы то ни стало, воспользуемся следующими методами:
ПередЗаписью или вызывается из ОбработкаПроведения.Проанализируем пример кода, который часто отвечает за вызов контроля остатков (схематично):
// В модуле менеджера или в процедурах проведения
ПараметрыКонтроля = НовыеПараметрыКонтроляОстатков();
ПараметрыКонтроля.ДатаПроверки = ТекущаяДата(); // Именно здесь часто заложена логика проверки "на сегодня"
// Если заменить ТекущаяДата() на МоментВремени() или Дату документа,
// контроль будет осуществляться только на дату проведения.
Важно: Изменение этого алгоритма может привести к тому, что пользователи будут массово вводить документы, создающие глубокие минусы на текущую дату, что крайне негативно скажется на расчете себестоимости и финансового результата.
Как отмечают опытные специалисты, работа задним числом — это признак отсутствия оперативного управления. Если товар фактически перемещается сегодня, его нужно отражать сегодня. Если же перемещение было зафиксировано на бумаге раньше, а в базу вносится позже — это разрыв документооборота. Оптимальным решением будет внедрение ордерной схемы, где финансовые документы могут вноситься с опозданием, а складские ордера фиксируют факт движения товара «день в день».