Выгнать сеанс из файловой базы 1С: блокировка, процессы и сетевые файлы
Содержание
Отключить пользователя
файловой базы 1С проще всего штатно: Администрирование → Обслуживание → Блокировка работы пользователей, флажок установки блокировки и код разрешения. Программа предупредит людей и сама закроет их сеансы. Если клиент завис и на сообщения не реагирует, остаётся завершить процесс 1cv8c.exe или 1cv8.exe на компьютере пользователя либо закрыть открытый файл 1Cv8.1CD в оснастке «Общие папки» на сервере.
Способы идут от мягкого к жёсткому. Блокировка не теряет ничего. Снятие процесса теряет несохранённый документ. Закрытие сетевого файла — крайняя мера для «призрака», которого уже никто не видит. Ниже — каждый способ с командами и порядком, в котором их пробовать.
Чем файловая база отличается от серверной при отключении
В клиент-серверной 1С есть кластер, консоль администрирования и команда «завершить сеанс» одним щелчком. В файловом варианте ничего этого нет. Каждый пользователь запускает у себя процесс 1С, и этот процесс сам открывает файл 1Cv8.1CD в сетевой папке.
Отсюда три следствия:
- 🖥️ Сеанс живёт на компьютере пользователя. Чтобы его остановить, нужно либо попросить сам клиент закрыться, либо снять его процесс.
- 📂 Сервер видит только открытый файл. Для Windows на файловом сервере пользователь 1С — это сетевая сессия SMB с открытым
1Cv8.1CD. - ⏳ Закрытие идёт через клиента. Блокировка из 1С работает, пока клиентская программа живая и обрабатывает сообщения. Зависший клиент её не услышит.
Зачем вообще всех выгонять? Обновление конфигурации
с изменением структуры, загрузка .dt, тестирование и исправление базы требуют, чтобы других сеансов не было. Ночная выгрузка в .dt тоже работает только на пустой базе.
Штатная блокировка работы пользователей в 1С
Это основной способ. Он есть во всех типовых конфигурациях на Библиотеке стандартных подсистем.
| Конфигурация | Где найти |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Блокировка работы пользователей |
| ЗУП 3.1 | Администрирование → Обслуживание → Блокировка работы пользователей |
| Управление торговлей 11 | НСИ и администрирование → Администрирование → Обслуживание → Блокировка работы пользователей |
Нужны права администратора в базе.
Как поставить блокировку
- Откройте форму блокировки по пути из таблицы.
- В поле сообщения напишите, что происходит и когда закончится: «Обновление базы, работа возобновится в 19:30».
- Задайте начало и, если нужно, окончание блокировки. Начало поставьте через 10–15 минут — людям хватит времени провести документы.
- Заполните код разрешения, например
obnov. С ним вы сами сможете войти в заблокированную базу. - Установите блокировку кнопкой внизу формы.
Пользователи увидят предупреждение с вашим текстом. После наступления времени начала программа сама завершит их сеансы, а новые входы будут отклонены с этим же сообщением.
Не закрывайте свой сеанс, пока ждёте. Если всё же вышли, войдите обратно с кодом: в строке запуска добавьте параметр /UCobnov (без пробела после /UC). Без кода вы упрётесь в собственную блокировку.
Как войти с кодом и снять блокировку
Код разрешения передаётся параметром запуска. Самый простой путь — изменить базу в списке окна запуска, нажать «Далее» и в поле дополнительных параметров вписать /UCobnov. Для одного входа удобнее ярлык:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "\\SRV\1C\Buh" /UCobnov
Когда работы закончены, вернитесь в ту же форму и снимите блокировку. Не забывайте это делать: если окончание не задано, утром бухгалтерия не попадёт в базу.
Блокировка из командной строки
У конфигураций на БСП есть два параметра запуска, которые делают то же самое без форм:
/C"ЗавершитьРаботуПользователей"— ставит блокировку и выгоняет сеансы;/C"РазрешитьРаботуПользователей"— снимает её.
Они пригодятся для автоматизации, о ней ниже.
Как узнать, кто сейчас сидит в базе
Перед отключением полезно понять, кого вы выгоняете и с какого компьютера.
Список активных пользователей
В БП 3.0 и ЗУП 3.1 на странице Администрирование → Обслуживание есть ссылка «Активные пользователи». В списке видно имя пользователя 1С, компьютер, время начала сеанса и приложение (тонкий клиент, конфигуратор, фоновое задание).
Если ссылки не нашли, откройте Все функции → Стандартные → Активные пользователи (меню «Все функции» включается в параметрах программы). В Конфигураторе тот же список — Администрирование → Активные пользователи.
В файловом режиме этот список только показывает сеансы. Завершить конкретный сеанс отсюда, как в клиент-серверном варианте, не получится: команды кластера нет.
Кто держит файл на сервере
Активные пользователи показывают сеансы 1С. Но бывает, что список пуст, а база всё равно «занята». Тогда смотрите на файловом сервере, кто держит 1Cv8.1CD:
- Нажмите
Win+R, введитеfsmgmt.msc. - Откройте ветку «Открытые файлы».
- Отсортируйте по пути и найдите строки с
1Cv8.1CDнужной базы.
В колонке «Доступ пользователя» будет учётная запись Windows, в соседней — компьютер. Это и есть «висящий» клиент: часто ноутбук ушёл в сон с открытой 1С, а Windows ещё держит за ним файл.
То же самое в PowerShell от имени администратора:
Get-SmbOpenFile | Where-Object { $_.Path -like "*Buh*1Cv8.1CD" } |
Select-Object FileId, ClientUserName, ClientComputerName, Path
Завершение процесса 1С через Диспетчер задач
Блокировка не помогла: у пользователя завис отчёт, клиент не отвечает, и сеанс не закрывается. Следующий шаг — снять процесс.
Всё, что пользователь не записал, пропадёт. Если процесс в момент снятия писал в базу (проведение, групповая обработка), есть риск повредить файл. Сначала позвоните человеку или подождите пару минут.
Если пользователь работает на своём компьютере
- На его ПК откройте Диспетчер задач (
Ctrl+Shift+Esc), вкладка «Подробности». - Найдите процесс 1С. Тонкий клиент —
1cv8c.exe, толстый клиент и Конфигуратор —1cv8.exe. - Выделите и нажмите «Снять задачу».
С вашего компьютера то же делается удалённо, если у вас есть права администратора на чужом ПК:
tasklist /S PC-BUH2 /FI "IMAGENAME eq 1cv8c.exe"
taskkill /S PC-BUH2 /IM 1cv8c.exe /F
Если 1С запущена на терминальном сервере
На терминальном сервере одновременно работают процессы всех пользователей, поэтому снимать «все 1cv8c» нельзя. В Диспетчере задач перейдите на вкладку «Пользователи», раскройте нужную учётную запись и снимите только её процесс 1С.
Командой — с фильтром по пользователю Windows:
tasklist /FI "IMAGENAME eq 1cv8c.exe" /V
taskkill /F /IM 1cv8c.exe /FI "USERNAME eq ivanova"
Ключ /V выводит колонку с именем пользователя: сначала проверьте, кого именно снимаете.
Если завис весь сеанс RDP, а не только 1С, найдите его ID командой quser и завершите logoff <ID>. Этот вариант закрывает у человека все программы, не только 1С.
Если база опубликована на веб-сервере
При работе через браузер или веб-клиент процесс 1С живёт внутри веб-сервера (Apache или IIS), а не у пользователя. Снять сеанс одного человека там нельзя. Перезапуск службы веб-сервера оборвёт сеансы всех, кто зашёл через публикацию, — делайте это вне рабочего времени.
Закрытие сетевых сессий и доступа к папке с базой
Это способ для случая, когда процесса у пользователя уже нет, а файл на сервере всё ещё открыт. Или когда компьютер пользователя выключен и до него не добраться.
Закрыть один открытый файл
В оснастке fsmgmt.msc, ветка «Открытые файлы», щёлкните правой кнопкой по строке с 1Cv8.1CD и выберите «Закрыть открытый файл». В PowerShell:
Get-SmbOpenFile | Where-Object { $_.Path -like "*Buh*1Cv8.1CD" } |
Close-SmbOpenFile -Force
Без фильтра по пути команда закроет файлы всех баз и всех прочих документов на сервере. Фильтр проверяйте до запуска с -Force: сначала прогоните первую строку отдельно и посмотрите, что попало в выборку.
Если ваш сервер старше и PowerShell-командлетов SMB нет, есть классический вариант: openfiles /query /fo table показывает открытые по сети файлы с их ID, а openfiles /disconnect /id <ID> закрывает нужный.
Отключить пользователя целиком
В той же оснастке ветка «Сеансы» показывает подключения к общим папкам. Закрытие сеанса обрывает у пользователя все открытые на сервере файлы, не только базу 1С. Аналог в командной строке — net session \\PC-BUH2 /delete.
Закрытый со стороны сервера файл — не аккуратное завершение. Если клиент в этот момент что-то записывал, после такой операции запустите тестирование и исправление базы.
Закрыть доступ к папке на время работ
Если боитесь, что кто-то зайдёт в базу в обход блокировки (например, со старой копией ярлыка на ноутбуке), на время работ уберите у группы бухгалтеров право на запись в папку базы или временно отключите общий доступ к ней. Себе оставьте полный доступ. После работ верните права. Это грубый, но надёжный замок.
После жёсткого отключения: проверка базы
Снятие процесса и закрытие файла иногда оставляют базу в неконсистентном состоянии. Признаки — ошибки при открытии, «битые» документы, вылет при проведении.
Проверьте базу, пока в ней никого нет:
- Сделайте копию каталога базы целиком (сам
1Cv8.1CDи всё, что лежит рядом). - Запустите Конфигуратор, меню
Администрирование → Тестирование и исправление. - Для начала оставьте только реиндексацию и проверку логической целостности, режим «Тестирование» без исправления.
- Если ошибки найдены — повторите с исправлением.
Отдельно есть утилита chdbfl.exe в каталоге bin установленной платформы. Она проверяет физическую структуру файла 1Cv8.1CD без запуска конфигурации и пригодится, когда база не открывается совсем.
Автоматизация отключения и профилактика зависаний
Если базу выгоняют каждую ночь ради резервной копии, руками это делать незачем.
Ночной скрипт: выгнать, выгрузить, впустить
Пример для Планировщика заданий Windows. Подставьте свою версию платформы, путь, пользователя и код разрешения:
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set IB=/F "D:\1C\Buh"
set AUTH=/N "Администратор" /P "пароль"
rem 1. Блокировка и завершение сеансов
%V8% ENTERPRISE %IB% %AUTH% /C"ЗавершитьРаботуПользователей" /UCbackup /DisableStartupDialogs
rem 2. Выгрузка в .dt
%V8% DESIGNER %IB% %AUTH% /UCbackup /DumpIB "E:\Backup\Buh_%date:~-4%%date:~3,2%%date:~0,2%.dt" /Out "E:\Backup\log.txt"
rem 3. Снятие блокировки
%V8% ENTERPRISE %IB% %AUTH% /C"РазрешитьРаботуПользователей" /UCbackup /DisableStartupDialogs
Код разрешения в шагах 1 и 3 должен совпадать с тем, что указан в форме блокировки, если вы её заполняли вручную. Пароль администратора в bat-файле храните в папке, куда у бухгалтеров нет доступа.
Если зависший клиент не отпустил базу и выгрузка упала, лог в log.txt это покажет. Утром проверяйте не наличие .dt, а его размер и дату.
Почему сеансы вообще зависают
- 💤 Сон и гибернация ноутбуков. Человек закрыл крышку с открытой 1С, сервер ещё долго считает файл открытым. Настройте на рабочих ПК запрет сна при работе от сети или приучите выходить из 1С.
- 📶 Wi-Fi и VPN. Файловая база по сети чувствительна к обрывам. Для удалённых сотрудников надёжнее терминальный сервер или веб-публикация, а не подключение к общей папке через VPN.
- 🛡️ Антивирус на сервере. Проверка
1Cv8.1CDпри каждом обращении тормозит работу и держит файл. Добавьте каталог базы в исключения. - 🗂️ Автономные файлы Windows. Если для общей папки включено кэширование для автономной работы, отключите его для каталога 1С.
- 🧾 Привычка «не выходить». Объявите правило: в конце дня все закрывают 1С. Ночной скрипт с блокировкой подстрахует тех, кто забыл.
Частые вопросы
Можно ли просто удалить файл блокировки в папке базы?
1Cv8.1CD создаёт и ведёт сама платформа. Пока клиент держит базу, удаление либо не пройдёт, либо оставит работающий сеанс в непредсказуемом состоянии. Правильный путь — закрыть сеанс или открытый файл, а служебные файлы платформа приведёт в порядок сама.Почему блокировка стоит, а пользователь всё ещё в базе?
Можно ли выгнать одного пользователя, не трогая остальных?
1Cv8.1CD в «Открытых файлах» на сервере.