Переход с конфигураций прошлых поколений (таких как 1С:Управление производственным предприятием, ред. 1.3 или 1С:Комплексная автоматизация, ред. 1.1) на современные ERP-системы часто вызывает у пользователей и аналитиков методические трудности. Типичный пример такой сложности — закрытие зависших заказов клиентов в прошлых (уже закрытых) периодах для освобождения зарезервированных товаров.
В старых редакциях для этой цели существовал отдельный и крайне удобный документ Закрытие заказов покупателей. Он создавался текущей датой в открытом периоде, делал корректирующие движения по регистрам и успешно снимал резервы, никак не затрагивая исторический документ заказа. В новых ERP-архитектурах (1С:Комплексная автоматизация 2.4 / 2.5, 1С:ERP Управление предприятием 2, 1С:Управление торговлей 11) разработчики отказались от отдельного документа закрытия. Теперь отмена неотгруженных позиций и перевод заказа в статус "Закрыт" производятся непосредственно в самом документе Заказ клиента.
Давайте подробно разберем, как поступить, если резервы зависли в закрытом периоде, какие риски несет редактирование документов "задним числом" и какими способами можно решить эту задачу без ущерба для сданной финансовой отчетности.
Даже если у пользователя есть административные права и система позволяет обойти дату запрета редактирования (или в настройках даты запрета сделано исключение для заказов клиентов), простое изменение статуса заказа и его перепроведение таит в себе скрытые угрозы:
Ниже мы проанализируем три практических способа снятия резерва и закрытия потребностей, начиная от самых безопасных ручных методов и заканчивая программной корректировкой.
Если период закрыт окончательно, отчетность сдана и аудит завершен, физически менять сам документ Заказ клиента категорически запрещено. Самым правильным решением с точки зрения методологии учета будет корректировка регистров накопления с помощью специального технического документа в текущем (открытом) периоде.
Давайте разберем по шагам, как выполнить эту операцию:
Результат: Товар мгновенно уходит из резерва и становится доступен для продажи другим клиентам. При этом закрытый период никак не затронут. Единственный эстетический минус — в списке заказов старый документ по-прежнему будет иметь статус "В процессе отгрузки", но фактически резервов за ним больше не числится. Для автоматизации исправления остатков можно использовать обработку для корректировки регистра «Запасы и потребности».
Если вам критически важно, чтобы заказ визуально выглядел красиво (имел статус "Закрыт" и флаги отмены на непоставленных строках), но при этом система не делала никаких движений по регистрам в закрытом периоде, можно прибегнуть к помощи программиста. Для этого используется специальный механизм платформы 1С:Предприятие — запись документа в режиме обмена данными.
Давайте рассмотрим пример программного кода, который решает эту задачу:
// Выбираем ссылку на проблемный заказ клиента
ЗаказСсылка = Документы.ЗаказКлиента.НайтиПоНомеру("НомерЗаказа", '20231231235959');
Если Не ЗаказСсылка.Пустая() Тогда
// Получаем объект документа для редактирования
ЗаказОбъект = ЗаказСсылка.ПолучитьОбъект();
// Меняем статус заказа на закрытый
ЗаказОбъект.Статус = Перечисления.СтатусыЗаказовКлиентов.Закрыт;
// Проходим по табличной части и помечаем неотгруженные строки как отмененные
Для Каждого СтрокаТовары Из ЗаказОбъект.Товары Цикл
Если СтрокаТовары.Количество > СтрокаТовары.КоличествоПередано // или другое условие недопоставки
СтрокаТовары.Отменено = Истина;
// Указываем причину отмены из соответствующего справочника
СтрокаТовары.ПричинаОтмены = Справочники.ПричиныОтменыЗаказовКлиентов.НайтиПоНаименованию("Отказ клиента");
КонецЕсли;
КонецЦикла;
// Включаем важнейший режим "Загрузка = Истина"
ЗаказОбъект.ОбменДанными.Загрузка = Истина;
// Записываем документ в режиме обычной записи (НЕ проведение!)
ЗаказОбъект.Записать(РежимЗаписиДокумента.Запись);
Сообщить("Заказ успешно закрыт без влияния на закрытый период!");
КонецЕсли;
Выясним причину, почему это безопасно: При установке свойства ОбменДанными.Загрузка = Истина платформа 1С отключает выполнение прикладных проверок в модуле объекта и, самое главное, не запускает подписки на события проведения. Документ просто сохраняется в базе данных с новыми реквизитами. Регистры при этом не перезаписываются, а закрытие месяца не "слетает".
Важное примечание: Этот способ необходимо использовать совместно со Способом 1. Так как сам документ не проводился, его старые резервные движения все еще активны. Программное закрытие документа уберет визуальный "висяк" в интерфейсе менеджера, а документ Корректировка регистров в текущем периоде физически снимет резерв с товаров.
Этот способ допустим только в том случае, если период закрыт административно лишь для обычных пользователей (чтобы они не допускали ошибок), но регламентированная отчетность еще не сдана окончательно, и главный бухгалтер допускает перерасчет этого месяца.
Проанализируем этот сценарий по шагам:
Заказ клиента.Чтобы не сталкиваться с необходимостью редактирования закрытых периодов, рекомендуем настроить автоматический контроль резервов. В 1С:Комплексная автоматизация 2 предусмотрены эффективные инструменты для этого:
Снятие резервов по заказам клиентов. Система будет автоматически анализировать просроченные заказы (например, зарезервированные более 3 дней назад без оплаты) и переводить их в статус "Не обеспечивать" или "Отменить".Используя эти методы, вы сохраните чистоту складского учета и гарантируете безопасность ведения регламентированного учета в системе 1С. Для регулярного контроля просроченных заказов подойдёт инструмент для автоматического снятия резервов по срокам.