Последствия обновления УНФ 1.6 на 3.0 в РИБ
У центральной базы есть одна периферийная (зеркальная копия).
После обновления на FTP выгрузился файл размером 1,56 Гб в архиве:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-123.png)
На сервере-получателе не грузится с FPT. Поэтому поставил копирование через свой компьютер:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-124.png)
В центре отключил сценарии синхронизации с этой базой. На это время нужно прекратить изменения конфигурации и расширений, чтобы данные успешно принялись базой-получателем и в центре принялось подтверждение получения данных.
Файл скачался примерно за 20 минут.
В не сжатом виде файл занимал 3.6 Гб:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-125.png)
ВАЖНО: Теперь, чтобы периферийная база не пробовала заново скачивать и загружать большой файл обмена, удаляю его на FTP (ориентируюсь на размер файла при выборе, что удалять):
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-142.png)
Поставил распаковываться файл, распаковалось довольно быстро, минут за 5:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-126.png)
Далее упаковал в ZIP архив блоками по 30 Мб:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-127.png)
Упаковалось тоже быстро:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-128.png)
Сформировался архив из 53 частей:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-131.png)
Поставил копировать в RPD-сеанс через буфер обмена, прогноз был на 2 часа:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-129.png)
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-130.png)
Файлы успешно передались с первого раза, без обрывов.
Распаковываю XML файл:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-132.png)
Через функции технического специалиста открываю План обмена — Распределенная информационная база:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-133.png)
И на базе II делаю Еще — Прочитать изменения:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-134.png)
Выбираю XML файл, но окно не закрывается сразу:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-135.png)
Если выбрать еще раз, то выдает ошибку:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-136.png)
Значит, 1С грузит файл обмена в базу в асинхронном режиме.
Наконец — появилось сообщение о загрузке в правом нижнем углу:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-137.png)
По окончании было выдано сообщение:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-138.png)
Закрываем 1С-Предприятие, переходим в Конфигуратор. И тут нас ждет интересный сюрприз:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-139.png)
Устанавливаю 8.3.21.1775:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-140.png)
После обновления платформы прописываю ключ debug в службе сервера 1С в ветке реестра «Компьютер\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\1C:Enterprise 8.3 Server Agent (x86-64)«:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-143.png)
И перезапускаю службу агента сервера 1С:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-144.png)
Теперь в конфигураторе видно по синему бочонку, что пришли изменения:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-145.png)
Обновляю конфигурацию и запускаю 1С, но 1С не дает зайти:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-146.png)
Поэтому запускаю 1С из конфигуратора, указав параметр ОтключитьЛогикуНачалаРаботыСистемы:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-147.png)
При запуске выдается сообщение:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-148.png)
Сам конфигуратор на всякий случай закрываю.
Захожу в 1С по ссылке e1cib/list/ПланОбмена.Полный в список узлов обмена и еще раз (как и в прошлый раз) запускаю чтение из файла.
После чтения выдалось сообщение, что получены изменения расширений и нужно перезапустить 1с. Перезапускаю в обычном режиме. Опять получаю окошко «Повторная синхронизация данных», запустить 1С не дает.
Тогда опять запускаю через конфигуратор с отключением логики начала работы системы.
Захожу в настройки синхронизации данных и запускаю синхронизацию, как обычно:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-149.png)
Почему-то 1С долго висит на загрузке данных. Оставляю ее так. Висит долго, ничего не происходит. Отменяю.
Проверяю в большом файле номера сообщений:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-150.png)
Сообщение в CH имеет номер 30045.
Нажимаю в периферийной базе кнопку «Состав отправляемых данных»:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-151.png)
Вижу, что принято сообщение 30040:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-152.png)
Значит, большой файл еще не подгрузился. Видимо, после обновления расширений нужно еще раз прочитать. Запускаю в третий раз чтение из файла, закрыв конфигуратор.
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-153.png)
Ошибка при вызове метода контекста (ПрочитатьИзменения)
{mngbase/DataExchangeReadChanges.lf(92)}:ExchangePlans.ReadChanges(Message, TransactionSize);
{mngbase/DataExchangeReadChanges.lf(21)}:ReadChangesAtServer(URL, TransactionSize);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при работе со справочником "Идентификаторы объектов метаданных".
Критичные изменения могут быть выполнены только
в главном узле распределенной информационной базы.
Состав требуемых изменений см. в журнале регистрации.
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
Это ошибка отсюда:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-154-1024x272.png)
Поиском нахожу возможное решение проблемы:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-155.png)
Пробую.
Отключаю главный узел:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-156.png)
Далее из конфигуратора запускаем 1С для запуска обновления ИБ
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-157.png)
Получаем предупреждение от 1С:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-158.png)
Выбираем Отключить. И получаем какую-то ошибку:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-159.png)
Поле объекта не обнаружено (ВидыСубконто)
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(3421)}:Для Каждого СтрокаВидаСубконто Из Объект.ВидыСубконто Цикл
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(3266)}:СохранитьСуществующиеПредопределенныеОбъектыПередСозданиемНедостающих(ОбъектМетаданных,
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(968)}:СоздатьНедостающиеПредопределенныеДанные(ОбъектыМетаданных);
{ОбщаяФорма.ВосстановлениеСвязиСГлавнымУзлом.Форма(86)}:СтандартныеПодсистемыСервер.ВосстановитьПредопределенныеЭлементы();
{ОбщаяФорма.ВосстановлениеСвязиСГлавнымУзлом.Форма(45)}:ОтключитьНаСервере();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Не хочет 1С сдаваться! ОК, боремся дальше.
Запускаем в режиме ОтключитьЛогикуНачалаРаботыСистемы.
Будем выполнять код в консоли кода:
Справочники.ИдентификаторыОбъектовМетаданных.ВыполнитьОбновлениеДанных(Истина, ЛОЖЬ,Ложь)
Получаем сообщение об ошибке:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-160.png)
Приходится смотреть по коду, как подтвердить:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-161-1024x512.png)
Находим через все функции константу «Главный узел» и очищаем:
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-162.png)
После этого приходится перезайти в 1С и код обновления идентификаторов отрабатывает.
Подключаем обратно главный узел. И константу «Главный узел» заодно устанавливаем.
Запускаем в режиме ОтключитьЛогикуНачалаРаботыСистемы.
И в четвертый раз пробуем загрузить файл изменений.
На этот раз получаю ошибку:
Ошибка при вызове метода контекста (ПрочитатьИзменения)
{mngbase/DataExchangeReadChanges.lf(92)}:ExchangePlans.ReadChanges(Message, TransactionSize);
{mngbase/DataExchangeReadChanges.lf(21)}:ReadChangesAtServer(URL, TransactionSize);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Не удалось записать: "Событие"!
[ОшибкаХранимыхДанных]
![](https://geniy1s.ru/wp-content/uploads/2023/06/image-163.png)
На этом я сдался и решил, что лучше скопировать базу целиком и сделать из неё РИБ. При этом не забыть очистить изменения для плана обмена перед выгрузкой в DT, чтобы эти изменения заново не пошли по обмену.
Объем: 1.5 час.
1 комментарий
[…] уже сталкивался с этой ошибкой ранее, но не смог ее побороть. Тогда я просто сделал РИБ из […]