Зависшие сеансы в 1С:Предприятие — одна из самых распространённых проблем при работе с файловыми базами. Они блокируют доступ к данным, тормозят работу программы и могут привести к потере несохранённых изменений. Особенно часто это происходит при аварийном завершении программы, сбоях электропитания или некорректном выходе пользователей из системы.

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

Почему возникают зависшие сеансы в 1С

Основная причина — некорректное завершение работы с базой. Это может произойти из-за:

  • 🔌 Внезапного отключения электроэнергии или перезагрузки компьютера.
  • 🖥️ Аварийного закрытия 1С:Предприятия через диспетчер задач.
  • 🌐 Проблем с сетевым подключением (если база расположена на сетевом диске).
  • 🛠️ Ошибок в самой платформе , особенно в устаревших версиях (8.2 и ниже).
  • 👥 Одновременного открытия базы в разных режимах (например, в конфигураторе и предприятии).

В файловой базе информация о активных сеансах хранится в служебных файлах с расширением .LCK (от англ. lock — блокировка). Эти файлы создаются в папке с базой данных и должны автоматически удаляться при корректном выходе. Если этого не происходит, база «зависает» в состоянии занятости, даже если реальных пользователей в ней нет.

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

Способ 1: Удаление через конфигуратор 1С

Самый безопасный и рекомендуемый метод — использование встроенного конфигуратора. Он позволяет увидеть все активные сеансы и принудительно их завершить.

Инструкция:

  1. Закройте все экземпляры 1С:Предприятия, если они открыты.
  2. Запустите 1С:Предприятие в режиме конфигуратора (выберите базу, нажмите Конфигуратор).
  3. В меню конфигуратора перейдите в Администрирование → Активные пользователи.
  4. В открывшемся окне вы увидите список всех подключённых сеансов. Зависшие обычно отмечены статусом Не отвечает или имеют пустое поле в колонке Компьютер.
  5. Выделите проблемный сеанс и нажмите Завершить (или клавишу Delete).
  6. Подтвердите действие в диалоговом окне.

Если сеанс не завершается через интерфейс, попробуйте обновить список (кнопка Обновить) и повторить попытку. В 90% случаев этого достаточно для разблокировки базы.

Убедитесь, что в сеансе нет несохранённых данных|Проверьте, не работает ли другой пользователь с этой же базой|Сделайте резервную копию базы (на случай сбоя)|Запомните имя пользователя зависшего сеанса для анализа причин-->

💡

Если кнопка Завершить неактивна, попробуйте запустить конфигуратор от имени администратора (правая кнопка мыши → Запуск от имени администратора).

Способ 2: Ручное удаление файлов блокировки (.LCK)

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

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

  1. Закройте все программы, которые могут работать с базой (включая фоновые процессы).
  2. Перейдите в папку с вашей базой данных. Обычно это:
    C:\Users\Public\Documents\1C\ИмяВашейБазы\

    или сетевой путь, если база хранится на сервере.

  3. Найдите файлы с расширением .LCK. Их имена обычно соответствуют именам пользователей или сеансов, например:
    1Cv8.lck
    

    1Cv8_Usr_ИвановИИ.lck

  4. Удалите эти файлы. Если система не даёт удалить (файл занят), перезагрузите компьютер и повторите попытку.
  5. Попробуйте снова открыть базу в режиме 1С:Предприятие.

Если файлов .LCK нет, но база всё равно блокирована, проверьте наличие скрытых файлов (включите отображение скрытых элементов в проводнике Windows). Иногда блокировки создаются в виде временных файлов с расширением .TMP.

⚠️ Внимание: Никогда не удаляйте файлы 1Cv8.1CD или 1Cv8.DT — это основные файлы базы данных! Их повреждение приведёт к полной потере информации.
Что делать, если файлы .LCK появляются снова после удаления?

Это означает, что где-то в системе остался «висячий» процесс 1С. Проверьте диспетчер задач на наличие процессов 1cv8.exe, 1cv8s.exe или ragent.exe и завершите их принудительно. Также причиной может быть антивирус, блокирующий доступ к файлам — добавьте папку с базой в исключения.

Способ 3: Использование утилиты chdbfl.exe

chdbfl.exe — стандартная утилита для проверки и восстановления файловой базы . Она входит в комплект поставки платформы и может помочь разблокировать базу, если зависшие сеансы связаны с повреждением служебных файлов.

Как использовать:

  1. Найдите утилиту в папке установки . Обычно это:
    C:\Program Files (x86)\1cv8\версия_плаформы\bin\chdbfl.exe

    Например, для версии 8.3.22 путь будет:

    C:\Program Files (x86)\1cv8\8.3.22.1234\bin\chdbfl.exe
  2. Запустите командную строку от имени администратора.
  3. Перейдите в папку с утилитой или укажите полный путь к ней в команде.
  4. Выполните команду для проверки и исправления базы:
    chdbfl.exe ПутьКБазе --correct

    Пример:

    chdbfl.exe "C:\Bases\MyBase\" --correct
  5. Дождитесь завершения процесса. Утилита выведет отчёт о найденных и исправленных ошибках.

