Критичные изменения могут быть выполнены только в главном узле распределенной информационной базы. УНФ 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

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *