Переход с редакции Управление торговлей 11.4 на 11.5 — это один из самых трудоемких процессов обновления в экосистеме 1С. Это связано с кардинальной сменой архитектуры во многих подсистемах, особенно в части учета взаиморасчетов, распределения запасов и закрытия месяца. Часто пользователи сталкиваются с тем, что обновление конфигурации в режиме Конфигуратор проходит успешно, но при первом запуске в режиме Предприятие на этапе выполнения обработчиков (часто на отметке 26%) система выдает критическую ошибку: «База данных заблокирована для внесения изменений фоновым заданием». В этой статье мы подробно разберем, почему это происходит и как довести обновление до конца.
Проанализируем ситуацию: процесс обновления в 1С:Предприятии разделен на два принципиально разных этапа. Первый этап — это работа окна с прогрессом (тот самый индикатор в процентах). На этом этапе система выполняет критически важные преобразования структуры данных, которые требуют эксклюзивного (монопольного) доступа к базе. В это время зайти в 1С невозможно. Второй этап — выполнение отложенных обработчиков обновления. На этом этапе пользователи уже могут работать в базе, а система в фоновом режиме дозаполняет регистры.
Ошибка на 26% свидетельствует о том, что какой-то процесс — либо системное фоновое задание, либо пользовательский сеанс — мешает установке монопольного режима, необходимого для завершения первого этапа. Выясним, как устранить эти препятствия по шагам.
Первым делом нам необходимо убедиться, что внешние факторы не мешают процессу. Рассмотрим правильную последовательность действий в консоли управления кластером:
1cv8_console и найдите вашу информационную базу.12345 или Update2024. Этот код позволит вам, и только вам, зайти в базу, несмотря на общую блокировку.Важное замечание: Если вы установили блокировку сеансов, то обычный запуск через ярлык не сработает. Чтобы зайти в базу, в параметрах запуска (в окне выбора баз, кнопка «Изменить» — далее — поле «Дополнительные параметры запуска») нужно прописать: /UC 12345 (где 12345 — ваш код разрешения).
Иногда блокировка может быть «фантомной», вызванной зависшими процессами на уровне операционной системы или сервера СУБД. Проанализируем, как полностью очистить рабочее окружение:
1C:Enterprise 8.3 Server Agent. Это гарантированно «прибьет» все подвисшие фоновые задания.snaccxt и кэш-директории внутри профиля пользователя, под которым работает служба (обычно в Local Settings\Application Data\1C\1cv8).
DELETE FROM ConfigCAS;
DELETE FROM Config; -- С осторожностью, только если понимаете последствия
Если штатный запуск все равно приводит к ошибке, попробуем запустить процесс обновления в режиме отладки. Это позволит системе игнорировать некоторые некритичные проверки блокировок. Разберем, как это сделать:
Конфигуратор./C РежимОтладки.Использование ключа /C РежимОтладки заставляет систему выполнять обработчики обновления последовательно в основном потоке, не пытаясь распараллелить их через фоновые задания, что часто помогает избежать конфликта блокировок на пограничных этапах (как раз в районе 25-30%).
Проанализируем дополнительные факторы, которые могут инициировать фоновые процессы. В УТ 11.5 система при первом запуске часто пытается обновить индекс полнотекстового поиска. Рассмотрим, как это предотвратить:
В УТ 11.5 реализована новая механика распределения запасов. При обновлении запускается скрытый процесс инициализации данных в регистрах ОчередьРаспределенияЗапасов. Если в базе скопилось огромное количество незакрытых документов или «битых» записей в очередях, обновление может спотыкаться.
Посмотрим на пример кода, который можно запустить в 11.4 перед началом обновления, чтобы очистить старые очереди, которые могут мешать:
Набор = РегистрыСведений.ОчередьРаспределенияЗапасов.СоздатьНаборЗаписей();
Набор.Записать(); // Очищаем набор, если он блокирует процесс
Также проверьте Журнал регистрации непосредственно перед возникновением ошибки. Ищите записи с событием «Фоновое задание. Старт». Там будет указано имя метода, который запускается. Если это ОбновлениеИнформационнойБазы.ВыполнитьОбновление, значит система пытается запустить фоновый поток для ускорения, но натыкается на собственные ограничения безопасности.
Подведем итог. Чтобы успешно пройти отметку в 26%, выполните следующие действия в строгом порядке:
12345./UC 12345 /C РежимОтладки.После того как прогресс дойдет до 100% и откроется рабочий стол программы, не забудьте зайти в «Результаты обновления программы» и убедиться, что все фоновые обработчики завершены успешно. Только после этого можно снимать блокировки в консоли сервера и пускать пользователей.