После планового обновления конфигурации 1С:ERP Управление предприятием 2 до версии 2.5.17.143 многие пользователи столкнулись с неприятной ситуацией: документы «Заказ клиента» и «Заказ поставщику», созданные в прошлых периодах, перестали проводиться. При попытке изменить статус заказа или просто перепровести документ система выдает критическую ошибку: «Изменяемые данные взаиморасчетов находятся в закрытом периоде». Давайте подробно разберем, почему это происходит и какие шаги необходимо предпринять для восстановления работоспособности базы.
Для начала проанализируем стек вызовов из журнала регистрации, который сопровождает данную проблему. Ошибка возникает в общем модуле ОперативныеВзаиморасчетыСервер. Рассмотрим ключевые точки отказа:
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(1907)}:ВызватьИсключение ОписаниеОшибки;
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(2241)}:ЗаполнитьОперативныеВзаиморасчеты(ТаблицаРасчета, ДополнительныеСвойства);
{ОбщийМодуль.ВзаиморасчетыСервер.Модуль(5030)}:ОперативныеВзаиморасчетыСервер.ЗаполнитьОперативныеВзаиморасчетыПоТаблице(ПараметрыИзменений, Документ.ДополнительныеСвойства.ПроведениеДокументов);
Проанализировав ситуацию, мы видим, что в версии 2.5.17.143 разработчики внесли изменения в механизм «Онлайн-взаиморасчетов». Теперь при любом проведении заказа система инициирует актуализацию оперативных планов оплаты и отгрузки. Проблема заключается в том, что алгоритм пытается перезаписать данные в регистрах сведений, которые система ошибочно сопоставляет с датами из закрытого периода, даже если финансовые показатели документа (суммы, счета) не меняются.
Разберем подробнее: в ERP заказы формируют графики движения денежных средств. Если по старому заказу остались невыполненные обязательства (недогруз или недоплата), система при перепроведении пытается «подтянуть» эти хвосты в текущую оперативную таблицу. Однако из-за ошибки в коде проверка даты запрета редактирования срабатывает слишком жестко, блокируя запись оперативных планов, которые формально относятся к прошлому.
Выясним, существует ли официальное исправление. Фирма «1С» признала наличие данного дефекта (бага) в релизе .143. Ошибка была зарегистрирована и исправлена в последующих версиях. Рассмотрим алгоритм действий:
ЗаполнитьОперативныеВзаиморасчеты, исключив избыточную проверку даты запрета для служебных записей оперативных планов.Если по каким-то причинам оперативное обновление всей конфигурации невозможно (например, база сильно кастомизирована), рассмотрим вариант установки официального исправления (патча). Для этого выполним следующие шаги:
ОперативныеВзаиморасчетыСервер в части контроля закрытых периодов.Рассмотрим ситуацию, когда нам нужно просто закрыть старый заказ (установить статус «Закрыт»), но система все равно выдает ошибку. Если обновление или патч временно недоступны, проанализируем альтернативные варианты:
Использование группового изменения реквизитов:
Попробуем изменить статус документа без его полноценного перепроведения. Для этого:
Статус = Закрыт.ОбменДанными.Загрузка = Истина).Проанализируем, почему нельзя просто игнорировать эту проблему. В 1С:ERP 2.5 заказы являются фундаментом для обеспечения потребностей и планирования денежных средств. Ошибка в модуле взаиморасчетов приводит к тому, что:
Таким образом, мы выяснили, что корень проблемы лежит в программном дефекте релиза .143, который некорректно обрабатывает оперативную информацию о планах отгрузки и оплаты. Наиболее правильным и безопасным решением является обновление конфигурации до актуального релиза 2.5.17.155, где механизмы работы с закрытыми периодами были приведены в соответствие с логикой жизненного цикла заказа.