Почему после обновления на 1С:ERP 2.5.17.143 не проводятся старые заказы и как исправить ошибку закрытого периода

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

После планового обновления конфигурации 1С:ERP Управление предприятием 2 до версии 2.5.17.143 многие пользователи столкнулись с неприятной ситуацией: документы «Заказ клиента» и «Заказ поставщику», созданные в прошлых периодах, перестали проводиться. При попытке изменить статус заказа или просто перепровести документ система выдает критическую ошибку: «Изменяемые данные взаиморасчетов находятся в закрытом периоде». Давайте подробно разберем, почему это происходит и какие шаги необходимо предпринять для восстановления работоспособности базы.

Анализируем техническую причину ошибки

Для начала проанализируем стек вызовов из журнала регистрации, который сопровождает данную проблему. Ошибка возникает в общем модуле ОперативныеВзаиморасчетыСервер. Рассмотрим ключевые точки отказа:


{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(1907)}:ВызватьИсключение ОписаниеОшибки;
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(2241)}:ЗаполнитьОперативныеВзаиморасчеты(ТаблицаРасчета, ДополнительныеСвойства);
{ОбщийМодуль.ВзаиморасчетыСервер.Модуль(5030)}:ОперативныеВзаиморасчетыСервер.ЗаполнитьОперативныеВзаиморасчетыПоТаблице(ПараметрыИзменений, Документ.ДополнительныеСвойства.ПроведениеДокументов);

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

Разберем подробнее: в ERP заказы формируют графики движения денежных средств. Если по старому заказу остались невыполненные обязательства (недогруз или недоплата), система при перепроведении пытается «подтянуть» эти хвосты в текущую оперативную таблицу. Однако из-за ошибки в коде проверка даты запрета редактирования срабатывает слишком жестко, блокируя запись оперативных планов, которые формально относятся к прошлому.

Способ 1: Обновление конфигурации (рекомендуемый)

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

  1. Проверим текущую версию конфигурации через меню «Справка» — «О программе».
  2. Если установлена версия 2.5.17.143, необходимо выполнить обновление до версии 2.5.17.155 или выше.
  3. В версии .155 разработчики скорректировали логику работы процедуры ЗаполнитьОперативныеВзаиморасчеты, исключив избыточную проверку даты запрета для служебных записей оперативных планов.

Способ 2: Установка патча (исправления)

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

  1. Перейдем в раздел НСИ и администрирование — Обслуживание — Обновление программы.
  2. Выберем пункт «Установленные исправления (патчи)».
  3. Нажмем кнопку «Подобрать» (требуется доступ к интернет-поддержке).
  4. Найдем и установим патч с кодом EF_00161427. Данный патч предназначен именно для локального исправления логики модуля ОперативныеВзаиморасчетыСервер в части контроля закрытых периодов.
  5. После установки патча потребуется перезагрузка сеанса (в некоторых случаях — перезапуск сервера 1С).

Способ 3: Обходные пути при закрытии старых заказов

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

Использование группового изменения реквизитов:

Попробуем изменить статус документа без его полноценного перепроведения. Для этого:

  1. Воспользуемся стандартной обработкой «Групповое изменение реквизитов».
  2. Выберем объект «Заказ клиента».
  3. В параметрах установим Статус = Закрыт.
  4. В дополнительных настройках обработки (кнопка «Дополнительно») установим флаг «Выполнять в режиме загрузки данных» (ОбменДанными.Загрузка = Истина).
  5. Это позволит изменить статус в обход части проверок, включая контроль взаиморасчетов в закрытом периоде. Внимание: этот метод стоит использовать с осторожностью, так как он не формирует новых движений по регистрам.

Почему это важно для учета?

Проанализируем, почему нельзя просто игнорировать эту проблему. В 1С:ERP 2.5 заказы являются фундаментом для обеспечения потребностей и планирования денежных средств. Ошибка в модуле взаиморасчетов приводит к тому, что:

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

← На главную