Зависший сеанс в файловой 1С 8.3: как отключить всех и освободить базу
Содержание
Чтобы выкинуть пользователя из файловой базы 1С, начните с мягкого способа: включите блокировку работы пользователей в самой программе (Администрирование → Обслуживание). Все сеансы получат предупреждение и закроются сами. Если сеанс завис и не отвечает, принудительно отключать его придётся средствами Windows: закрыть открытый файл 1Cv8.1CD на сервере или завершить процесс 1cv8c.exe / 1cv8.exe на компьютере пользователя.
Консоль кластера серверов здесь не поможет: у файловой базы нет кластера и рабочих процессов. Сеанс — это просто программа на чужом компьютере, которая держит открытым файл базы по сети. Отсюда и методы: через 1С, через сеть, через процессы.
| Способ | Когда подходит | Что теряет пользователь |
|---|---|---|
| Блокировка сеансов в 1С | Сеансы живые, отвечают | Ничего, работа закрывается штатно |
| Закрыть открытый файл на сервере | Пользователь недоступен, ПК далеко | Несохранённые изменения |
taskkill на ПК пользователя или терминале | Окно 1С висит «Не отвечает» | Несохранённые изменения |
Удаление 1Cv8.1CL | Все процессы закрыты, а база «занята» | Ничего, если сеансов действительно нет |
Откуда берутся зависшие сеансы в файловой базе
Файловая база — это папка с файлом 1Cv8.1CD. Каждый, кто запустил 1С, открывает этот файл по сети и держит его открытым до выхода. Рядом платформа ведёт служебный файл блокировки 1Cv8.1CL.
Типичные ситуации, когда сеанс «висит»:
- 🔌 у пользователя пропала сеть или ноутбук ушёл в сон с открытой 1С;
- 💻 программа зависла на долгом отчёте и не реагирует;
- 🖥️ на терминальном сервере пользователь закрыл окно RDP, а не вышел — сеанс Windows и 1С остались работать;
- 🚪 сотрудник ушёл домой и не закрыл программу.
Обычно это вскрывается при обновлении конфигурации. Конфигуратор пишет:
Ошибка установки монопольного режима. Установка монопольного режима невозможна. Есть другие сеансы работы с информационной базой.
Монопольный режим нужен для обновления структуры базы, загрузки .dt, тестирования и исправления. Пока хоть один сеанс открыт, эти операции не запустятся.
Как увидеть, кто сейчас в базе
Сначала выясните, кого именно отключать. Есть два места.
В пользовательском режиме. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте раздел Администрирование → Обслуживание и найдите ссылку «Активные пользователи». Список покажет имя пользователя 1С, компьютер, время начала сеанса и приложение (тонкий клиент, конфигуратор, фоновое задание).
В конфигураторе. Меню Администрирование → Активные пользователи. Список тот же, но без лишней обвязки.
Запишите имя компьютера из колонки «Компьютер». Оно понадобится, если пользователя придётся отключать через Windows.
В клиент-серверной базе из этого же списка сеанс завершают одной командой через кластер. В файловой базе такого рычага у платформы нет: список только показывает, кто подключён.
Способ 1. Блокировка работы пользователей внутри 1С
Это штатный механизм типовых конфигураций, и в файловом режиме он работает. Платформа рассылает открытым сеансам сообщение, а через заданное время клиентские приложения сами завершают работу.
- Откройте
Администрирование → Обслуживаниеи найдите ссылку «Блокировка работы пользователей». - Установите флажок блокировки.
- Укажите время начала, например через 5 минут. Окончание можно не задавать — снимете вручную.
- Напишите сообщение: «Обновление базы. Сохраните документы и выйдите до 18:05».
- Задайте код разрешения, например
UPD2024. С ним вы сами войдёте в заблокированную базу. - Нажмите «Записать».
Пользователи увидят предупреждение. Когда наступит время блокировки, их сеансы закроются. Новый вход будет запрещён, пока вы не снимете флажок.
Войти администратору в заблокированную базу можно с ключом /UC:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /UC"UPD2024"
Блокировка закрывает только «живые» сеансы. Программа, которая висит или потеряла сеть, сообщение не получит и сама не выйдет. Такой сеанс снимают способами 2 и 3.
Блокировка без входа в пользовательский режим
Конфигурации на БСП принимают команду запуска ЗавершитьРаботуПользователей. Её удобно ставить в bat-файл ночного обновления:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"UPD2024"
Обратная команда — /C"РазрешитьРаботуПользователей". После обновления не забудьте её выполнить, иначе утром никто не войдёт.
Способ 2. Закрыть файл базы, открытый по сети
Это главный приём для файловой базы, о котором часто забывают. Раз пользователь держит 1Cv8.1CD открытым по сети, сервер, где лежит папка с базой, видит это подключение и умеет его разорвать.
Перед этим предупредите людей: всё, что они не записали, пропадёт. Делайте это вне рабочего пика.
Через оснастку Windows
- На сервере с папкой базы откройте
compmgmt.msc(«Управление компьютером»). - Перейдите в
Служебные программы → Общие папки → Открытые файлы. - Отсортируйте по столбцу «Открытый файл» и найдите строки с путём к
1Cv8.1CDнужной базы. - Столбец «Пользователь» покажет учётную запись Windows. Правой кнопкой по строке → «Закрыть открытый файл».
У пользователя 1С выдаст ошибку и закроется. База освободится.
Как понять, чей это файл
В «Открытых файлах» видна учётная запись Windows и компьютер, а не имя пользователя 1С. Сопоставить их просто:
- В списке активных пользователей 1С посмотрите колонку «Компьютер» у нужного сеанса.
- В PowerShell-выводе ниже ищите тот же компьютер в поле
ClientComputerName(там бывает IP-адрес — сверьте его черезping -a). - Если в офисе общие учётки Windows вроде
buh, ориентируйтесь только на компьютер.
Отдельный случай — открытый и забытый конфигуратор. Он держит базу так же, как обычный клиент, и закрывается теми же способами. Но если в нём остались несохранённые правки конфигурации, они пропадут. Сначала позвоните тому, кто в нём работал.
Через командную строку
Команда net file выводит список открытых файлов с номерами:
net file
net file 1342 /close
В PowerShell удобнее фильтровать сразу по базе:
Get-SmbOpenFile | Where-Object Path -like "*Bases\Buh\1Cv8.1CD" |
Select-Object FileId, ClientComputerName, ClientUserName, Path
Get-SmbOpenFile | Where-Object Path -like "*Bases\Buh\1Cv8.1CD" |
Close-SmbOpenFile -Force
Первая команда показывает, кто держит файл. Вторая закрывает все такие подключения без вопросов. Запускайте PowerShell от имени администратора.
Если база лежит не на Windows-сервере, а на сетевом хранилище (NAS), открытые файлы смотрят в его веб-интерфейсе — раздел про SMB-подключения или активные сеансы.
Способ 3. Завершить процесс 1С на компьютере пользователя
Когда окно 1С висит с надписью «Не отвечает», надёжнее завершить сам процесс. Имена процессов:
1cv8c.exe— тонкий клиент, обычный режим работы бухгалтера;1cv8.exe— толстый клиент и конфигуратор.
На своём компьютере или удалённо по сети
Локально — Диспетчер задач, вкладка «Подробности», процесс 1cv8c.exe → «Снять задачу».
Удалённо, если у вас права администратора на компьютере пользователя:
tasklist /S BUH-PC03 /FI "IMAGENAME eq 1cv8c.exe"
taskkill /S BUH-PC03 /IM 1cv8c.exe /F
Имя BUH-PC03 берите из колонки «Компьютер» в списке активных пользователей.
На терминальном сервере
Тут на одном сервере работает десяток людей, и taskkill /IM 1cv8c.exe без фильтра выкинет всех. Фильтруйте по пользователю:
tasklist /FI "IMAGENAME eq 1cv8c.exe" /V
taskkill /FI "USERNAME eq ivanova" /IM 1cv8c.exe /F
Ключ /V выводит столбец с именем пользователя Windows. Если завис весь RDP-сеанс, найдите его номер и завершите целиком:
query session
logoff 3
logoff закрывает у пользователя всё: 1С, Excel, почту. Делайте это, только когда сеанс брошен.
Способ 4. Файл блокировки 1Cv8.1CL
Бывает, что все разошлись, процессов нет, открытых файлов нет, а 1С по-прежнему считает базу занятой. Виноват служебный файл 1Cv8.1CL в папке базы: после аварийного выхода он мог остаться с записью о сеансе.
Порядок действий:
- Ещё раз проверьте
Открытые файлына сервере. Если файл1Cv8.1CDкем-то открыт, удалять ничего нельзя. - Убедитесь, что не запущены регламентные задания через отдельный сеанс и что базу не открывает веб-публикация (у опубликованной файловой базы файл держит служба веб-сервера — Apache или IIS).
- Скопируйте
1Cv8.1CLв сторону на случай ошибки. - Удалите
1Cv8.1CLиз папки базы. - Запустите конфигуратор. Платформа создаст файл блокировки заново.
Никогда не удаляйте и не переименовывайте сам 1Cv8.1CD — это и есть база.
Если удалить 1Cv8.1CL, пока кто-то реально работает, два сеанса перестанут видеть друг друга. Это прямой путь к повреждению базы. Поэтому пункт 1 обязателен.
Если база опубликована на веб-сервере, освободить её поможет перезапуск службы (Apache2.4 или пула приложений IIS). Все веб-пользователи при этом отключатся.
Проверка базы после принудительного отключения
Резкий обрыв сеанса во время записи документа может оставить в файле базы мусор. Если отключение прошло во время проведения, закрытия месяца или загрузки данных, проверьте базу.
Сначала — резервная копия. В конфигураторе: Администрирование → Выгрузить информационную базу. Или просто скопируйте папку с базой, пока в ней никого нет.
Физическая проверка файла. В папке установленной платформы, в каталоге bin, лежит утилита chdbfl.exe. Она проверяет структуру 1Cv8.1CD без запуска 1С:
- Запустите
C:\Program Files\1cv8\<версия>\bin\chdbfl.exe. - Укажите путь к
1Cv8.1CD. - Сначала запустите проверку без флажка исправления. Если найдены ошибки — повторите с исправлением.
Логическая проверка. Конфигуратор → Администрирование → Тестирование и исправление. Для начала хватит флажков «Проверка логической целостности информационной базы» и «Проверка ссылочной целостности информационной базы». Режим требует монопольного доступа — то есть всех пользователей вы уже отключили.
Если после проверки остались ошибки в регистрах, в типовых конфигурациях часто помогает перепроведение документов за проблемный период. Но это уже отдельная задача.
Как сделать, чтобы сеансы не зависали
Половину проблем снимают организационно, вторую — настройками сети и компьютеров.
- 🕕 Регламент выхода. Договоритесь, что к определённому часу 1С закрыта у всех. Перед плановым обновлением включайте блокировку заранее — способ 1.
- 💤 Сон и гибернация. На рабочих местах с 1С отключите автоматический сон или хотя бы переход в сон при открытых сетевых файлах. Ноутбук, уснувший с открытой базой, — самый частый «призрак».
- 🖥️ Терминальный сервер. Настройте в групповой политике лимит для отключённых RDP-сеансов, например завершать их через 2–4 часа. Тогда закрытое крестиком окно не будет держать 1С до утра.
- 🛡️ Антивирус. Добавьте папку базы в исключения на сервере. Проверка
1Cv8.1CDна лету замедляет доступ и провоцирует зависания. - 📶 Сеть. Не работайте с файловой базой по Wi-Fi и через VPN. Для удалённых сотрудников — терминальный сервер или веб-клиент.
- 👥 Рост команды. Файловая база рассчитана на небольшое число одновременных пользователей. Если зависания стали ежедневными, а людей в базе больше 5–7, пора считать переход на клиент-серверный вариант.
Видит ли пользователь, что его отключили?
Почему в «Активных пользователях» висит сеанс, которого уже нет?
Можно ли выкинуть одного пользователя, не трогая остальных?
Нужно ли отключать пользователей для обычного сохранения копии?
.dt из конфигуратора — да. Для простого копирования папки базы тоже лучше отключить, иначе копия может оказаться несогласованной.