Зависший пользователь в файловой 1С: как освободить базу без сервера
Содержание
Сбросить сеанс файловой базы 1С кнопкой «Удалить сеанс», как в клиент-серверной версии, не получится: консоли кластера у файловой базы нет. Сеанс живёт, пока процесс 1cv8.exe или 1cv8c.exe держит открытым файл 1Cv8.1CD. Значит, чтобы завершить сеанс, нужно закрыть этот процесс или этот открытый файл. Мягкий путь — блокировка работы пользователей средствами самой программы, жёсткий — taskkill на компьютере пользователя или закрытие файла на сервере, где лежит база.
Частое заблуждение — сразу удалять «файлы блокировок» в каталоге базы. Пока чужой процесс держит 1Cv8.1CD, это ничего не даст, а при живом подключении можно получить повреждённую базу. Удаление 1Cv8.1CL — последний шаг, а не первый.
Почему сеанс в файловой базе «зависает»
В файловом варианте нет сервера, который следит за сеансами. Каждый клиент сам открывает файл базы по сети или локально. Поэтому «зависший» сеанс — это почти всегда одно из трёх: живой процесс, который никто не закрыл, открытый дескриптор на файловом сервере или просто непонимание, кто именно подключён.
Типичные источники:
- 🖥️ Свёрнутая 1С на чужом компьютере. Бухгалтер ушёл домой, программа открыта. Сеанс полностью живой.
- 🔌 Обрыв сети или «уснувший» ноутбук. Процесса на клиенте уже нет, а файловый сервер ещё какое-то время считает файл открытым.
- 🧑💻 Терминальный сервер . Пользователь закрыл окно RDP крестиком, сессия Windows осталась в состоянии «Отключено», вместе с ней и 1С.
- 🔗 COM-соединение. Внешняя программа (обмен, интеграция, скрипт отчётности) подключилась к базе через
V83.COMConnectorи не отключилась. - 🌐 Публикация на веб-сервере. Базу открывают через браузер или тонкий клиент по http — тогда файл держит процесс Apache или IIS, а не компьютер пользователя.
- 💾 Резервное копирование
и антивирус. Программа бэкапа копирует
1Cv8.1CDи держит его открытым на время копирования.
Зачем вообще сбрасывать сеанс? Чаще всего нужен монопольный режим: обновить конфигурацию
, загрузить .dt, запустить тестирование и исправление. Пока в базе есть хоть одно подключение, эти операции не начнутся.
Сначала выясните, кто подключён к базе
Не гадайте, а посмотрите список активных пользователей. Это занимает минуту и сразу подсказывает способ.
В Конфигураторе: меню Администрирование → Активные пользователи.
В режиме 1С:Предприятие: Все функции → Стандартные → Активные пользователи. Если пункта «Все функции» нет, включите его: Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”».
В списке видно:
| Колонка | Что даёт |
|---|---|
| Пользователь | Кому звонить или писать |
| Компьютер | Где закрывать процесс |
| Приложение | Тонкий клиент, толстый клиент, Конфигуратор, COM-соединение, фоновое задание |
| Начало работы | Как давно висит сеанс |
Если в колонке «Компьютер» стоит имя веб-сервера или терминального сервера, а не рабочего места, ищите процесс именно там.
Способ 1. Блокировка работы пользователей средствами программы
Самый безопасный вариант для типовых конфигураций на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11. Программа сама предупреждает пользователей и закрывает их сеансы, данные в открытых документах не теряются без предупреждения.
Через интерфейс
- Войдите под пользователем с полными правами.
- Откройте
Администрирование → Обслуживаниеи найдите ссылку «Блокировка работы пользователей». В старых релизах раздел назывался «Поддержка и обслуживание». Второй путь, который работает везде:Все функции → Обработки → Блокировка работы пользователей. - Напишите текст сообщения: «Обновление базы с 18:00, сохраните документы».
- Укажите время начала и окончания блокировки.
- Задайте код разрешения, например
12345. С ним вы сами сможете войти в заблокированную базу. - Нажмите «Установить блокировку».
Пользователи получат предупреждение. К моменту начала блокировки их сеансы закроются, а новые входы будут запрещены.
Через командную строку
Удобно, когда войти в базу интерактивно не получается или работу нужно запускать по расписанию. Параметр /C передаёт команду программе, /UC — код разрешения:
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"12345"
После обслуживания снимите блокировку той же командой с другим параметром:
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"РазрешитьРаботуПользователей" /UC"12345"
Номер версии в пути замените на свой — посмотрите папку C:\Program Files\1cv8\.
Блокировка не поможет, если клиент «завис» намертво: программа на чужом компьютере не отвечает и не может обработать команду закрыться. Такой сеанс снимается способами 2 и 3.
Не забудьте снять блокировку после работ. Иначе утром бухгалтерия не войдёт в программу, а код разрешения будет только у вас.
Способ 2. Завершить процесс 1С на компьютере пользователя
Если человек недоступен, а его компьютер включён, процесс можно закрыть удалённо. Нужны права администратора на этом компьютере.
Несохранённые изменения пользователя пропадут. Если он редактировал документ, правки не запишутся.
Обычное рабочее место
Сначала проверьте, что процесс есть:
tasklist /S PC-BUH2 /FI "IMAGENAME eq 1cv8c.exe"
Затем завершите его:
taskkill /S PC-BUH2 /IM 1cv8c.exe /F
Тонкий клиент — это 1cv8c.exe, толстый клиент и Конфигуратор — 1cv8.exe. Если не знаете, какой запущен, выполните команду для обоих имён.
Терминальный сервер
На терминальном сервере 1С запущена у многих сразу. Команда taskkill /IM 1cv8c.exe /F без фильтра закроет программу у всех. Ограничьте её пользователем:
tasklist /FI "IMAGENAME eq 1cv8c.exe" /V
taskkill /FI "USERNAME eq ivanova" /IM 1cv8c.exe /F
Другой вариант — завершить отключённую сессию Windows целиком: Диспетчер задач → Пользователи, правой кнопкой по пользователю → «Выйти». С сессией уйдут и все её программы.
Чтобы отключённые RDP-сессии не держали базу ночами, задайте в групповой политике лимит для отключённых сеансов служб удалённых рабочих столов. Тогда Windows сама завершит брошенную сессию.
Способ 3. Закрыть открытый файл базы на файловом сервере
Это главный приём для «призраков», когда в списке активных пользователей сеанс есть, а процесса на компьютере уже нет. Обычно так бывает после обрыва сети или спящего ноутбука. Файловый сервер держит открытым 1Cv8.1CD от имени отвалившегося клиента.
Через оснастку Windows
- На сервере, где лежит каталог базы, запустите
fsmgmt.msc. - Откройте
Общие папки → Открытые файлы. - Найдите строку с путём к
1Cv8.1CDвашей базы. В колонке видно имя пользователя. - Правой кнопкой → «Закрыть открытый файл».
Через PowerShell
Тот же результат одной командой, удобно на Server Core или по удалённой сессии:
Get-SmbOpenFile | Where-Object { $_.Path -like '*\Buh\1Cv8.1CD' } |
Select-Object FileId, ClientComputerName, ClientUserName, Path
Close-SmbOpenFile -FileId 1234567890 -Force
Вместо 1234567890 подставьте FileId из первой команды. Классический вариант без PowerShell — net file для списка и net file <ID> /close для закрытия.
Закрывайте дескриптор только того пользователя, которого точно нет в программе. Если закрыть файл у живого сеанса, его 1С получит ошибку чтения базы, а незавершённая запись может оставить ошибки в 1Cv8.1CD.
Если база лежит не на Windows-сервере, а на NAS, ищите в его веб-интерфейсе раздел со списком подключений по SMB. Названия у разных производителей свои.
Способ 4. Остаточный файл блокировки и проверка базы
Если подключений точно нет — список активных пользователей пуст, процессов нет, на сервере файл не открыт, — а база всё равно не даёт монопольный режим, посмотрите каталог базы.
Что лежит в каталоге
| Файл | Назначение | Можно ли удалять |
|---|---|---|
1Cv8.1CD | Сама база | Никогда |
1Cv8.1CL | Файл блокировки, создаётся при подключении | Только когда в базе никого нет |
1Cv8tmp.1CD | Временный файл | Только когда в базе никого нет |
Папка 1Cv8Log | Журнал регистрации | Не связана с сеансами, не трогать |
Перед любыми действиями с файлами скопируйте весь каталог базы. Копия 1Cv8.1CD — единственная страховка, если что-то пойдёт не так.
Порядок такой:
- Убедитесь, что бэкап и антивирус сейчас не работают с каталогом. Сканирование большого
1Cv8.1CDможет занимать десятки минут. - Скопируйте каталог базы в другое место.
- Удалите
1Cv8.1CLи1Cv8tmp.1CD, если они остались. При следующем подключении платформа создаст их заново. - Откройте базу в Конфигураторе и повторите операцию, ради которой нужен был монопольный режим.
Если Windows отказывается удалить 1Cv8.1CL с сообщением, что файл занят, значит, подключение всё ещё есть. Вернитесь к способу 3.
chdbfl.exe: когда сеанс оборвали жёстко
Утилита chdbfl.exe не сбрасывает сеансы. Она проверяет физическую целостность файла 1Cv8.1CD. Запускайте её, если после принудительного завершения процесса или закрытия файла база открывается с ошибками.
- Убедитесь, что в базе нет ни одного подключения, и сделайте копию каталога.
- Запустите
C:\Program Files\1cv8\<версия>\bin\chdbfl.exe. - Укажите путь к
1Cv8.1CD. - Поставьте флажок исправления обнаруженных ошибок и запустите проверку.
На базе в несколько гигабайт проверка идёт от нескольких минут до часа. После неё откройте Конфигуратор и при необходимости выполните Администрирование → Тестирование и исправление — это уже логическая проверка данных, а не файла.
Если база опубликована на веб-сервере или она не файловая
Веб-публикация файловой базы
Когда пользователи работают через браузер или подключаются к базе по http, файл 1Cv8.1CD открывает не их компьютер, а процесс веб-сервера. В списке активных пользователей в колонке «Компьютер» будет имя веб-сервера.
- IIS: диспетчер IIS → «Пулы приложений» → пул публикации → «Перезапустить» («Recycle»).
- Apache: перезапуск службы Apache в
services.msc.
Перезапуск оборвёт сеансы всех, кто работает через эту публикацию. Делайте это вне рабочего времени или после предупреждения.
Служба «Агент сервера 1С:Предприятия»
Эта служба относится только к клиент-серверному варианту. У файловой базы её нет, и перезапуск агента на соседнем сервере никак не повлияет на файловую базу .
Проверьте, какая у вас база: в окне запуска выделите её и посмотрите строку внизу. File="D:\Bases\Buh" — файловая. Srvr="srv1c";Ref="buh" — клиент-серверная. Во втором случае сеанс снимается в консоли администрирования серверов: кластер → Информационные базы → база → Сеансы → правой кнопкой по сеансу → «Удалить». Перезапуск агента там — крайняя мера, она завершает сеансы во всех базах кластера.
Какой способ выбрать и чего не делать
| Способ | Когда применять | Риски |
|---|---|---|
| Блокировка работы пользователей | Плановые работы, пользователи на месте | Почти нет; не закрывает зависший клиент |
taskkill на клиенте | Пользователь недоступен, компьютер включён | Потеря несохранённых правок |
| Закрыть файл на сервере | Сеанс-«призрак», процесса нет | Ошибки в файле, если закрыть живой сеанс |
Удалить 1Cv8.1CL | Подключений нет, а блокировка осталась | Повреждение базы при живом подключении |
| Перезапуск веб-сервера | База опубликована по http | Обрыв всех веб-сеансов |
chdbfl.exe | После жёсткого обрыва база с ошибками | Нужна копия: исправление необратимо |
Ошибки, которые делают чаще всего
- ❌ Чистят кэш пользователя, чтобы «сбросить сеанс». Папки в
%APPDATA%\1C\1cv8хранят кэш конфигурации на компьютере. На подключения к базе их очистка не влияет. - ❌ Перезагружают файловый сервер посреди дня. Сеансы, конечно, пропадут, но у всех сразу и с риском оборванной записи.
- ❌ Забывают про COM-соединения. Обмен с сайтом или банковской программой, запущенный по расписанию, снова подключится через пять минут. Остановите задачу в планировщике Windows или в той программе, которая подключается.
- ❌ Не снимают блокировку после работ. Утром никто не может войти, а код разрешения знает только тот, кто её ставил.
Частые вопросы
Можно ли завершить чужой сеанс файловой базы прямо из списка активных пользователей?
Сколько ждать, пока сеанс-«призрак» исчезнет сам?
fsmgmt.msc, и подключение исчезнет сразу.Почему после перезагрузки компьютера пользователя сеанс всё ещё в списке?
1Cv8.1CD в открытых файлах на сервере и закройте запись этого пользователя.Что делать, если код разрешения от блокировки забыли?
Опасно ли завершать сеанс Конфигуратора?
.dt — да, база может остаться в неконсистентном состоянии. Завершайте Конфигуратор, только убедившись, что операция не выполняется, и держите копию каталога базы.