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

Многие администраторы ошибочно полагают, что достаточно закрыть программу 1С:Предприятие на рабочей станции — однако это работает только для текущего пользователя. Сеанс остаётся активным в базе, блокируя объекты для других. Особенно критично это проявляется при аварийных ситуациях: например, когда пользователь забыл выйти из системы накануне, а утром база "не открывается" с ошибкой "Файл заблокирован другим пользователем". В этой статье мы разберём все актуальные способы завершения сеансов — от штатных инструментов конфигуратора до малоизвестных трюков с утилитами chdbfl.exe и 1Cv8.exe.

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

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

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

  • 🔹 Отсутствие серверного контроля: Блокировки записываются прямо в файл .1CD, и система не может их "отменить" без явной команды.
  • 🔹 Аварийное завершение 1С: Если программа закрылась через Диспетчер задач или из-за сбоя, сеанс остаётся в базе как "активный".
  • 🔹 Сетевые проблемы: При обрыве связи (например, выдернули кабель) база не получает сигнал о завершении сессии.
  • 🔹 Ошибки в коде конфигурации: Зацикленные транзакции или "подвисшие" операции могут блокировать объекты бесконечно.

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

Предупреждение: если вы регулярно сталкиваетесь с блокировками из-за "забывчивых" пользователей, рассмотрите возможность настройки автоматического завершения неактивных сеансов через регламентные задания (если ваша конфигурация это поддерживает). Однако в стандартных поставках 1С:Бухгалтерия или 1С:УТ такой функции нет — её придётся дорабатывать.

📊 Как часто вам приходится принудительно завершать сеансы в 1С?
Ежедневно
Несколько раз в неделю
Рядом
Очень редко

Способ 1: Завершение сеанса через Конфигуратор

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

Инструкция по шагам:

  1. Откройте базу в режиме Конфигуратор (для этого при запуске 1С:Предприятия удерживайте клавишу Shift).
  2. В меню выберите Администрирование → Активные пользователи.
  3. В списке найдите проблемного пользователя (обратите внимание на столбцы "Компьютер" и "Приложение").
  4. Выделите строку с нужным сеансом и нажмите кнопку "Завершить сеанс".

Если кнопка "Завершить сеанс" неактивна или выдаёт ошибку "Невозможно завершить сеанс", это означает, что:

  • 🔸 Сеанс уже завершён, но информация в списке не обновилась (попробуйте нажать F5).
  • 🔸 Файл базы повреждён — потребуется восстановление (см. раздел про chdbfl).
  • 🔸 У вас недостаточно прав (нужен доступ с полными правами администратора).

Закройте 1С на всех рабочих станциях|Убедитесь, что у вас есть права администратора|Сделайте резервную копию базы|Проверьте свободное место на диске-->

⚠️ Внимание: Если в списке активных пользователей отображается сеанс с пустым именем или компьютером "(неопределён)", это может быть признаком повреждения файла блокировок. В таком случае завершение сеанса через Конфигуратор может усугубить проблему — лучше использовать chdbfl.exe (описано ниже).

Способ 2: Утилита chdbfl.exe — восстановление и очистка блокировок

Утилита chdbfl.exe (входит в комплект поставки 1С:Предприятия) — это "скорая помощь" для файловой базы. Она умеет не только проверять целостность данных, но и сбрасывать блокировки, оставленные "зависшими" сеансами. Этот метод работает даже когда Конфигуратор отказывается завершать сеансы.

Где найти утилиту:

  • 📁 В каталоге установки платформы: C:\Program Files\1cv8\<версия>\bin\chdbfl.exe
  • 📁 В папке с дистрибутивом 1С (если устанавливали с диска).

Команда для сброса блокировок:

chdbfl.exe ПутьКБазе.1CD /F /IBLocks

Где:

  • /F — принудительный режим (без запросов подтверждения).
  • /IBLocks — очистка информационных блокировок (именно этот ключ убирает "зависшие" сеансы).

Пример для базы C:\Bases\Trade.1CD:

chdbfl.exe "C:\Bases\Trade.1CD" /F /IBLocks
Что делать если chdbfl выдаёт ошибку "Файл используется другим процессом"

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

⚠️ Внимание: Утилита chdbfl не всегда корректно работает с базами версий новее 8.3.20. Для актуальных релизов платформы используйте ключ /D для диагностики перед очисткой:

chdbfl.exe ПутьКБазе.1CD /D

Если в отчёте будут ошибки уровня "F" (фатальные), сначала исправьте их с ключом /R, и только потом очищайте блокировки.

Способ 3: Принудительное завершение через командную строку

Когда ни Конфигуратор, ни chdbfl не помогают, можно попробовать "убить" процесс на уровне операционной системы. Этот метод рискован — он может привести к повреждению данных, если в момент завершения шла запись в базу. Используйте его только в крайних случаях!

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

  1. Откройте Диспетчер задач (Ctrl+Shift+Esc).
  2. Найдите процессы 1cv8.exe и 1cv8s.exe, связанные с проблемной базой (можно отсортировать по имени пользователя в столбце "Пользователь").
  3. Завершите процесс кнопкой "Снять задачу".
  4. Проверьте, исчез ли сеанс в списке активных пользователей (через Конфигуратор).

