Последствия обновления УНФ 1.6 на 3.0 в РИБ

У центральной базы есть одна периферийная (зеркальная копия).

После обновления на FTP выгрузился файл размером 1,56 Гб в архиве:

На сервере-получателе не грузится с FPT. Поэтому поставил копирование через свой компьютер:

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

Файл скачался примерно за 20 минут.

В не сжатом виде файл занимал 3.6 Гб:

ВАЖНО: Теперь, чтобы периферийная база не пробовала заново скачивать и загружать большой файл обмена, удаляю его на FTP (ориентируюсь на размер файла при выборе, что удалять):

Поставил распаковываться файл, распаковалось довольно быстро, минут за 5:

Далее упаковал в ZIP архив блоками по 30 Мб:

Упаковалось тоже быстро:

Сформировался архив из 53 частей:

Поставил копировать в RPD-сеанс через буфер обмена, прогноз был на 2 часа:

Файлы успешно передались с первого раза, без обрывов.

Распаковываю XML файл:

Через функции технического специалиста открываю План обмена — Распределенная информационная база:

И на базе II делаю Еще — Прочитать изменения:

Выбираю XML файл, но окно не закрывается сразу:

Если выбрать еще раз, то выдает ошибку:

Значит, 1С грузит файл обмена в базу в асинхронном режиме.

Наконец — появилось сообщение о загрузке в правом нижнем углу:

По окончании было выдано сообщение:

Закрываем 1С-Предприятие, переходим в Конфигуратор. И тут нас ждет интересный сюрприз:

Устанавливаю 8.3.21.1775:

После обновления платформы прописываю ключ debug в службе сервера 1С в ветке реестра «Компьютер\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\1C:Enterprise 8.3 Server Agent (x86-64)«:

И перезапускаю службу агента сервера 1С:

Теперь в конфигураторе видно по синему бочонку, что пришли изменения:

Обновляю конфигурацию и запускаю 1С, но 1С не дает зайти:

Поэтому запускаю 1С из конфигуратора, указав параметр ОтключитьЛогикуНачалаРаботыСистемы:

При запуске выдается сообщение:

Сам конфигуратор на всякий случай закрываю.

Захожу в 1С по ссылке e1cib/list/ПланОбмена.Полный в список узлов обмена и еще раз (как и в прошлый раз) запускаю чтение из файла.

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

Тогда опять запускаю через конфигуратор с отключением логики начала работы системы.

Захожу в настройки синхронизации данных и запускаю синхронизацию, как обычно:

Почему-то 1С долго висит на загрузке данных. Оставляю ее так. Висит долго, ничего не происходит. Отменяю.

Проверяю в большом файле номера сообщений:

Сообщение в CH имеет номер 30045.

Нажимаю в периферийной базе кнопку «Состав отправляемых данных»:

Вижу, что принято сообщение 30040:

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

Ошибка при вызове метода контекста (ПрочитатьИзменения)
{mngbase/DataExchangeReadChanges.lf(92)}:ExchangePlans.ReadChanges(Message, TransactionSize);
{mngbase/DataExchangeReadChanges.lf(21)}:ReadChangesAtServer(URL, TransactionSize);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при работе со справочником "Идентификаторы объектов метаданных".

Критичные изменения могут быть выполнены только
в главном узле распределенной информационной базы.
Состав требуемых изменений см. в журнале регистрации.
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]

Это ошибка отсюда:

Поиском нахожу возможное решение проблемы:

Пробую.

Отключаю главный узел:

Далее из конфигуратора запускаем 1С для запуска обновления ИБ

Получаем предупреждение от 1С:

Выбираем Отключить. И получаем какую-то ошибку:

Поле объекта не обнаружено (ВидыСубконто)
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(3421)}:Для Каждого СтрокаВидаСубконто Из Объект.ВидыСубконто Цикл
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(3266)}:СохранитьСуществующиеПредопределенныеОбъектыПередСозданиемНедостающих(ОбъектМетаданных,
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(968)}:СоздатьНедостающиеПредопределенныеДанные(ОбъектыМетаданных);
{ОбщаяФорма.ВосстановлениеСвязиСГлавнымУзлом.Форма(86)}:СтандартныеПодсистемыСервер.ВосстановитьПредопределенныеЭлементы();
{ОбщаяФорма.ВосстановлениеСвязиСГлавнымУзлом.Форма(45)}:ОтключитьНаСервере();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]

Не хочет 1С сдаваться! ОК, боремся дальше.

Запускаем в режиме ОтключитьЛогикуНачалаРаботыСистемы.

Будем выполнять код в консоли кода:

 Справочники.ИдентификаторыОбъектовМетаданных.ВыполнитьОбновлениеДанных(Истина, ЛОЖЬ,Ложь)

Получаем сообщение об ошибке:

Приходится смотреть по коду, как подтвердить:

Находим через все функции константу «Главный узел» и очищаем:

После этого приходится перезайти в 1С и код обновления идентификаторов отрабатывает.

Подключаем обратно главный узел. И константу «Главный узел» заодно устанавливаем.

Запускаем в режиме ОтключитьЛогикуНачалаРаботыСистемы.

И в четвертый раз пробуем загрузить файл изменений.

На этот раз получаю ошибку:

Ошибка при вызове метода контекста (ПрочитатьИзменения)
{mngbase/DataExchangeReadChanges.lf(92)}:ExchangePlans.ReadChanges(Message, TransactionSize);
{mngbase/DataExchangeReadChanges.lf(21)}:ReadChangesAtServer(URL, TransactionSize);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Не удалось записать: "Событие"!
[ОшибкаХранимыхДанных]

На этом я сдался и решил, что лучше скопировать базу целиком и сделать из неё РИБ. При этом не забыть очистить изменения для плана обмена перед выгрузкой в DT, чтобы эти изменения заново не пошли по обмену.

Объем: 1.5 час.

fixin

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

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

1 комментарий

  1. 25.08.2023

    […] уже сталкивался с этой ошибкой ранее, но не смог ее побороть. Тогда я просто сделал РИБ из […]

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

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