Выгнать всех из файловой базы 1С: блокировка, процессы и открытые файлы
Содержание
В файловой базе 1С сеансы пользователей завершают двумя способами: штатно через блокировку работы пользователей (Администрирование → Обслуживание → Блокировка работы пользователей) или принудительно, закрыв процесс 1cv8c.exe / 1cv8.exe на компьютере пользователя либо открытый файл 1Cv8.1CD на сервере. Кнопки «завершить чужой сеанс», как в клиент-серверном варианте, здесь нет: у файловой базы нет сервера, который мог бы оборвать соединение.
Частая ошибка — сразу удалять «лишние» файлы из каталога базы. Пока кто-то держит базу открытой, это не поможет, а при неудаче можно получить повреждённый 1Cv8.1CD. Правильный порядок: сначала попросить программу закрыть сеансы
, потом найти тех, кто не вышел, и только в конце — ручная чистка.
Почему в файловой базе завершить сеанс сложнее, чем на сервере
Файловая база — это один файл 1Cv8.1CD в общей папке. Каждый пользователь запускает у себя клиент 1С, и этот клиент сам открывает файл по сети. Никакого посредника между ними нет.
Отсюда три следствия:
- 🖥️ Сеанс живёт на компьютере пользователя. Пока там работает процесс 1С с открытой базой, файл занят.
- 📂 Сервер видит только открытый файл. Windows на файловом сервере знает, какая учётная запись держит
1Cv8.1CD, но про сеансы 1С ничего не знает. - 🔒 Завершить сеанс «изнутри» можно только вежливо. Программа ставит блокировку, а клиенты сами её замечают и закрываются.
| Что нужно | Клиент-серверная база | Файловая база |
|---|---|---|
| Посмотреть активных пользователей | Консоль кластера или список в программе | Список в программе или открытые файлы на сервере |
| Оборвать один сеанс | Удалить сеанс в консоли кластера | Закрыть процесс у пользователя или файл на сервере |
| Выгнать всех перед обновлением | Блокировка сеансов в кластере | Блокировка работы пользователей средствами конфигурации |
Шаг 1. Посмотреть, кто сейчас в базе
Начните со списка активных пользователей. Он показывает имя пользователя 1С, компьютер, время начала сеанса и приложение (тонкий клиент, конфигуратор, фоновое задание).
Где его открыть:
- В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11):
Администрирование → Обслуживание → Активные пользователи. - В любой конфигурации через меню «Все функции»:
Стандартные → Активные пользователи. Если команды «Все функции» нет, включите её вСервис и настройки → Параметры → Отображать команду "Все функции". - Из Конфигуратора:
Администрирование → Активные пользователи.
Запишите колонку «Компьютер». Если позже кто-то не выйдет сам, вы будете знать, к какой машине идти.
Список показывает сеансы, но в файловой базе завершить их из этой формы обычно нельзя. Для этого нужен следующий шаг.
Шаг 2. Штатное завершение сеансов через блокировку работы пользователей
Это основной способ. Конфигурация ставит в базе отметку «вход запрещён», а все открытые клиенты периодически её проверяют. Пользователи получают предупреждение, а по наступлении времени блокировки программа у них закрывается сама.
Как установить блокировку
- Откройте
Администрирование → Обслуживание → Блокировка работы пользователей. - Заполните сообщение для пользователей. Пишите конкретно: «Обновление базы с 19:00 до 19:30, сохраните документы».
- Укажите время начала блокировки. Дайте людям несколько минут, чтобы дописать документ.
- Задайте код разрешения — любое слово или число, например
upd2024. По нему вы сами сможете войти, пока блокировка действует. - Установите флажок запрета работы пользователей и нажмите кнопку установки блокировки.
- Вернитесь в
Активные пользователии обновляйте список, пока в нём не останется только ваш сеанс.
Не завершайте собственный сеанс, пока не запомнили код разрешения. Без него вы тоже не войдёте до снятия блокировки по времени окончания.
Как войти при установленной блокировке
Добавьте код разрешения к параметрам запуска. В списке баз выберите базу, нажмите Изменить, на последней странице мастера в поле дополнительных параметров запуска впишите:
/UCupd2024
Параметр /UC передаёт код разрешения. Пользователи без него увидят сообщение о блокировке и вход не пройдёт.
Как снять блокировку
Снова откройте форму блокировки и снимите её. Если указали время окончания, блокировка снимется сама. Забытая блокировка — частая причина звонков утром: «база пишет, что работа запрещена».
Блокировку замечают только работающие клиенты. Если у пользователя завис процесс 1С или компьютер ушёл в сон с открытой базой, такой сеанс сам не закроется. Его придётся искать вручную.
Шаг 3. Монопольный режим: зачем он нужен и чем мешают сеансы
Монопольный режим — это работа с базой, когда к ней не подключён больше никто. В файловой базе он нужен для операций, меняющих структуру данных:
- 🔧 обновление конфигурации
базы данных после изменения структуры (
Конфигурация → Обновить конфигурацию базы данных); - 📦 загрузка информационной базы из файла
.dt; - 🩺 тестирование и исправление информационной базы;
- 🗜️ сжатие таблиц базы.
Обычная работа в Конфигураторе — просмотр модулей, редактирование конфигурации без обновления базы, выгрузка в .dt — монопольного режима не требует. Поэтому выгонять всех ради того, чтобы просто открыть Конфигуратор
, не нужно.
Если хотя бы один сеанс открыт, операция из списка выше не начнётся: программа сообщит, что не удалось установить монопольный режим. Это не поломка, а защита. Сначала завершите сеансы по шагам 2 и 4, потом повторите.
💡 Фоновые задания тоже считаются сеансом. В файловой базе их выполняет один из клиентских сеансов, поэтому после выхода пользователей они пропадают вместе с ним.
Шаг 4. Найти зависшие процессы 1С и закрыть открытые файлы
Блокировка установлена, а в списке активных всё ещё висит пользователь — значит, его клиент не отвечает. Ищем его на двух сторонах: на компьютере пользователя и на файловом сервере.
На компьютере пользователя
Откройте Диспетчер задач (Ctrl+Shift+Esc) → вкладка «Подробности». Процессы 1С:
| Процесс | Что это |
|---|---|
1cv8c.exe | тонкий клиент |
1cv8.exe | толстый клиент и Конфигуратор |
1cv8s.exe | стартер (окно выбора базы), базу не держит |
Если нужно закрыть из командной строки (запуск от имени администратора):
tasklist /FI "IMAGENAME eq 1cv8c.exe"
taskkill /IM 1cv8c.exe /F
На терминальном сервере процессы всех пользователей видны во вкладке «Пользователи» диспетчера задач. Найти нужного помогает команда query process, а затем taskkill /PID <номер> /F для конкретного процесса.
Принудительное закрытие процесса обрывает сеанс без сохранения. Несохранённый документ пользователь потеряет. Предупредите его заранее, а taskkill применяйте к конкретному процессу, а не ко всем подряд на терминальном сервере.
На файловом сервере
Это главный приём для файловой базы: Windows показывает, кто держит 1Cv8.1CD открытым.
- На сервере с общей папкой запустите
fsmgmt.msc(«Общие папки»). - Перейдите в «Открытые файлы».
- Найдите путь к
1Cv8.1CDнужной базы. В колонке «Пользователь» — учётная запись Windows того, кто его держит. - Правой кнопкой → «Закрыть открытый файл».
То же из командной строки:
net file | findstr /I "1Cv8"
net file 15 /close
Здесь 15 — идентификатор из первого столбца вывода net file.
Этот способ выручает, когда компьютер пользователя выключен аварийно или отвалилась сеть: процесса уже нет, а сервер ещё держит файл открытым.
Закрывать файл на сервере — последнее средство. Если клиент в этот момент записывал данные, база может потребовать тестирования и исправления.
Если база опубликована на веб-сервере
Когда пользователи работают с файловой базой через браузер или по HTTP-адресу, файл держит не их компьютер, а процесс веб-сервера (служба Apache или пул приложений IIS). Тогда завершить все сеансы разом можно перезапуском этой службы или пула. Это оборвёт работу всех, кто зашёл через публикацию, поэтому делайте это после блокировки и в согласованное время.
Шаг 5. Служебные файлы в каталоге базы и ручная очистка
В каталоге файловой базы лежат:
- 📄
1Cv8.1CD— сами данные. Не удалять никогда. - 🔐
1Cv8.1CL— служебный файл блокировок, через него клиенты договариваются о доступе к базе. - 📁
1Cv8Log— журнал регистрации. - ⏳
1Cv8tmp.1CDи похожие временные файлы — появляются при реструктуризации и загрузке базы.
Ручная работа с этими файлами нужна редко: обычно когда после сбоя питания или обрыва сети база ведёт себя так, будто в ней кто-то есть, хотя все вышли.
Порядок действий:
- Убедитесь, что сеансов нет: список «Активные пользователи» пуст, в
net fileнет строк с этой базой, процессов 1С у пользователей нет. - Скопируйте весь каталог базы в другое место.
- Переименуйте
1Cv8.1CL, например в1Cv8.1CL.old. Переименование безопаснее удаления — файл можно вернуть. - Откройте базу. Платформа создаст файл блокировок заново.
- Если база открылась нормально, старый файл можно удалить.
Делайте это только после того, как все пользователи вышли. Если кто-то работает, а вы убрали файл блокировок, два клиента могут писать в базу, не видя друг друга.
Временный 1Cv8tmp.1CD не трогайте, пока идёт обновление или загрузка. Он остаётся после прерванной операции — тогда его можно убрать, но только когда база закрыта, и тоже после копии.
Шаг 6. Автоматизация завершения сеансов по расписанию
Если обновления и копирование идут ночью, выгонять пользователей руками неудобно. В конфигурациях на БСП блокировку можно ставить и снимать параметрами запуска.
Пример bat-файла для ночного обслуживания:
@echo off
set V8="C:\Program Files\1cv8\common\1cestart.exe"
set BASE=/F"\\srv\1C\Buh"
set AUTH=/N"Администратор" /P"пароль"
rem 1. Ставим блокировку и завершаем сеансы
%V8% ENTERPRISE %BASE% %AUTH% /C"ЗавершитьРаботуПользователей" /UC"upd2024"
rem 2. Здесь — выгрузка, обновление, тестирование
rem 3. Снимаем блокировку
%V8% ENTERPRISE %BASE% %AUTH% /C"РазрешитьРаботуПользователей" /UC"upd2024"
Параметр /C"ЗавершитьРаботуПользователей" поддерживают типовые конфигурации на БСП. Конфигурация сама устанавливает блокировку и ждёт, пока клиенты закроются. В самописных конфигурациях без БСП такой команды нет — там нужна своя обработка или ручной порядок.
💡 Учётную запись для скрипта заведите отдельную, с правами администратора. Пароль в bat-файле лежит открытым текстом, поэтому доступ к файлу ограничьте правами NTFS.
Для зависших клиентов, которые блокировку не замечают, в скрипт перед шагом 2 иногда добавляют закрытие открытых файлов через net file ... /close. Это рабочий вариант, но он принудительный: в нём те же риски, что и при ручном закрытии.
Внешние обработки с кнопкой «выгнать всех» в файловой базе работают по тому же принципу: ставят блокировку соединений и ждут. Чудес они не делают — зависший процесс на чужом компьютере обработка закрыть не может.
Как избежать зависших сеансов и блокировок
Что ещё помогает на практике:
- 🌐 Стабильная сеть до файлового сервера. Обрыв Wi-Fi посреди записи — классический источник «призрачных» сеансов и ошибок в базе. Для файловой базы лучше кабель.
- 🛡️ Исключения антивируса. Сканер, перехватывающий каждое обращение к
1Cv8.1CD, замедляет работу и иногда держит файл дольше, чем нужно. - 👥 Число пользователей. Файловый вариант рассчитан на небольшую команду. Если постоянно приходится выгонять людей ради обслуживания и база тормозит, пора думать о клиент-серверном варианте.
- 🧾 Привычка выходить из 1С вечером. Банально, но снимает большую часть утренних проблем с ночным обновлением.
Частые вопросы
Можно ли узнать, кто держит базу, не заходя в 1С?
fsmgmt.msc → «Открытые файлы» или выполните net file. Там видна учётная запись Windows, которая открыла 1Cv8.1CD.Пропадут ли данные пользователя при закрытии его процесса?
Что будет, если забыть код разрешения?
Почему Конфигуратор пускает меня при открытых сеансах?
.dt и тестирования.