Как исправить ошибку «База данных заблокирована» при обновлении узлов РИБ в 1С

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

Описание проблемы

Рассмотрим ситуацию, с которой часто сталкиваются администраторы распределенных информационных баз (РИБ) в 1С. При попытке выполнить обновление периферийных узлов обмен прерывается критической ошибкой: «База данных РИБ заблокирована». При этом система явно указывает на сеанс, под которым выполняется этот самый обмен. Проблема особенно актуальна для конфигураций уровня «Розница» (например, версии 2.2) при использовании платформы линейки 8.3.13 (в частности, 8.3.13.1644) в файловом варианте работы базы.

Стандартные действия, такие как простая перезагрузка компьютера, чистка кэша или удаление временных файлов, в данном случае обычно не приносят должного результата. Структурные изменения (например, снятие с поддержки и добавление нового справочника) могут однократно пройти успешно, но при следующем же автоматическом обмене ошибка возвращается. Разберем подробнее, почему так происходит.

Выясним причину блокировок

Проанализируем специфику работы платформы в данном сценарии. Линейка платформ 1С:Предприятие 8.3.13 имела ряд известных сложностей при работе с распределенными базами, особенно файлового типа. Основные причины возникновения ошибки блокировки:

  1. Конфликт фоновых заданий: При получении пакета обновления узел РИБ начинает процесс реструктуризации базы данных. В файловом варианте платформы параллельно работающее фоновое задание (например, регламентное задание по автоматической синхронизации или рассылке отчетов) может попытаться обратиться к базе. Любое фоновое задание, пытающееся прочитать или записать данные в момент реструктуризации, намертво блокирует весь файл базы.
  2. Проблемы с механизмом расширений: В релизе 8.3.13 был существенно переработан механизм работы с расширениями конфигурации. Часто обмен РИБ ломается из-за того, что платформа не может корректно передать структуру расширения или патча в периферийный узел, что приводит к зависанию сеанса обмена и последующей блокировке.
  3. Зависшие сеансы: При аварийном завершении предыдущего обмена в диспетчере задач остаются зависшие скрытые процессы 1cv8.exe, а в каталоге базы сохраняется файл жесткой блокировки.

Разберем по шагам варианты решения

Если вы столкнулись с подобной ситуацией, посмотрим на несколько эффективных путей решения проблемы. Мы рекомендуем начать с устранения физических блокировок и настройки фоновых заданий, а затем рассмотреть вопрос смены релиза платформы.

Шаг 1. Очистка физических блокировок и кэша

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

  1. Откройте Диспетчер задач Windows и принудительно завершите все процессы 1cv8.exe.
  2. Перейдите в каталог, где физически располагается ваша файловая база данных.
  3. Найдите и удалите файл блокировки с именем 1Cv8.1CL (внимание: удаляйте только этот файл, не трогайте 1Cv8.1CD, так как это сама база данных!).
  4. Очистите кэш платформы 1С для текущего пользователя.

Шаг 2. Отключение автоматического обмена и фоновых заданий

Чтобы избежать запуска регламентных заданий во время обновления узла, нам нужно запретить платформе их выполнение на время применения изменений. Посмотрим на два способа, как это сделать:

Способ А: Использование параметра запуска

Для запуска базы без фоновых заданий добавьте в параметры запуска информационной базы (в окне запуска 1С кнопка "Изменить" -> последняя вкладка "Дополнительные параметры запуска") следующий ключ:

/AllowExecuteScheduledJobs -Off

Запустите базу с этим ключом и выполните загрузку сообщения обмена вручную. После успешного обновления структуры ключ можно будет убрать.

Способ Б: Ручное отключение в настройках

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

Шаг 3. Смена версии платформы (кардинальное решение)

Как мы уже выяснили, ядро проблемы кроется в самом релизе 8.3.13.1644. Многие специалисты на практике обходят эту ошибку путем смены версии платформы.

Откат на стабильную версию (даунгрейд): В рамках обсуждений часто упоминается, что возврат на версию 8.3.12.1790 полностью решает проблему блокировок в РИБ. Однако следует учитывать, что современные конфигурации (такие как "Розница 2.2" актуальных версий) требуют для полноценной работы режим совместимости не ниже 8.3.13, а значит, даунгрейд является лишь временной мерой, которая может привести к отказу части нового функционала.

Обновление на более новую версию (апгрейд): Наиболее правильным и долгосрочным решением будет обновление технологической платформы до более свежих и стабильных релизов (например, линейки 8.3.14, 8.3.15 и выше). В этих версиях разработчики 1С устранили большинство проблем, связанных с блокировками РИБ в файловом режиме и некорректной передачей расширений. Перед массовым обновлением платформы на всех узлах обязательно протестируйте работу обмена на копии базы!

Резюме

Мы подробно проанализировали ситуацию с ошибкой «база данных заблокирована» в узлах РИБ. Если ваш обмен застопорился, в первую очередь очистите зависшие процессы и файл блокировки 1Cv8.1CL, а затем запустите базу с ключом /AllowExecuteScheduledJobs -Off для ручного применения обновления. Для того чтобы навсегда забыть об этой проблеме, настоятельно рекомендуется запланировать переход с проблемного релиза платформы 8.3.13 на более стабильные актуальные версии.

← На главную