Как исправить ошибку блокировки информационной базы 1С при конфигурировании?

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

Каждый администратор или разработчик 1С рано или поздно сталкивается с неприятной ситуацией: при попытке открыть Конфигуратор система выдает критическую ошибку: «Ошибка блокировки информационной базы для конфигурирования. Возможно информационная база уже открыта конфигуратором». При этом вы точно знаете, что никто из коллег в данный момент не работает с конфигурацией, а зависший процесс 1cv8.exe намертво заблокировал файлы базы данных и отказывается завершаться стандартными средствами Windows.

Особенно критичной эта проблема становится на терминальных серверах, где работают десятки пользователей, и оперативно выполнить перезагрузку всего сервера для сброса зависшей сессии попросту невозможно. В этой статье мы подробно разберем, почему возникает эта ошибка, как безопасно снять блокировку файлов базы данных и как принудительно завершить «неубиваемый» процесс 1cv8.exe без ущерба для остальных пользователей.

Выясняем причины: почему процесс 1cv8.exe зависает «намертво»?

Прежде чем переходить к радикальным мерам, давайте проанализируем ситуацию и поймем, почему операционная система не позволяет закрыть зависший процесс даже пользователю с правами локального администратора. В среде Windows (особенно на многопользовательских терминальных серверах) существует несколько классических причин ухода процесса 1С в режим глубокого ожидания ядра (I/O Wait), из-за которого его невозможно убить через стандартный Диспетчер задач:

  1. Зависание подсистемы печати (процесс splwow64.exe). Если пользователь отправлял на печать отчет или документ из 1С, операционная система запускает специальный транслятор печати splwow64.exe для связи 32-битного приложения 1С с 64-битной службой печати ОС. Если сетевой принтер завис или отключился, этот процесс-посредник намертво зажимает родительский поток 1С. При попытке убить 1cv8.exe система выдает сообщение «Отказано в доступе».
  2. Сбои сетевого протокола SMB. Если файловая база данных расположена в сетевой папке на другом сервере, сетевой редиректор операционной системы при кратковременном разрыве связи может заблокировать дескрипторы открытых файлов. Процесс 1С бесконечно ждет ответа от сетевого диска, а ОС защищает этот поток от принудительного закрытия, чтобы не допустить разрушения структуры файлов.
  3. Активность антивирусного ПО. Некоторые антивирусы при сканировании файлов базы данных блокируют доступ к файлу транзакций 1Cv8.1CL или самому файлу базы данных 1Cv8.1CD. В этот момент процесс 1С зависает в попытке получить монопольный доступ к ресурсу.

Теперь, когда мы понимаем физику процесса, рассмотрим пошагово эффективные методы устранения блокировки.

Способ 1. Снятие сетевых блокировок через «Управление компьютером»

Если файловая база данных 1С опубликована на сервере в качестве сетевого ресурса (общая папка), операционная система сама кэширует и держит дескрипторы открытых файлов. Мы можем принудительно заставить ОС «отпустить» файлы базы данных.

Разберем этот процесс по шагам:

  1. Нажмите на сервере комбинацию клавиш Win + R, введите команду compmgmt.msc и нажмите Enter для запуска оснастки «Управление компьютером».
  2. В левом дереве консоли перейдите по пути: Системные инструменты -> Общие папки -> Открытые файлы.
  3. В центральной части окна отобразится список всех файлов на сервере, которые сейчас открыты пользователями по сети. Найдите файлы вашей базы данных. Особое внимание обратите на файлы с расширениями 1Cv8.1CD, 1Cv8.1CL и временные файлы блокировок 1Cv8tmp.1CL.
  4. Нажмите правой кнопкой мыши на каждый заблокированный файл базы данных и выберите пункт Закрыть открытый файл.

После принудительного закрытия сетевых дескрипторов операционная система освободит файлы базы, и зависший на клиенте процесс 1cv8.exe либо мгновенно завершится сам, либо его можно будет легко закрыть обычным Диспетчером задач.

