Как исправить ошибку выполнения правил регистрации объектов при обновлении 1С:Управление торговлей?

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

При переходе на новые релизы конфигурации «1С:Управление торговлей» (в частности, при обновлении с версии 11.4.3 на 11.4.5) технические специалисты часто сталкиваются со следующей критической ошибкой: «Ошибка выполнения правил регистрации объектов для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат». Данная неполадка полностью блокирует процесс обновления информационной базы или препятствует выполнению отложенных обработчиков при первом запуске системы.

В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем внутренние механизмы работы Библиотеки стандартных подсистем (БСП) и рассмотрим несколько эффективных способов решения проблемы — от радикального пересоздания настроек обмена до более тонких технологических манипуляций с регистрами и программным кодом.

Выясняем причину возникновения ошибки

Для того чтобы понять, как бороться с этой ошибкой, проанализируем механизм регистрации изменений в платформе «1С:Предприятие». План обмена СинхронизацияДанныхЧерезУниверсальныйФормат отвечает за интеграцию «1С:Управление торговлей» с другими конфигурациями (например, с «1С:Бухгалтерия предприятия») по технологии EnterpriseData.

Каждому плану обмена сопутствуют так называемые правила регистрации объектов. Это специальные алгоритмы, написанные на языке XML или упакованные внутрь макетов конфигурации, которые определяют, какие именно документы, справочники или регистры должны регистрироваться к отправке при их записи или проведении. Например, правила указывают, что документ «Реализация товаров и услуг» должен выгружаться только в том случае, если он проведен и относится к определенной организации.

В процессе обновления конфигурации разработчики фирмы «1С» часто меняют структуру метаданных:

  1. Добавляют новые реквизиты в документы или справочники.
  2. Удаляют устаревшие свойства объектов.
  3. Меняют типы данных существующих реквизитов.
  4. Переносят логику регистрации в новые общие модули.

Если в вашей базе данных сохранены устаревшие правила регистрации (например, в специальном регистре сведений или в кэше базы), они начинают обращаться к свойствам объектов, которых больше нет в новой структуре метаданных обновленной конфигурации. Это и вызывает критический сбой выполнения кода БСП при попытке записать или провести объекты в процессе обновления.

Ниже мы подробно рассмотрим несколько проверенных на практике вариантов решения этой проблемы.

Способ 1. Радикальный: Удаление и повторное создание настроек обмена

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

Разберем процесс по шагам:

  1. Перед началом любых манипуляций обязательно создайте резервную копию (бэкап) вашей информационной базы.
  2. Перейдите в раздел НСИ и администрирование, далее выберите пункт Синхронизация данных.
  3. Откройте список Настройки синхронизации данных.
  4. Найдите настройку обмена, использующую план СинхронизацияДанныхЧерезУниверсальныйФормат, и удалите ее (пометьте на удаление и удалите через стандартную обработку удаления помеченных объектов).
  5. Запустите процедуру обновления конфигурации. Без активного плана обмена система не будет инициализировать правила регистрации и обновление пройдет успешно.
  6. После завершения всех процедур обновления перейдите обратно в раздел синхронизации и создайте настройку обмена заново. В новом релизе система автоматически создаст корректные узлы обмена с актуальными правилами регистрации.

Способ 2. Рекомендуемый: Сброс правил регистрации на типовые правила конфигурации

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

Зачастую ошибка возникает из-за того, что система пытается использовать старые правила, загруженные ранее из внешнего XML-файла. Выполним сброс правил на стандартные поставляемые:

  1. Откройте раздел НСИ и администрирование -> Синхронизация данных.
  2. Перейдите по ссылке Настройки синхронизации данных.
  3. Выделите вашу настройку синхронизации и нажмите кнопку Параметры подключения (или Изменить настройки в зависимости от версии интерфейса).
  4. Найдите команду работы с правилами регистрации объектов. Обычно она находится в меню Еще или представлена кнопкой Загрузить правила регистрации.
  5. В открывшемся окне переключите тумблер выбора правил в положение Использовать типовые правила из конфигурации.
  6. Нажмите кнопку Записать и закрыть. Система принудительно прочитает актуальные правила регистрации прямо из макета обновленной конфигурации и перезапишет устаревшие записи в регистрах сведений.