Если утилита найдёт повреждённые блокировки, она автоматически их сбросит. После этого база должна открыться без ошибок. Обратите внимание, что chdbfl.exe не работает с базами, открытыми в монопольном режиме.

Ключ команды Описание
--correct Исправляет найденные ошибки (включая блокировки).
--test Только проверка без исправлений.
--reindex Перестроение индексов (полезно при медленной работе базы).
--rebuild Полная перестройка таблиц (длительная операция).

Способ 4: Принудительное завершение процессов 1С

Иногда зависшие сеансы держатся из-за «забытых» процессов в памяти компьютера. Их можно найти и завершить через диспетчер задач или командную строку.

Пошаговая инструкция:

  1. Откройте Диспетчер задач (Ctrl+Shift+Esc).
  2. Перейдите на вкладку Подробности (или Процессы в Windows 10/11).
  3. Найдите процессы с именами:
    • 1cv8.exe — основной процесс 1С:Предприятия.
    • 1cv8s.exe — процесс сервера 1С (если используется).
    • ragent.exe — агент рассылки отчётов.
  • Выделите процесс, связанный с вашей базой (можно определить по пути в колонке Командная строка), и нажмите Завершить задачу.
  • Повторите для всех подозрительных процессов.
  • Если диспетчер задач не помогает (процесс не завершается), используйте командную строку:

    taskkill /F /IM 1cv8.exe

    Ключ /F означает принудительное завершение, а /IM — фильтр по имени процесса.

    ⚠️ Внимание: Принудительное завершение процессов может привести к потере несохранённых данных в открытых документах. Используйте этот метод только если другие способы не сработали.

    Раз в неделю или чаще|Раз в месяц|Редко, несколько раз в год|Никогда не сталкивался|Не знаю, что это такое-->

    Способ 5: Перезагрузка сервера или компьютера

    Если база расположена на сервере или сетевом хранилище, иногда проще перезагрузить само устройство. Это гарантированно сбросит все блокировки, но требует согласования с другими пользователями.

    Когда это работает:

    • 🖥️ База хранится на файловом сервере (например, под управлением Windows Server или Linux).
    • 🔌 Зависшие сеансы связаны с сетевыми подключениями (например, при работе через SMB).
    • 🔄 Другие методы не помогают, а доступ к серверу у вас есть.

    Перед перезагрузкой:

    1. Убедитесь, что на сервере нет критичных задач.
    2. Предупредите пользователей о временном отключении.
    3. Сохраните все открытые документы на клиентских машинах.

    После перезагрузки сервера все сетевые блокировки будут сброшены, и база должна открыться без ошибок. Если проблема повторяется регулярно, проверьте настройки сетевого доступа или рассмотрите переход на клиент-серверный вариант .

    💡

    Перезагрузка сервера — крайний метод. Используйте его только если другие способы не сработали, так как это прерывает работу всех пользователей.

    Профилактика зависших сеансов в 1С

    Чтобы минимизировать риск появления зависших сеансов, следуйте этим рекомендациям:

    • 🔄 Регулярно обновляйте платформу 1С — в новых версиях исправлены многие ошибки с блокировками.
    • ⚡ Используйте источники бесперебойного питания (ИБП) для серверов и рабочих станций.
    • 📂 Настройте автоматическое резервное копирование базы (например, через 1Cv8.DT или сторонние утилиты).
    • 👥 Ограничьте количество одновременно работающих пользователей в файловой базе (оптимально — до 5-10).
    • 🛡️ Исключите папку с базой из проверки антивирусом (но не отключайте защиту полностью!).
    • 📋 Ведите журнал ошибок — это поможет выявить закономерности (например, сеансы зависают в определённое время суток).

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

    В файловой базе 1С версий ниже 8.3.10 отсутствует механизм автоматической очистки "мертвых" блокировок. Если вы используете устаревшую платформу, обновление до актуальной версии может решить проблему раз и навсегда.

    FAQ: Частые вопросы о зависших сеансах 1С

    Можно ли удалить файлы .LCK, если база открыта в монопольном режиме?

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

    Почему после удаления .LCK файлов база всё равно не открывается?

    Возможные причины:

    1. Файлы блокировки созданы заново — проверьте процессы в диспетчере задач.
    2. Повреждены основные файлы базы (1Cv8.1CD) — запустите chdbfl.exe --correct.
    3. Недостаточно прав доступа — запустите конфигуратор от имени администратора.

    Как узнать, какой пользователь заблокировал базу?

    Откройте файл .LCK в блокноте — иногда в нём содержится имя пользователя или компьютера. Также информацию можно увидеть в конфигураторе (Администрирование → Активные пользователи).

    Что делать, если после сброса блокировок пропало несохранённое изменение?

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

    Можно ли автоматизировать очистку зависших сеансов?

    Да, для этого можно:

    • Написать bat-скрипт, который будет удалять файлы .LCK старше определённого времени.
    • Использовать регламентное задание в для проверки активных сеансов.
    • Настроить планировщик задач Windows на перезагрузку сервера в нерабочее время.

    Пример скрипта для удаления блокировок:

    @echo off
    

    del /q "C:\Bases\MyBase\*.LCK"

    echo Блокировки удалены