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

Эта статья собрана на основе реальных кейсов администрирования 1С:Предприятие 8.3 (включая актуальные релизы платформы) и учитывает нюансы работы с .1CD-файлами на локальных и сетевых дисках. Мы разберём 5 рабочих методов — от штатных средств до скриптов на PowerShell, а также объясним, почему некоторые популярные советы (вроде ручного удаления 1Cv8.lck) могут привести к потере данных или повреждению базы. Если вам нужно срочно освободить базу для технических работ — читайте далее.

1. Штатный способ: использование «Менеджера кластера» (для 1С 8.3.10+)

Начиная с версии 8.3.10, в платформе появился встроенный инструмент для управления сессиями — Менеджер кластера. Он работает даже в файловом режиме, хотя многие админы об этом не знают. Чтобы им воспользоваться:

  1. Запустите 1С:Предприятие в режиме Конфигуратор от имени администратора.

  2. Перейдите в меню Администрирование → Управление сеансами.

  3. В открывшемся окне вы увидите список активных пользователей с указанием времени подключения, имени компьютера и версии клиента.

  4. Выделите нужные сессии и нажмите Завершить сеанс.

⚠️ Внимание: Если пользователь в этот момент сохранял документ или проводил операцию с транзакцией, данные могут быть утеряны. Всегда предупреждайте сотрудников за 5–10 минут до принудительного разрыва.

💡

Перед использованием Менеджера кластера проверьте, не запущена ли регламентная операция (например, закрытие месяца) — её прерывание может нарушить целостность данных.

2. Утилита rac: командная строка для админов

Утилита rac.exe (Remote Administration Console) входит в комплект поставки 1С:Предприятия и позволяет управлять сессиями из командной строки. Это самый надёжный способ для автоматизации или работы на сервере без графического интерфейса.

Чтобы выгнать всех пользователей из базы C:\Bases\Trade.1CD, выполните:

"C:\Program Files\1cv8\8.3.22.1854\bin\rac.exe" session --disconnect-all --cluster="C:\Bases\Trade.1CD"

Ключи команды:

  • 🔹 --disconnect-all — завершает все сессии.
  • 🔹 --cluster — путь к файловой базе (обязательно в кавычках, если путь содержит пробелы).
  • 🔹 --force — принудительное завершение (используйте только если сессии не закрываются стандартным способом).

⚠️ Внимание: Утилита rac.exe должна запускаться от имени пользователя, имеющего права на файл базы данных (.1CD). Если база расположена на сетевом диске, используйте UNC-путь (например, \\Server\Bases\Trade.1CD).

📊 Какой способ управления сессиями 1С вы используете чаще?
Через Конфигуратор
Утилиту rac.exe
Скрипты PowerShell
Ручное удаление файлов блокировки

3. Ручное удаление файлов блокировки: риски и правила

В сети часто советуют просто удалить файлы 1Cv8.lck и 1Cv8CDB.LCK в папке с базой. Этот метод работает только в крайних случаях и чреват последствиями:

  • 💥 Повреждение данных, если в момент удаления шла запись в базу.
  • 💥 «Подвисание» базы при следующем запуске (потребуется chdbfl.exe для восстановления).
  • 💥 Потеря несохранённых документов у пользователей.

Если вы всё же решились на этот шаг, следуйте алгоритму:

Убедиться, что ни один пользователь не работает с базой (проверьте через Диспетчер задач)

Закрыть все процессы 1cv8.exe, 1cv8s.exe, rmngr.exe>

Создать резервную копию папки с базой

Удалить файлы .lck и .cdb (если есть)

Перезапустить службу Агент сервера 1С:Предприятия (если используется)

-->

⚠️ Внимание: После удаления .lck-файлов база может потребовать проверки целостности. Используйте утилиту chdbfl.exe с ключом -ibcheck:

"C:\Program Files\1cv8\8.3.22.1854\bin\chdbfl.exe" -ibcheck "C:\Bases\Trade.1CD"

4. Скрипты на PowerShell для массового отключения

Если вам нужно регулярно очищать сессии (например, по ночам для резервного копирования), автоматизируйте процесс с помощью PowerShell. Ниже скрипт, который завершает все процессы 1cv8.exe, связанные с конкретной базой:

# Завершение сессий 1С для файловой базы

$basePath = "C:\Bases\Trade.1CD"

$processes = Get-Process | Where-Object { $_.Path -like "1cv8.exe" -and $_.CommandLine -like "$basePath" }

