Подробный гайд по поиску процессов, блокирующих файлы базы 1С

Подробный гайд по поиску процессов, блокирующих файлы базы 1С. Узнайте, как быстро снять блокировку 1Cv8.1CD в Windows, PowerShell и SQL-сервере.

2026.10.11                  


Подробный гайд по поиску процессов, блокирующих файлы базы 1СПодробный гайд по поиску процессов, блокирующих файлы базы 1С Проблема с блокировкой файлов базы 1С (чаще всего это файл 1Cv8.1CD, а также служебные файлы .lck, .log или файлы кэша) — классическая ситуация для администратора 1С. Из-за неё пользователи не могут войти в базу, не создаются резервные копии, а при попытке обновления возникают ошибки.


Метод 1. Использование «Монитора ресурсов» Windows (Самый быстрый способ)

Этот инструмент встроен в Windows и позволяет найти процесс, удерживающий дескриптор (handle) файла.



  1. Нажмите Win + R, введите resmon и нажмите Enter.
  2. Перейдите на вкладку ЦП (CPU).
  3. Раскройте раздел Ассоциированные дескрипторы (Associated Handles).
  4. В строке «Поиск дескрипторов» (Search Handles) введите имя папки с базой 1С или имя самого файла (например, 1Cv8.1CD).
  5. Подождите несколько секунд. В списке появятся процессы, которые прямо сейчас обращаются к файлу.
    • Типичные виновники: 1cv8.exe, rphost.exe, dbgs.exe (отладчик), SearchIndexer.exe (индексация Windows), avp.exe (антивирус), Acronis или Veeam.
  6. Как снять блокировку: Кликните правой кнопкой мыши по найденному процессу и выберите «Завершить процесс» (End Process).

Метод 2. Process Explorer от Sysinternals (Для глубокого анализа)

Если встроенный монитор не дал полной картины, используйте утилиту от Марка Руссиновича (Microsoft).

  1. Скачайте Process Explorer - https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer и запустите его от имени Администратора.
  2. Нажмите Ctrl + F (или иконку бинокля).
  3. Введите часть пути к базе (например, 1Cv8 или имя папки).
  4. В результатах поиска вы увидите точный PID процесса и путь к файлу.
  5. Выделите процесс в главном окне, на нижней панели перейдите на вкладку Handles, найдите заблокированный файл и закройте дескриптор (ПКМ -> Close Handle) или завершите процесс целиком.

Метод 3. Если база 1С находится на сетевой шаре (Файловый сервер)

Если база лежит на сервере (SMB-шара), а пользователи подключаются по сети, локальные инструменты на клиентском ПК не помогут. Нужно искать на сервере.

Способ А: Через оснастку «Управление компьютером»

  1. На сервере откройте compmgmt.msc (Управление компьютером).
  2. Перейдите в: Служебные программы -> Общие папки -> Открытые файлы (Open Files).
  3. В списке найдите путь к вашей базе 1С. Вы увидите, какой пользователь (и с какого IP) держит файл.
  4. ПКМ по строке -> Закрыть открытый файл (Close Open File).

Способ Б: Через PowerShell (быстро и удобно)

Откройте PowerShell от администратора на сервере и выполните:

Get-SmbOpenFile | Where-Object Path -like "*1Cv8.1CD*"

Чтобы принудительно закрыть сессию конкретного пользователя:

Get-SmbOpenFile | Where-Object Path -like "*1Cv8.1CD*" | Close-SmbOpenFile -Confirm:$false

Метод 4. Клиент-серверная 1С (SQL + Сервер 1С)

Если у вас клиент-серверный вариант, то понятие «блокировки файла» часто подменяется блокировкой на уровне СУБД (MS SQL / PostgreSQL) или сеансами в кластере 1С.

1. Консоль администрирования серверов 1С:

  • Откройте консоль, перейдите в кластер -> Информационные базы -> Нужная база -> Сеансы.
  • Найдите «зависшие» сеансы (например, фоновые задания, регламентные задания, Web-сервисы или COM-соединения), которые не дают выполнить монопольный режим.
  • Удалите (принудительно завершите) проблемные сеансы.

2. На уровне MS SQL Server:

  • Запустите скрипт для поиска блокировок: EXEC sp_who2; или используйте Activity Monitor.
  • Найдите процессы со статусом SUSPENDED или SLEEPING, привязанные к базе 1С, и выполните KILL <SPID>.

3. На уровне PostgreSQL:

* Запрос для поиска активных/зависших подключений:

     SELECT pid, usename, application_name, state, query 
     FROM pg_stat_activity 
     WHERE datname = 'ИмяВашейБазы1С' AND state != 'idle';
  • Убить процесс: SELECT pg_terminate_backend(pid);

Метод 5. «Фантомные» блокировки (Файлы .LCK и кэш)

Иногда ОС не держит файл, но 1С «думает», что он занят.

1. Файл блокировки 1Cv8.lck

  • В папке с файловой базой есть скрытый файл 1Cv8.lck. Он создается при запуске 1С и удаляется при закрытии.
  • Если 1С «вылетела» с ошибкой или сервер потерял питание, файл .lck остается.


Решение:

Убедитесь, что в базе точно никого нет (через консоль кластера или отключив сетевую шару), и просто удалите файл 1Cv8.lck вручную.

2. Очистка кэша 1С

  • Часто блокировку вызывает некорректно сохраненный кэш на стороне клиента.
  • Удалите папки кэша по пути: C:\Users\Имя_Пользователя\AppData\Local\1C\1cv8 и Roaming\1C\1cv8.

3. Тестирование и исправление (Т и И)

  • Запустите конфигуратор в монопольном режиме (если пускает).
  • Меню Администрирование -> Тестирование и исправление.
  • Поставьте галочки: Реструктуризация таблиц ИБ, Пересчет итогов, Проверка логической целостности. Это сбросит внутренние флаги блокировок.

Частые причины и как их предотвратить (Best Practices)

1. Антивирусы и Бэкапы (Главная проблема!)

  • Антивирус (Касперский, ESET, Defender) при сканировании монопольно открывает огромный файл 1Cv8.1CD на чтение. Если в этот момент 1С пытается записать в него данные, возникает жесткая блокировка и вылет пользователей.

Решение:

Обязательно добавьте папки с базами 1С, каталоги сервера 1С (srvinfo) и процессы (1cv8.exe, rphost.exe, ragent.exe, dbgs.exe) в исключения антивируса (приоритет: не сканировать при чтении/записи).

  • Настройте расписание бэкапов (Acronis, Veeam, Windows Server Backup) строго на ночное время, когда в 1С нет пользователей.

2. Служба индексации Windows (Windows Search)

  • SearchIndexer.exe часто пытается проиндексировать текст внутри .1CD и .txt файлов.

Решение:

Зайдите в свойства папки с базой 1С -> Дополнительно -> Снимите галочку «Разрешить индексировать содержимое файлов в этой папке в дополнение к свойствам файла».

3. Открытый Конфигуратор или Отладчик (dbgs.exe)

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

4. Регламентные задания и Web-сервисы

  • Зависшее фоновое задание (например, загрузка курсов валют или обмен с сайтом) может бесконечно удерживать блокировку на уровне СУБД. Регулярно мониторите «Активные пользователи» и «Сеансы» в консоли кластера.

Важно:

Принудительное завершение процессов rphost.exe (сервер 1С) или sqlservr.exe (СУБД) через Диспетчер задач приведет к аварийному отключению всех пользователей и возможному повреждению таблиц базы данных. Завершайте только конкретные 1cv8.exe (клиенты) или используйте корректные методы разрыва соединений через PowerShell и консоли!


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


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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