Способ 3. Временное отключение синхронизации данных на период обновления

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

  1. В режиме «1С:Предприятие» перед запуском обновления зайдите в меню НСИ и администрирование -> Синхронизация данных.
  2. Снимите флаг (галочку) у пункта Синхронизация данных. Это действие временно отключит все механизмы регистрации изменений при записи любых объектов.
  3. Выполните обновление конфигурации базы данных обычным способом (через Конфигуратор или в режиме предприятия).
  4. Дождитесь завершения работы всех отложенных обработчиков обновления.
  5. Вернитесь в раздел администрирования и снова установите флаг Синхронизация данных. БСП при повторном включении автоматически обновит сопутствующие регистры и правила регистрации до актуального состояния.

Способ 4. Очистка зарегистрированных изменений

Иногда сбой происходит из-за того, что в плане обмена зависли зарегистрированные к отправке объекты, которые в новой версии конфигурации больше не поддерживают старые типы данных или правила фильтрации. В этом случае поможет полная очистка очереди регистрации.

Проанализируем шаги по очистке:

  1. Откройте обработку Регистрация изменений для обмена данными. Доступ к ней можно получить непосредственно из окна настройки синхронизации данных или через меню «Функции для технического специалиста» (ранее «Все функции»).
  2. Выберите узел обмена, связанный с универсальным форматом.
  3. Проверьте дерево объектов. Если вы видите зарегистрированные изменения для объектов, которые претерпели сильные изменения в новом релизе, выделите их.
  4. Нажмите кнопку Отменить регистрацию (для всех объектов или только для проблемных классов метаданных).
  5. После очистки таблицы регистрации запустите процесс обновления базы. После успешного завершения перехода вы сможете заново зарегистрировать необходимые объекты к выгрузке вручную с помощью отборов.

Способ 5. Программное обновление правил регистрации через консоль кода

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

Для этого откройте внешнюю обработку «Консоль кода» или создайте простую обработку в конфигураторе и выполните следующий фрагмент кода:


УстановитьПривилегированныйРежим(Истина);
ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными();
ИнформационнаяБазаВыделенная.ЗаписатьОбновлениеПравил();

Этот метод заставит систему обратиться к метаданным конфигурации, прочитать поставляемые макеты правил для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат и перезаписать их в соответствующий регистр сведений базы данных в обход стандартных интерфейсных проверок.

Способ 6. Адаптация нетиповых (доработанных) правил регистрации

Если в вашей системе использовались сильно измененные, доработанные правила обмена, которые были созданы специально под уникальные бизнес-процессы компании, обычный сброс на типовые правила вам не подойдет. В этом случае правила необходимо адаптировать под новый релиз.

Разберем этот процесс детально:

  1. Откройте конфигурацию «1С:Конвертация данных» (версии 2.1 или 3.0 в зависимости от используемой технологии синхронизации).
  2. С помощью обработки MD83Exp.epf выгрузите актуальную структуру метаданных вашей новой версии «1С:Управление торговлей» 11.4.5.
  3. Загрузите полученный файл метаданных в вашу базу «Конвертации данных».
  4. Откройте проект ваших правил регистрации объектов и сопоставьте их с новой структурой метаданных.
  5. Найдите реквизиты, выделенные программой как ошибочные или удаленные, и скорректируйте логику работы обработчиков событий (например, «Перед обработкой» или «При регистрации»).
  6. Сохраните измененные правила регистрации в файл формата XML.
  7. Загрузите новые правила обратно в вашу информационную базу через меню настройки синхронизации.

Резюме

Ошибка выполнения правил регистрации при обновлении «1С:Управление торговлей» является штатной ситуацией, связанной с несинхронным изменением структуры метаданных и внутренних алгоритмов БСП. Рассмотренные нами способы позволяют как быстро обойти проблему путем временного отключения синхронизации, так и решить её корректно с сохранением всех настроек обмена данными за счет обновления правил регистрации до актуальной версии.

← На главную