Для автоматизации можно использовать командную строку:

taskkill /F /IM 1cv8.exe /FI "USERNAME eq ИмяПользователя"

Где ИмяПользователя — имя учётной записи Windows, под которой запущен проблемный сеанс.

⚠️ Внимание: Если после принудительного завершения процесса база не открывается с ошибкой "Файл повреждён", немедленно запустите chdbfl.exe с ключом /R для восстановления:

chdbfl.exe ПутьКБазе.1CD /R
💡

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

Способ 4: Перезагрузка сервера (крайняя мера)

Если база расположена на выделенном сервере (или на компьютере, который используется только для 1С), иногда проще перезагрузить машину. Это гарантированно разорвёт все сеансы, но имеет ряд недостатков:

  • 🔌 Прерываются все активные соединения, а не только проблемные.
  • ⏱️ Требуется время на перезагрузку и повторный запуск 1С.
  • 💾 Риск повреждения данных, если в момент перезагрузки шла запись в базу.

Как минимизировать риски:

  1. Убедитесь, что на сервере нет активных регламентных заданий (проверьте через Плановое задание в Windows).
  2. Предупредите всех пользователей о перезагрузке (если сервер используется совместно).
  3. После перезагрузки сразу запустите chdbfl.exe /C для проверки целостности.

⚠️ Внимание: На виртуальных машинах (например, VMware или Hyper-V) вместо полной перезагрузки можно попробовать "мягкий" сброс гостевой ОС через панель управления гипервизором. Это быстрее и безопаснее для железа.

Способ 5: Ручное удаление файлов блокировок (для опытных)

В папке с базой 1С создаются временные файлы блокировок с расширениями .LCK и .CDD. В некоторых случаях их можно удалить вручную, но это крайне рискованный метод — только если вы точно знаете, что делаете!

Какие файлы можно удалять:

РасширениеНазначениеМожно ли удалять
.LCKФайлы блокировок сеансовДа, если сеанс точно завершён
.CDDВременные данные транзакцийНет, только через chdbfl
.1CDОсновной файл базыНикогда!
.lgfЛог транзакцийТолько если база не открывается

Порядок действий:

  1. Закройте все экземпляры 1С на всех компьютерах.
  2. Откройте папку с базой и отсортируйте файлы по дате изменения.
  3. Удалите файлы .LCK, которые не обновлялись более 1 часа.
  4. Перезапустите 1С и проверьте целостность данных.

⚠️ Внимание: Если после удаления .LCK файлов база не открывается с ошибкой "Несоответствие версии", значит, вы удалили файлы активной транзакции. Восстановите их из резервной копии или используйте chdbfl /R.

💡

Удаление файлов .LCK — это "хирургия последней надежды". В 90% случаев достаточно способов 1-3 (Конфигуратор или chdbfl).

Профилактика блокировок: как избежать проблем в будущем

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

  • 🔄 Регулярные резервные копии: Настройте автоматическое копирование базы раз в час (можно через Планировщик заданий Windows).
  • ⏱️ Таймауты неактивности: В некоторых конфигурациях (например, 1С:Управление торговлей) можно настроить автоматическое завершение сеансов через 30-60 минут бездействия.
  • 📂 Разделение базы: Если пользователей больше 5, разделите базу на несколько файлов (например, отдельно для бухгалтерии и склада).
  • 🔒 Права доступа: Ограничьте монопольный режим для рядовых пользователей через настройки ролей.

Для администрирования крупных файловых баз (10+ пользователей) рассмотрите использование утилиты 1C:Server Agent (входит в дистрибутив серверной версии). Она позволяет:

  • Мониторить активные сеансы в реальном времени.
  • Настраивать автоматическое завершение "подозрительных" соединений.
  • Вести журнал блокировок для анализа проблем.

⚠️ Внимание: Если ваша база превысила 4 ГБ, файловый режим становится крайне нестабильным. В этом случае миграция на 1С:Сервер (или хотя бы на PostgreSQL) — не рекомендация, а необходимость.

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

Можно ли завершить сеанс пользователя, если база открыта в монопольном режиме?

Да, но только через chdbfl.exe /IBLocks или принудительное завершение процесса 1cv8.exe. Конфигуратор в монопольном режиме блокирует все внешние вмешательства.

После завершения сеанса через chdbfl база не открывается. Что делать?

Запустите утилиту с ключом восстановления: chdbfl.exe ПутьКБазе.1CD /R. Если не поможет — восстанавливайте из резервной копии.

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

В Конфигураторе откройте Администрирование → Активные пользователи. Если Конфигуратор не открывается — проверьте файлы .LCK в папке базы: их имена содержат IP или имя компьютера блокирующего пользователя.

Можно ли завершить сеанс на удалённом компьютере через RDP?

Да, подключитесь к удалённому ПК через Удалённый рабочий стол и завершите процесс 1cv8.exe через Диспетчер задач. Альтернатива — команда taskkill по сети (требует прав администратора).

Почему после перезагрузки сервера блокировки остаются?

Это признак повреждения файла базы. Скорее всего, при аварийном завершении не были корректно записаны данные транзакций. Используйте chdbfl /R или восстанавливайте из бэкапа.