Способ 2. Завершение зависшего процесса печати splwow64.exe

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

  1. Откройте Диспетчер задач Windows на сервере, перейдите на вкладку «Подробности» (Details).
  2. Найдите в списке процесс splwow64.exe.
  3. Кликните по нему правой кнопкой мыши и выберите Снять задачу (End Task).
  4. После этого сразу же пробуйте завершить зависший процесс 1cv8.exe.

Для того чтобы предотвратить повторение этой проблемы в будущем, мы рекомендуем настроить реестр Windows на автоматическое закрытие зависших процессов трансляции печати. Для этого выполните команду regedit, перейдите по пути:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\SysProcs

Создайте в этом разделе параметр с именем splwow64.exe (тип DWORD) со значением 0. Это заставит операционную систему корректно тушить процессы печати сразу после того, как пользователь закроет или завершит сеанс 1С.

Способ 3. Завершение процесса 1С с правами SYSTEM через утилиту PsExec

Когда обычных прав администратора Windows не хватает для принудительного снятия задачи, необходимо повысить привилегии до уровня локальной системы (SYSTEM). В этом нам поможет официальная системная утилита от Microsoft — PsExec из пакета Sysinternals.

Рассмотрим алгоритм действий:

  1. Скачайте пакет утилит Sysinternals с официального сайта Microsoft и распакуйте его на сервере.
  2. Запустите командную строку Windows (cmd) обязательно от имени Администратора.
  3. Перейдите в папку с утилитой и выполните следующую команду для принудительного закрытия всех процессов 1С с правами SYSTEM:

psexec -s -i taskkill /F /IM 1cv8.exe

Параметр -s указывает утилите запустить команду от имени системной учетной записи, а -i обеспечивает интерактивное взаимодействие с рабочим столом. В 99% случаев этот способ позволяет закрыть любой «неубиваемый» процесс без перезагрузки операционной системы.

Также вы можете запустить интерактивный диспетчер процессов Process Explorer от имени SYSTEM с помощью команды:

psexec -s -i procexp.exe

Найдите в открывшемся окне процесс 1cv8.exe, нажмите правой кнопкой мыши и выберите Kill Process Tree для уничтожения процесса со всеми его дочерними ветками.

Способ 4. Использование альтернативных консольных команд PowerShell и WMIC

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

В консоли PowerShell выполните команду принудительного закрытия с параметром -Force:

Stop-Process -Name "1cv8" -Force

Если PowerShell недоступен, воспользуемся инструментарием управления Windows (WMIC) в классической командной строке:

wmic process where name="1cv8.exe" call terminate

Эти команды работают на более низком уровне взаимодействия с API операционной системы, обходя стандартные ограничения Диспетчера задач.

Способ 5. Очистка кэша конфигурации

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

  1. При запуске базы данных через стартер 1С нажмите кнопку Изменить для нужной информационной базы.
  2. Нажмите Далее и в поле «Дополнительные параметры запуска» пропишите ключ: /ClearCache.
  3. Запустите базу. Платформа автоматически пересоздаст все временные файлы кэша метаданных.

Профилактика проблемы: настройка параметров базы данных

Чтобы снизить вероятность зависания сессий пользователей (особенно при использовании мобильных клиентов или веб-подключений), выполните профилактическую настройку параметров базы в режиме Предприятия:

  1. Зайдите в базу в режиме «1С:Предприятие» под правами Администратора.
  2. Перейдите в раздел Администрирование -> Параметры информационной базы.
  3. Найдите параметр «Время завершения спящего режима». По умолчанию там может стоять слишком большое значение. Установите его равным 7200 секундам (2 часа).

Этот параметр заставит платформу 1С автоматически корректно завершать сессии пользователей, которые ушли в «спящий» режим из-за неактивности или потери связи на мобильных устройствах, предотвращая блокировку файлов базы данных.

← На главную