При переходе на новые релизы конфигурации «1С:Управление торговлей» (в частности, при обновлении с версии 11.4.3 на 11.4.5) технические специалисты часто сталкиваются со следующей критической ошибкой: «Ошибка выполнения правил регистрации объектов для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат». Данная неполадка полностью блокирует процесс обновления информационной базы или препятствует выполнению отложенных обработчиков при первом запуске системы.
В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем внутренние механизмы работы Библиотеки стандартных подсистем (БСП) и рассмотрим несколько эффективных способов решения проблемы — от радикального пересоздания настроек обмена до более тонких технологических манипуляций с регистрами и программным кодом.
Для того чтобы понять, как бороться с этой ошибкой, проанализируем механизм регистрации изменений в платформе «1С:Предприятие». План обмена СинхронизацияДанныхЧерезУниверсальныйФормат отвечает за интеграцию «1С:Управление торговлей» с другими конфигурациями (например, с «1С:Бухгалтерия предприятия») по технологии EnterpriseData.
Каждому плану обмена сопутствуют так называемые правила регистрации объектов. Это специальные алгоритмы, написанные на языке XML или упакованные внутрь макетов конфигурации, которые определяют, какие именно документы, справочники или регистры должны регистрироваться к отправке при их записи или проведении. Например, правила указывают, что документ «Реализация товаров и услуг» должен выгружаться только в том случае, если он проведен и относится к определенной организации.
В процессе обновления конфигурации разработчики фирмы «1С» часто меняют структуру метаданных:
Если в вашей базе данных сохранены устаревшие правила регистрации (например, в специальном регистре сведений или в кэше базы), они начинают обращаться к свойствам объектов, которых больше нет в новой структуре метаданных обновленной конфигурации. Это и вызывает критический сбой выполнения кода БСП при попытке записать или провести объекты в процессе обновления.
Ниже мы подробно рассмотрим несколько проверенных на практике вариантов решения этой проблемы.
Этот метод был предложен участниками обсуждения на форуме и подтвердил свою эффективность. Он отлично подходит в тех ситуациях, когда у вас настроен простой обмен, который можно безболезненно пересоздать заново в обновленной базе данных.
Разберем процесс по шагам:
СинхронизацияДанныхЧерезУниверсальныйФормат, и удалите ее (пометьте на удаление и удалите через стандартную обработку удаления помеченных объектов).Если удаление настроек синхронизации для вас нежелательно (например, настроены сложные отборы, правила сопоставления или накоплена большая очередь изменений, которую нельзя терять), лучшим решением будет принудительное обновление правил регистрации.
Зачастую ошибка возникает из-за того, что система пытается использовать старые правила, загруженные ранее из внешнего XML-файла. Выполним сброс правил на стандартные поставляемые:
Если ошибка правил регистрации блокирует проведение документов во время обновления или при выполнении отложенных обработчиков запуска, можно временно деактивировать механизм синхронизации:
Иногда сбой происходит из-за того, что в плане обмена зависли зарегистрированные к отправке объекты, которые в новой версии конфигурации больше не поддерживают старые типы данных или правила фильтрации. В этом случае поможет полная очистка очереди регистрации.
Проанализируем шаги по очистке:
Бывают ситуации, когда из-за ошибки входа в базу подсистема БСП полностью блокирует работу интерфейса, и вы не можете зайти в настройки администрирования. В этом случае мы можем принудительно инициализировать обновление правил обмена программным путем.
Для этого откройте внешнюю обработку «Консоль кода» или создайте простую обработку в конфигураторе и выполните следующий фрагмент кода:
УстановитьПривилегированныйРежим(Истина);
ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными();
ИнформационнаяБазаВыделенная.ЗаписатьОбновлениеПравил();
Этот метод заставит систему обратиться к метаданным конфигурации, прочитать поставляемые макеты правил для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат и перезаписать их в соответствующий регистр сведений базы данных в обход стандартных интерфейсных проверок.
Если в вашей системе использовались сильно измененные, доработанные правила обмена, которые были созданы специально под уникальные бизнес-процессы компании, обычный сброс на типовые правила вам не подойдет. В этом случае правила необходимо адаптировать под новый релиз.
Разберем этот процесс детально:
MD83Exp.epf выгрузите актуальную структуру метаданных вашей новой версии «1С:Управление торговлей» 11.4.5.Ошибка выполнения правил регистрации при обновлении «1С:Управление торговлей» является штатной ситуацией, связанной с несинхронным изменением структуры метаданных и внутренних алгоритмов БСП. Рассмотренные нами способы позволяют как быстро обойти проблему путем временного отключения синхронизации, так и решить её корректно с сохранением всех настроек обмена данными за счет обновления правил регистрации до актуальной версии.