Критичные изменения могут быть выполнены только в главном узле распределенной информационной базы. УНФ 3.0
Я уже сталкивался с этой ошибкой ранее, но не смог ее побороть. Тогда я просто сделал РИБ из копии базы заново.
Но каждый раз так поступать не вариант. Ошибка проявилась после длительного периода, пока базы не обменивались (несколько недель). Файл обмена занимал в сжатом виде 800 Мбайт, повторно его выгружать и передавать не хотелось.
Полный текст ошибки:
Ошибка при вызове метода контекста (ЗакончитьЧтение)
{mngbase/DataExchangeReadChanges.lf(93)}: Message.EndRead();
{mngbase/DataExchangeReadChanges.lf(21)}: ReadChangesAtServer(URL, TransactionSize);
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(2826)}: Ошибка при работе со справочником "Идентификаторы объектов метаданных".
Критичные изменения могут быть выполнены только
в главном узле распределенной информационной базы.
Состав требуемых изменений см. в журнале регистрации.
Message.EndRead();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(2826)}: Ошибка при работе со справочником "Идентификаторы объектов метаданных".
Критичные изменения могут быть выполнены только
в главном узле распределенной информационной базы.
Состав требуемых изменений см. в журнале регистрации.
Ошибка при работе со справочником "Идентификаторы объектов метаданных".
Критичные изменения могут быть выполнены только
в главном узле распределенной информационной базы.
Состав требуемых изменений см. в журнале регистрации.
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(2826)}: ВызватьИсключение ТекстОшибки;
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(1540)}: НСтр("ru = 'Критичные изменения могут быть выполнены только
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(628)}: ОбновитьДанные(ЕстьТекущиеИзменения, ЕстьУдаленные, ТолькоПроверка,
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(542)}: ВыполнитьОбновлениеДанных(ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка);
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(3067)}: ОбновитьДанныеСправочника();
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(772)}: Идентификаторы = ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаБезКэша,
{ОбщийМодуль.ОбщегоНазначения.Модуль(4366)}: Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторыОбъектовМетаданных(
{РегистрСведений.ПраваРолей.МодульМенеджера(433)}: ИдентификаторыОбъектов = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ПолныеИменаОбъектовМетаданных);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(5402)}: Запрос = РегистрыСведений.ПраваРолей.ЗапросИзменений(Истина);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(5360)}: ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений(ПраваРолейРасширений);
{РегистрСведений.ТаблицыГруппДоступа.МодульМенеджера(263)}: Запрос.УстановитьПараметр("ПраваРолейРасширений", УправлениеДоступомСлужебный.ПраваРолейРасширений());
{Справочник.ПрофилиГруппДоступа.МодульМенеджера(347)}: РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофилей, , ЕстьИзменения);
{Справочник.ПрофилиГруппДоступа.МодульМенеджера(1725)}: ОбновитьВспомогательныеДанныеПрофилей(ИзмененныеПрофили);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(5889)}: Справочники.ПрофилиГруппДоступа.ОбновитьВспомогательныеДанныеПрофилейИзмененныхПриЗагрузке();
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(2210)}: ОбновитьВспомогательныеДанныеЭлементовИзмененныхПриЗагрузке();
{ОбщийМодуль.ИнтеграцияПодсистемБСП.Модуль(1596)}: МодульУправлениеДоступомСлужебный.ПослеПолученияДанных(Отправитель, Отказ, ПолучениеИзГлавногоУзла);
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(3164)}: ИнтеграцияПодсистемБСП.ПослеПолученияДанных(Источник, Отказ, ПолучениеИзГлавногоУзла);
{mngbase/DataExchangeReadChanges.lf(93)}: Message.EndRead();
Неправильный путь решения проблемы
Я решил отладить код загрузки и обойти вызов исключения.
Запустил 1С из отладчика в режиме отладки:
Поставил точку останова:
Но увы, при загрузке была выдана ошибка:
В файле обмена присутствовали изменения конфигурации, хотя я их и прогнал один раз уже, второй раз опять нужен был конфигуратор, видимо. Отладить не получится.
Правильный путь решения проблемы
Тогда я решил выгрузить справочник ИдентификаторыОбъектовМетаданных через стандартную обработку выгрузки-загрузки.
Выгружаю только справочник ИдентификаторыОбъектовМетаданных, все галочки «Выгружать при необходимости» сняты:
1С выгрузила 5720 объектов.
Все они благополучно загрузились на приемнике — дочернем узле РИБ:
Как вариант, можно было зарегистрировать весь справочник ИдентификаторыОбъектовМетаданных и тогда при обмене он бы целиком загрузился. Проверка работает уже после обмена.
Но тогда пришлось бы заново формировать файл обмена. А мне его еще и передавать между серверами, кстати использую для этого ToffeeShare.
После этого загрузка данных прошла успешно. Рекомендую этот способ решения проблем.
Среда: УНФ 3.0.4.88 Платформа: 8.3.21.1775
Свежие комментарии