Работа с файловой базой 1С:Предприятие часто сопровождается проблемами, когда пользователи некорректно закрывают программу, оставляя "висящие" сеансы. Эти блокировки мешают другим сотрудникам подключиться к базе, тормозят работу и могут привести к повреждению данных. В отличие от клиент-серверного варианта, где администратор может управлять сеансами через сервер 1С, в файловом режиме инструменты ограничены — но решения существуют.
В этой статье мы разберём все актуальные способы завершения сеансов в файловой базе 1С 8.3 (актуально и для 1С 8.2), включая ручные методы через конфигуратор, командную строку, а также автоматизированные утилиты от 1С и сторонних разработчиков. Особое внимание уделим скрытым блокировкам, которые не отображаются в стандартном списке активных пользователей, но парализуют работу базы. Материал будет полезен администраторам, бухгалтерам и ИТ-специалистам, работающим с 1С в небольших компаниях.
Почему сеансы остаются "висящими" и чем это опасно
Файловая база 1С использует механизм блокировок для предотвращения одновременного изменения данных несколькими пользователями. В нормальном режиме блокировки снимаются автоматически при корректном выходе из программы. Однако есть ситуации, когда сеансы остаются активными:
- 💻 Аварийное завершение работы 1С (зависание, вылет по ошибке, принудительное закрытие через диспетчер задач).
- 🔌 Неожиданное отключение питания или сетевые проблемы (актуально для сетевых папок с базой).
- 🚫 Ошибки в коде конфигурации, ведущие к "подвисанию" транзакций.
- 🔄 Неправильное завершение работы сервера 1С (если используется гибридный режим).
Последствия игнорирования висящих сеансов:
- ❌ Невозможность открыть базу другими пользователями (ошибка "
База данных заблокирована"). - ⚠️ Повреждение данных при принудительном открытии базы через "
Конфигуратор" с игнорированием блокировок. - 🐢 Значительное замедление работы из-за накопления временных файлов блокировок (
.lck).
⚠️ Внимание: Если в вашей компании используется сетевая папка для размещения файловой базы (например, на NAS или общем диске Windows), риск "зависания" сеансов увеличивается в 3-5 раз из-за нестабильности сетевых подключений. В таком случае рекомендуется перейти на локальное размещение базы или использовать 1С:Сервер.
Способ 1: Завершение сеансов через Конфигуратор 1С
Самый безопасный и рекомендуемый 1С метод — использование встроенного Конфигуратора. Он позволяет увидеть все активные сеансы и корректно их завершить без риска повреждения данных.
Инструкция:
- Закройте все экземпляры 1С:Предприятие на компьютере.
- Запустите
1С:Предприятиев режимеКонфигуратор(выберите базу → нажмите кнопку "Конфигуратор" в окне запуска). - В меню выберите
Администрирование → Активные пользователи. - В открывшемся окне вы увидите список всех подключённых пользователей. Сеансы, помеченные как "
Неактивный" или с временем последнего действия более 30 минут, можно завершать. - Выделите проблемный сеанс и нажмите "
Завершить".
Если кнопка "Завершить" неактивна или сеансы не отображаются:
- 🔄 Попробуйте обновить список кнопкой "
Обновить". - 🛠️ Запустите Конфигуратор от имени администратора (правая кнопка мыши → "
Запуск от имени администратора"). - 📂 Убедитесь, что у вас есть права на папку с базой данных (полный доступ).
Закрыть все экземпляры 1С на ПК|Запустить Конфигуратор от имени администратора|Проверить права доступа к папке базы|Обновить список активных пользователей-->
Если сеансы по-прежнему не завершаются, переходите к следующему способу.
Способ 2: Удаление файлов блокировок вручную
Файловая база 1С создаёт временные файлы блокировок с расширением .lck в папке с базой данных. В большинстве случаев их удаление решает проблему, но требует осторожности.
Алгоритм действий:
- Убедитесь, что все пользователи закрыли 1С:Предприятие (включая фоновые процессы в диспетчере задач).
- Откройте папку с базой данных (обычно это
C:\Users\Public\Documents\1C\ИмяБазыили сетевой путь). - Найдите файлы с расширением
.lck(например,1Cv8.lck,1Cv8CD.lck). - Удалите их. Если файлы не удаляются, закройте все процессы
1cv8.exe,1cv8s.exeиrphost.exeчерез диспетчер задач. - Перезапустите 1С и проверьте доступность базы.
| Тип файла блокировки | Описание | Можно ли удалять |
|---|---|---|
1Cv8.lck |
Основной файл блокировки базы | Да |
1Cv8CD.lck |
Блокировка конфигуратора | Да |
*.lgp |
Файлы журналов транзакций | Нет (только при восстановлении) |
*.cd |
Файлы конфигурации | Нет |
⚠️ Внимание: Удаление файлов .lck в момент активной работы пользователей может привести к повреждению данных. Этот метод следует использовать только если вы уверены, что все сеансы были аварийно прерваны, а база не используется.
Что делать, если файлы .lck появляются снова после удаления?
Это означает, что где-то в сети остался активный процесс 1С, подключённый к базе. Проверьте:
1. Все компьютеры в локальной сети на наличие запущенных 1cv8.exe (через диспетчер задач или утилиту PsList из Sysinternals).
2. Сетевые подключения к папке с базой (в Windows — через "Центр управления сетями → Просмотр активных сетевых подключений").
3. Фоновые задачи на сервере (если база размещена на серверной ОС).
В крайнем случае перезагрузите все компьютеры и маршрутизатор, к которому подключена сеть.
Способ 3: Использование утилиты chdbfl.exe
1С предоставляет специальную утилиту chdbfl.exe, которая предназначена для проверки и восстановления файловой базы, но также может помочь с блокировками. Утилита входит в комплект поставки 1С:Предприятие и находится в папке bin каталога установки (обычно C:\Program Files\1cv8\8.3.x.xxx\bin).
Как использовать:
- Закройте все сеансы 1С.
- Откройте командную строку (
Win + R→ введитеcmd). - Перейдите в папку с утилитой:
cd "C:\Program Files\1cv8\8.3.x.xxx\bin" - Выполните команду проверки и восстановления:
chdbfl.exe ПутьКБазе --correctНапример:
chdbfl.exe "C:\Bases\Trade" --correct
Ключи утилиты chdbfl.exe:
- 🔍
--test— только проверка (без исправлений). - 🛠️
--correct— проверка с автоматическим исправлением ошибок. - 📊
--ibstat— вывод статистики по информационной базе.
⚠️ Внимание: Утилита chdbfl.exe не гарантирует снятие всех блокировок, если сеансы активно используют транзакции. В таких случаях может потребоваться перезагрузка компьютера, на котором размещена база.
Через Конфигуратор|Удаление файлов .lck|Утилита chdbfl.exe|Сторонние программы|Другой способ-->
Способ 4: Принудительное завершение через диспетчер задач
Если сеансы не завершаются стандартными методами, можно принудительно закрыть процессы 1С через Диспетчер задач Windows. Этот способ подходит для локальных баз или когда вы уверены, что другие пользователи не работают с базой в данный момент.
Пошаговая инструкция:
- Откройте
Диспетчер задач(Ctrl + Shift + Esc). - Перейдите на вкладку "
Подробности". - Найдите процессы:
1cv8.exe— основной процесс 1С:Предприятие.1cv8s.exe— процесс сервера 1С (если используется).rphost.exe— процесс для работы с расширениями.
- Выделите процесс и нажмите "
Снять задачу". - Повторите для всех процессов 1С.
- 🔄 Перезапустите 1С и проверьте доступность базы.
- 📂 Удалите файлы
.lck, если они остались (см. Способ 2). - ⚡ Быстрое завершение сеансов без ручного поиска файлов.
- 📊 Визуализация всех активных блокировок, включая скрытые.
- 🔄 Автоматическое резервное копирование перед удалением блокировок.
- 💰 Некоторые утилиты платные (например, 1C Session Manager).
- 🛡️ Риск использования несертифицированного ПО (рекомендуется скачивать с проверенных источников, таких как Инфостарт).
- 🔌 Используйте ИБП для компьютера с базой данных. Это защитит от сбоев при отключении электроэнергии.
- 📂 Размещайте базу локально, а не в сетевой папке. Сетевые подключения часто становятся причиной обрыва сеансов.
- 🔄 Настройте автоматическое завершение неактивных сеансов в Конфигураторе (
Администрирование → Настройка системы → Сеансы). - 📋 Регулярно обновляйте платформу 1С. В новых версиях улучшается обработка аварийных ситуаций.
- 🛠️ Используйте скрипты для мониторинга (например, на PowerShell), которые будут оповещать о длительных блокировках.
- 💾 Настройте автоматическое резервное копирование базы (например, через
1cv8.exe DESIGNER /D"ПутьКБазе" /DumpIB "ПутьКБэкапу"). - 📚 Обучите пользователей корректно завершать работу с 1С (не закрывать программу через "
Крест", а использовать "Файл → Выход").
После завершения процессов:
Если процессы 1С не завершаются через Диспетчер задач, используйте утилиту Process Explorer от Microsoft (скачать можно с официального сайта Sysinternals). Она позволяет принудительно закрывать даже "зависшие" процессы, которые не реагируют на стандартные команды.
Способ 5: Сторонние утилиты для управления сеансами
Для автоматизации процесса завершения сеансов можно использовать сторонние утилиты. Они особенно полезны администраторам, которые регулярно сталкиваются с проблемой висящих блокировок.
Популярные инструменты:
| Утилита | Описание | Ссылка (поиск) |
|---|---|---|
| 1C Lock Killer | Простая утилита для удаления файлов блокировок .lck в один клик. Поддерживает пакетную обработку нескольких баз. |
Инфостарт, GitHub |
| Unlocker 1C | Позволяет разблокировать файлы базы, занятые другими процессами. Интегрируется в контекстное меню проводника. | Форум 1С, SoftPortal |
| 1C Session Manager | Продвинутый инструмент для мониторинга и завершения сеансов, включая скрытые блокировки. | Официальный сайт разработчика |
Преимущества сторонних утилит:
Недостатки:
Сторонние утилиты ускоряют процесс завершения сеансов, но не заменяют резервное копирование. Всегда создавайте бэкап базы перед массовым удалением блокировок!
Профилактика висящих сеансов: 7 правил для администраторов
Лучший способ борьбы с блокировками — их предотвращение. Следуйте этим рекомендациям, чтобы минимизировать риск возникновения висящих сеансов:
Если в вашей компании более 10 пользователей 1С, рассмотрите переход на клиент-серверный вариант работы. Он предоставляет больше инструментов для управления сеансами и снижает риск блокировок.
⚠️ Внимание: В версиях 1С:Предприятие 8.3.20+ появилась экспериментальная функция "Автоматическое восстановление после сбоев", которая уменьшает количество висящих сеансов. Чтобы её включить, добавьте в файл1cv8.lst(в папке с базой) строку:AutoRecover=YesОднако эта функция не гарантирует 100% защиты и может конфликтовать с некоторыми конфигурациями.
FAQ: Частые вопросы о завершении сеансов в 1С
Можно ли завершить сеансы удалённо, если база на другом компьютере?
Да, для этого подключитесь к удалённому компьютеру через Удалённый рабочий стол (RDP) или TeamViewer, затем используйте любой из описанных способов (например, удаление .lck-файлов или завершение процессов через диспетчер задач). Также можно использовать PsExec из набора Sysinternals для удалённого выполнения команд:
psexec \\имя_компьютера -u пользователь -p пароль "C:\Program Files\1cv8\8.3.x.xxx\bin\chdbfl.exe" "ПутьКБазе" --correct
Убедитесь, что у вас есть права администратора на удалённом ПК.
Почему после удаления .lck-файлов база всё равно не открывается?
Это может происходить по нескольким причинам:
- Файлы блокировок созданы заново — значит, где-то остался активный процесс 1С (проверьте все компьютеры в сети).
- Повреждение данных — если база была неправильно закрыта, могут потребоваться команды восстановления:
chdbfl.exe ПутьКБазе --correct - Блокировка на уровне ОС — иногда файлы базы занимает антивирус или служба индексирования Windows. Попробуйте временно отключить антивирус.
Если проблема сохраняется, попробуйте открыть базу в Конфигураторе с ключом /Repair:
"C:\Program Files\1cv8\8.3.x.xxx\bin\1cv8.exe" DESIGNER /D"ПутьКБазе" /Repair
Как завершить сеансы, если база размещена на Linux-сервере?
Для баз на Linux используйте следующие команды:
- Найдите процессы 1С:
ps aux | grep 1cv8 - Принудительно завершите их:
kill -9 PID_процесса - Удалите файлы блокировок:
rm /путь/к/базе/*.lck
Убедитесь, что у вас есть права на папку с базой (используйте sudo при необходимости).
Что делать, если после завершения сеансов база открывается в режиме "Монопольный доступ"?
Это означает, что база была открыта с флагом монопольного доступа (например, для обновления конфигурации). Чтобы вернуть обычный режим:
- Закройте все сеансы 1С.
- Удалите файл
1Cv8.lck(если он есть). - Откройте базу в
Конфигуратореи выполните командуАдминистрирование → Тестирование и исправлениес галочкой "Реиндексация таблиц".
Если проблема сохраняется, проверьте файл 1Cv8.1CD на наличие флага монопольного доступа (можно открыть в текстовом редакторе — ищите строку Exclusive=1).
Как автоматизировать завершение висящих сеансов?
Для автоматизации можно использовать:
- Планировщик задач Windows + скрипт на PowerShell:
$lockFiles = Get-ChildItem "ПутьКБазе" -Filter *.lckforeach ($file in $lockFiles) {
Remove-Item $file.FullName -Force
}
- Утилиту 1C Lock Killer с настройкой автоматического запуска по расписанию.
- Собственное решение на 1С — внешняя обработка, которая проверяет активность сеансов и отправляет уведомления администратору.
Важно: Автоматическое удаление блокировок может привести к потере данных, если в момент выполнения скрипта пользователи активно работают с базой. Используйте этот метод только в нерабочее время.