Обновление с прерыванием и РИБ. Розница 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 час (включая тестовое обновление на копии).

fixin

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

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

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

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