Как исправить ошибку «База данных заблокирована» при обновлении УТ с 11.4 на 11.5?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Переход с редакции Управление торговлей 11.4 на 11.5 — это один из самых трудоемких процессов обновления в экосистеме 1С. Это связано с кардинальной сменой архитектуры во многих подсистемах, особенно в части учета взаиморасчетов, распределения запасов и закрытия месяца. Часто пользователи сталкиваются с тем, что обновление конфигурации в режиме Конфигуратор проходит успешно, но при первом запуске в режиме Предприятие на этапе выполнения обработчиков (часто на отметке 26%) система выдает критическую ошибку: «База данных заблокирована для внесения изменений фоновым заданием». В этой статье мы подробно разберем, почему это происходит и как довести обновление до конца.

Разберем причину возникновения блокировки

Проанализируем ситуацию: процесс обновления в 1С:Предприятии разделен на два принципиально разных этапа. Первый этап — это работа окна с прогрессом (тот самый индикатор в процентах). На этом этапе система выполняет критически важные преобразования структуры данных, которые требуют эксклюзивного (монопольного) доступа к базе. В это время зайти в 1С невозможно. Второй этап — выполнение отложенных обработчиков обновления. На этом этапе пользователи уже могут работать в базе, а система в фоновом режиме дозаполняет регистры.

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

Шаг 1: Работа с консолью администрирования кластера серверов 1С

Первым делом нам необходимо убедиться, что внешние факторы не мешают процессу. Рассмотрим правильную последовательность действий в консоли управления кластером:

  1. Откройте консоль администрирования 1cv8_console и найдите вашу информационную базу.
  2. Зайдите в свойства информационной базы.
  3. Установите флаг «Блокировка регламентных заданий включена». Это предотвратит запуск автоматических процессов (обмен данными, рассылки, расчеты), которые 1С пытается инициировать сразу после старта.
  4. Установите флаг «Блокировка начала сеансов включена».
  5. В поле «Код разрешения» введите любое слово или комбинацию цифр, например, 12345 или Update2024. Этот код позволит вам, и только вам, зайти в базу, несмотря на общую блокировку.
  6. Убедитесь, что флаг «Резервирование рабочих процессов» снят, чтобы сервер не пытался запустить дополнительные системные потоки.

Важное замечание: Если вы установили блокировку сеансов, то обычный запуск через ярлык не сработает. Чтобы зайти в базу, в параметрах запуска (в окне выбора баз, кнопка «Изменить» — далее — поле «Дополнительные параметры запуска») нужно прописать: /UC 12345 (где 12345 — ваш код разрешения).

Шаг 2: Полная очистка активных соединений и кэша

Иногда блокировка может быть «фантомной», вызванной зависшими процессами на уровне операционной системы или сервера СУБД. Проанализируем, как полностью очистить рабочее окружение:

  1. В консоли сервера 1С удалите все активные сеансы и соединения для данной базы.
  2. Если база работает в клиент-серверном варианте, перезапустите службу 1C:Enterprise 8.3 Server Agent. Это гарантированно «прибьет» все подвисшие фоновые задания.
  3. Очистите временные файлы на сервере. Для этого необходимо остановить службу 1С и удалить содержимое папок snaccxt и кэш-директории внутри профиля пользователя, под которым работает служба (обычно в Local Settings\Application Data\1C\1cv8).
  4. Для клиент-серверных баз на MS SQL Server можно выполнить очистку кэша конфигурации прямо в базе данных (только на копии!):
    
    DELETE FROM ConfigCAS;
    DELETE FROM Config; -- С осторожностью, только если понимаете последствия
    

Шаг 3: Использование режима отладки и параметров запуска

Если штатный запуск все равно приводит к ошибке, попробуем запустить процесс обновления в режиме отладки. Это позволит системе игнорировать некоторые некритичные проверки блокировок. Разберем, как это сделать:

  1. Запустите Конфигуратор.
  2. Перейдите в меню Сервис — Параметры.
  3. На вкладке Запуск 1С:Предприятия в поле «Параметры запуска» введите: /C РежимОтладки.
  4. Запустите режим Предприятия из Конфигуратора (клавиша F5).

Использование ключа /C РежимОтладки заставляет систему выполнять обработчики обновления последовательно в основном потоке, не пытаясь распараллелить их через фоновые задания, что часто помогает избежать конфликта блокировок на пограничных этапах (как раз в районе 25-30%).

Шаг 4: Отключение полнотекстового поиска и расширений

Проанализируем дополнительные факторы, которые могут инициировать фоновые процессы. В УТ 11.5 система при первом запуске часто пытается обновить индекс полнотекстового поиска. Рассмотрим, как это предотвратить:

  1. Если база еще позволяет зайти в настройки (или если вы делаете это на этапе подготовки к обновлению в 11.4), полностью отключите полнотекстовый поиск: НСИ и администрирование — Поддержка и обслуживание — Полнотекстовый поиск — Снять флаг «Полнотекстовый поиск данных».
  2. Обязательно отключите все расширения конфигурации. Даже если они помечены как «отключенные», платформа может пытаться проверить их совместимость с новой метаданной 11.5, что порождает фоновое задание. Полностью удалите их на время обновления.

Шаг 5: Особенности перехода на «Новую архитектуру»

В УТ 11.5 реализована новая механика распределения запасов. При обновлении запускается скрытый процесс инициализации данных в регистрах ОчередьРаспределенияЗапасов. Если в базе скопилось огромное количество незакрытых документов или «битых» записей в очередях, обновление может спотыкаться.

Посмотрим на пример кода, который можно запустить в 11.4 перед началом обновления, чтобы очистить старые очереди, которые могут мешать:


Набор = РегистрыСведений.ОчередьРаспределенияЗапасов.СоздатьНаборЗаписей();
Набор.Записать(); // Очищаем набор, если он блокирует процесс

Также проверьте Журнал регистрации непосредственно перед возникновением ошибки. Ищите записи с событием «Фоновое задание. Старт». Там будет указано имя метода, который запускается. Если это ОбновлениеИнформационнойБазы.ВыполнитьОбновление, значит система пытается запустить фоновый поток для ускорения, но натыкается на собственные ограничения безопасности.

Итоговый алгоритм действий

Подведем итог. Чтобы успешно пройти отметку в 26%, выполните следующие действия в строгом порядке:

  1. Выгоните всех пользователей и завершите их сеансы в консоли.
  2. Установите блокировку регламентных заданий и сеансов с кодом 12345.
  3. Перезапустите службу сервера 1С и очистите серверный кэш.
  4. Пропишите в параметрах запуска ключ /UC 12345 /C РежимОтладки.
  5. Запустите базу и дождитесь окончания процесса. Если система снова скажет о блокировке — проверьте консоль: возможно, какое-то задание (например, «Проверка лицензии» или «Обновление индекса ППД») запустилось вопреки блокировке.

После того как прогресс дойдет до 100% и откроется рабочий стол программы, не забудьте зайти в «Результаты обновления программы» и убедиться, что все фоновые обработчики завершены успешно. Только после этого можно снимать блокировки в консоли сервера и пускать пользователей.

← На главную