Обновление с прерыванием и РИБ. Розница 3.0
В процессе обновления Розницы с 3.0.2.215 на 3.0.9.123 пришлось прерывать обработчики обновления на релизе 3.0.3.169 потому что они длятся целые сутки, а столько времени у магазина нет — надо работать и продавать. Штатный программист пытался честно выполнить все обработчики, на этом и погорел — не справился с обновлением. Пришлось помогать.
Конечно, можно оставить обновление в фоне, но тогда пострадает распределенная база, которая в течении дня не будет получать данных из центра. Это не так критично, но всё же.
Спустя 2:30 в 1:16 — решил прервать выполнение обработчиков, нажав «Остановить всё».
Увы, просто так Обновлятор не остановить, поэтому нужно снять процесс Connector1Cx86.exe:
После этого Обновлятор сразу останавливается. Запускаю из него 1С.
Захожу в регистр «Обработчики обновления», сортируем по статусу:
Устанавливаю статус «Выполнен» на тех обработчиках, что не выполнялись. Они не особо нужны для Розницы, благо тут не ведется учет сотрудников:
Заходим Настройки — Обслуживание — Обновление программы — Результаты обновления:
Нажимаем «Выполнить процедуры обработки данных», сразу показывается окошко, что всё выполнено:
Теперь можно продолжать обновление Обновлятором по опорным релизам (на копии базы проверялось, что тут нет долгих пересчетов и обновление должно пройти за 40 минут):
И действительно, последующие релизы прошли за 30 минут:
Теперь нужно запустить центральную базу и сформировать файл обмена в периферийную базу.
Выгрузка в периферийную прошла довольно быстро. Загрузка шла дольше:
Загрузка в периферийную ожидаемо закончилась с ошибкой:
Причина в том, что файл не удается скачать с FTP:
Действительно, он очень большой, 800 Мб.
Пришлось скачать файл вручную:
Далее загружаем его через план обмена:
Далее обновляем полученную конфигурацию:
При запуске 1С она ругается, что не произошло обновление.
Поэтому надо запускать 1С с ключом: /CОтключитьЛогикуНачалаРаботыСистемы
В этом режиме повторяем чтение данных.
Теперь получены расширения. Требуется еще один перезапуск. В этот раз можно уже запускать в обычном режиме и выбирать продолжить.
Однако 1С пишет, что идет обновление версии приложения:
Тут я ушел спать, решил, что утром продолжу загрузку.
Утром пришла в голову мысль, что можно было временно просто менять способ обмена на обмен через каталог, тогда обмен при старте происходил бы из папки и не нужно было бы запускать без отключения логики системы.
Клиент написала, что утром вышла ошибка одного из обработчиков. Пришлось повозиться.
Значение не является значением объектного типа (ОбработкаЗавершена)
{ОбщийМодуль.ЗащитаПерсональныхДанныхЗарплатаКадры.Модуль(328)}:ПараметрыОбновления.ОбработкаЗавершена = Истина;
Пробовал отключать обработчкик:
Но он после обмена опять становился в статусе «К выполнению».
В итоге решил только расширением общего модуля в периферийном узле:
&Вместо("УстановитьЛетДоУничтоженияПерсональныхДанныхСотрудников") Процедура Расш1_УстановитьЛетДоУничтоженияПерсональныхДанныхСотрудников(ПараметрыОбновления) ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь); //Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда // ПараметрыОбновления.ОбработкаЗавершена = Истина; // Возврат; //КонецЕсли; Константы.ЛетДоУничтоженияПерсональныхДанныхСотрудников.Установить(5); ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина); КонецПроцедуры
После обновления расширение удалил. Выкладываю его тут если у кого будет такая ошибка. Там еще есть отключения ошибки получения критических данных, зачем-то использовал.
В остальном было несложно.
Для себя решил больше не ставить FTP обмен — на больших объемах при обновлениях он сбоит. Лучше для обменов РИБ использовать Яндекс-диск.
Объем: 3 час (включая тестовое обновление на копии).
Свежие комментарии