foreach ($process in $processes) {

Write-Host "Завершаю процесс $($process.Id) - $($process.CommandLine)"

$process.Kill()

Start-Sleep -Seconds 1

}

Write-Host "Все сессии для базы $basePath завершены."

Особенности скрипта:

  • 🔧 Работает только если пользователи подключены локально (не через RDP или терминальный сервер).
  • 🔧 Не влияет на фоновые задачи (например, регламентные задания).
  • 🔧 Требует прав администратора.
Как модифицировать скрипт для сетевой базы?

Для сетевой базы (\\Server\Bases\Trade.1CD) замените проверку $_.CommandLine на поиск по UNC-пути. Добавьте перед циклом строку:

$basePath = $basePath.Replace("\", "\\")

Это экранирует обратные слэши для корректной работы с -like.

5. Перезагрузка сервера или компьютера: последний шанс

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

Преимущества Недостатки
✅ 100% эффективность (все сессии будут закрыты) ❌ Простой для всех пользователей сервера
✅ Не требует знания 1С ❌ Возможна потеря несохранённых данных
✅ Работает даже при «зависших» процессах ❌ Может прервать фоновые задачи (например, обмен данными)

⚠️ Внимание: Перед перезагрузкой проверьте, не запущены ли критические операции (например, выгрузка данных в ФНС или обмен с 1С:ЗУП). Используйте команду для отложенной перезагрузки:

shutdown /r /t 300 /c "Перезагрузка сервера для освобождения базы 1С. Сохраните данные!"

Эта команда даст пользователям 5 минут (300 секунд) на сохранение.

Чего делать НЕЛЬЗЯ: распространённые ошибки

Некоторые «советы» из интернета могут нанести базе непоправимый вред. Вот что категорически запрещено:

  • 🚫 Удалять файл базы (.1CD) во время работы пользователей.

    Это приведёт к повреждению структуры данных и потребует восстановления из резервной копии.

  • 🚫 Использовать Taskkill /F /IM 1cv8.exe без фильтрации.

    Команда завершит ВСЕ процессы 1С на сервере, включая фоновые задачи других баз.

  • 🚫 Изменять права доступа к файлу .1CD вручную.

    Это может привести к ошибкам блокировки (Ошибка блокировки данных).

  • 🚫 Игнорировать журнал регистрации (1Cv8Log\).

    Перед принудительным отключением проверьте, не выполняются ли критические операции (например, ЗагрузкаДанныхXML).

💡

Самая частая ошибка — удаление файлов .lck без предварительной остановки процессов 1cv8.exe. Это равносильно «выдёргиванию шнура» из работающего компьютера: данные могут быть повреждены на уровне файловой системы.

FAQ: Частые вопросы по управлению сессиями в 1С файловой

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

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

  1. Восстановить базу из резервной копии.
  2. Запустить chdbfl.exe с ключом -ibrecover.
  3. Если не помогает — создать новую базу и загрузить в неё данные через Выгрузить/Загрузить данные XML.
❓ Можно ли выгнать пользователя из 1С, не прерывая его работу?

Нет. В файловом режиме все сессии равноправны, и их принудительное завершение всегда ведёт к потере несохранённых данных у пользователя. Единственный «мягкий» способ — попросить пользователя сохранить изменения и закрыть программу самостоятельно.

❓ Почему утилита rac.exe не видит мою файловую базу?

Вероятные причины:

  • Указан неверный путь к базе (проверьте регистр и слеши).
  • Утилита запущена от пользователя без прав на файл .1CD.
  • База открыта в монопольном режиме (Конфигуратор с галочкой Монопольно).

Решение: запустите rac.exe от имени администратора и используйте полный UNC-путь (например, \\Server\Share\Base.1CD).

❓ Как запретить пользователям подключаться к базе на время обслуживания?

Создайте в папке с базой файл 1Cv8.1CD (без расширения) с текстом:

[Common]

DenyAccess=1

Это временно заблокирует доступ. После завершения работ удалите файл.

❓ Почему после принудительного отключения пользователи жалуются на ошибку «Файл базы данных повреждён»?

Это означает, что в момент разрыва сессии шла запись в базу. Восстановите целостность:

  1. Запустите chdbfl.exe -ibcheck [путь_к_базе].
  2. Если ошибки найдены — выполните chdbfl.exe -ibrecover [путь_к_базе].
  3. Проверьте логи в 1Cv8Log\ на наличие критических ошибок.

Если повреждения серьёзные — восстанавливайтесь из резервной копии.