Администрирование · 11 мин
Как завершить сеансы пользователей в файловой базе 1С
Способы завершить сеансы пользователей в файловой базе 1С: через консоль, конфигуратор, код и файл 1cv8.cdn. Риски, проверка результата и типичные ошибки.
Файловая база 1С не имеет сервера приложений, поэтому привычные инструменты кластера — консоль серверов 1С с принудительным отключением сеансов — здесь недоступны. Каждый пользователь работает с файлом 1Cv8.1CD напрямую, и «отключить» его централизованно штатной кнопкой нельзя. Тем не менее завершить сеансы реально: через механизм блокировки соединений, программный код, завершение процессов на компьютерах пользователей и работу с блокировочными файлами.
Задача чаще всего возникает перед регламентными операциями: обновлением конфигурации, тестированием и исправлением, загрузкой данных, созданием резервной копии. Любая из этих операций требует монопольного доступа к базе, а забытый на домашнем компьютере сеанс или зависший процесс 1cv8.exe способен сорвать план на весь вечер.
Важно понимать различие двух ситуаций. Первая — пользователи активно работают, и их нужно корректно предупредить и вывести из базы. Вторая — сеансы «висят»: программа закрыта аварийно, но файл базы считается занятым. Подходы к этим сценариям различаются, и ниже они разобраны отдельно.
Чем файловая база отличается от клиент-серверной при управлении сеансами
В клиент-серверном варианте все подключения проходят через сервер 1С:Предприятия, и администратор видит список сеансов в консоли кластера, может отключить любой из них одной командой. В файловом варианте такого посредника нет: каждый экземпляр программы открывает файл 1Cv8.1CD самостоятельно, а согласование доступа происходит через механизм блокировок на уровне файловой системы.
Из этого следуют два практических вывода. Во-первых, «список сеансов» в чистом виде доступен только программно — через функцию ПолучитьСеансыИнформационнойБазы() или через типовые обработки. Во-вторых, принудительное отключение чужого сеанса изнутри платформы невозможно: можно либо попросить сеанс завершиться самостоятельно (через блокировку соединений), либо завершить процесс на уровне операционной системы.
Способ 1. Завершение сеансов штатными средствами типовой конфигурации
В конфигурациях на Библиотеке стандартных подсистем (Управление торговлей, Бухгалтерия предприятия, Зарплата и управление персоналом и другие) есть готовый механизм завершения работы пользователей. Обычно он находится в разделе «Администрирование» — «Обслуживание» — «Блокировка работы пользователей» или «Активные пользователи». Точное расположение зависит от версии конфигурации.
Механизм работает так: администратор устанавливает блокировку соединений с указанием времени начала и текстом сообщения. Активные пользователи получают предупреждение с просьбой завершить работу, новые подключения запрещаются. Через заданный интервал сеансы завершаются принудительно — на стороне клиента, штатно, с закрытием форм.
- 1Откройте раздел Администрирование — Обслуживание — Блокировка работы пользователей
- 2Установите флажок блокировки, укажите время начала и сообщение для пользователей
- 3Если нужно действовать немедленно — укажите текущее время или ближайшие минуты
- 4Дождитесь завершения сеансов: список активных пользователей виден в обработке Активные пользователи
- 5Выполните регламентную операцию, затем снимите блокировку
Ограничение способа: он работает только если сама конфигурация поддерживает механизм и если пользователи запускали сеансы после того, как обработчики ожидания в конфигурации активны. Самописные конфигурации без БСП такой обработки могут не иметь — тогда используйте программный способ.
Способ 2. Программная установка блокировки соединений
Универсальный вариант для любой конфигурации — внешняя обработка или код, выполняемый через «Функции для технического специалиста» (Все функции). Платформа предоставляет функции УстановитьБлокировкуСоединений и ПолучитьБлокировкуСоединений, а также ПолучитьСеансыИнформационнойБазы для просмотра активных подключений.
Минимальный сценарий: установить блокировку с текущего момента, задать сообщение пользователям и код разрешения — параметр, который позволит администратору самому войти в базу во время блокировки с ключом /UC.
Блокировка = Новый БлокировкаСоединенийИБ;
Блокировка.Установлена = Истина;
Блокировка.Начало = ТекущаяДатаСеанса();
Блокировка.Сообщение = "Выполняется обновление базы. Завершите работу.";
Блокировка.КодРазрешения = "Бэкап2026";
УстановитьБлокировкуСоединений(Блокировка);После выполнения кода новые сеансы без параметра /UC«Бэкап2026» в строке запуска будут отклоняться, а активные пользователи увидят сообщение. Учтите: платформа сама не «выкидывает» пользователей мгновенно — штатное завершение происходит при следующем обращении клиента к базе или по механизмам конфигурации. Если сеанс «молчит» (пользователь оставил окно открытым), он может продержаться долго.
Проверить, кто остался в базе, можно тем же кодом: ПолучитьСеансыИнформационнойБазы() вернёт массив с именами пользователей, компьютерами и временем начала сеанса. Это удобно перед ответственными операциями — вы видите, кого ещё нужно «выбить» вручную.
Способ 3. Завершение процессов 1cv8 на компьютерах пользователей
Когда пользователь недоступен (ушёл домой с открытой программой, компьютер в другом офисе), остаётся завершить процесс на его машине. Если база опубликована в локальной сети и компьютеры доступны администратору, процесс 1cv8.exe завершается удалённо — через диспетчер задач при RDP-подключении, через PowerShell или PsExec.
Invoke-Command -ComputerName USER-PC-01 -ScriptBlock { Get-Process 1cv8 -ErrorAction SilentlyContinue | Stop-Process -Force }Если пользователи работают на терминальном сервере, задача проще: все процессы находятся на одной машине. Откройте диспетчер задач на вкладке «Пользователи» или выполните в командной строке сервера запрос списка сеансов и завершите нужные — либо только процессы 1cv8.exe конкретных пользователей, либо сами RDP-сеансы.
После принудительного завершения процессов обязательно проверьте целостность базы: войдите в конфигуратор и запустите тестирование и исправление хотя бы в режиме проверки логической целостности, если были признаки записи данных в момент отключения.
Зависшие сеансы и файлы блокировок в каталоге базы
Отдельная частая ситуация: 1С сообщает «Информационная база заблокирована» или «Ошибка разделенного доступа», хотя все пользователи давно вышли. Причина — аварийно завершённый сеанс (сбой питания, разрыв сети, «снятый» процесс), после которого в каталоге базы остались служебные файлы блокировок.
В каталоге файловой базы рядом с 1Cv8.1CD при активных подключениях присутствует файл 1Cv8.1CL (файл блокировок). Пока есть хотя бы один живой сеанс, удалять его нельзя. Но если вы достоверно убедились, что ни один процесс 1cv8.exe не обращается к базе (проверили все компьютеры и терминальный сервер), а монопольный доступ не устанавливается — файл 1Cv8.1CL можно удалить. Платформа создаст его заново при следующем подключении.
Никогда не трогайте файл 1Cv8.1CD — это сама база. Удаляться могут только служебные файлы блокировок, и только при гарантированном отсутствии подключений.
Как выбрать способ под свою ситуацию
Как выбрать действие
Для регулярных ночных операций (резервное копирование, обмены) разумно автоматизировать всю цепочку: пакетный скрипт устанавливает блокировку через запуск 1С с выполнением обработки, ждёт несколько минут, принудительно завершает оставшиеся процессы 1cv8.exe, выполняет копирование файла базы и снимает блокировку. Так вы получаете воспроизводимый процесс, не зависящий от дисциплины пользователей.
Как проверить результат
Возвращается пустой массив или только ваш сеанс
Остаются чужие сеансы — ищите компьютер и процесс
Конфигуратор входит без сообщения о занятости
Ошибка разделённого доступа — есть живое подключение или зависшая блокировка
1Cv8.1CL отсутствует при закрытых сеансах
Файл блокировок есть, а сеансов нет — признак зависшей блокировки
Частые вопросы
Можно ли отключить конкретного пользователя файловой базы, не трогая остальных?
Штатной команды «отключить сеанс» в файловом варианте нет. Варианты: попросить пользователя выйти, завершить процесс 1cv8.exe на его компьютере (локально или удалённо) либо закрыть его сеанс на терминальном сервере. Блокировка соединений действует на всех сразу, точечно её не применить.
Пользователей просят выйти, но они игнорируют сообщение. Что делать?
Сообщение блокировки — это просьба, а не принуждение. Если конфигурация на БСП, сеансы завершатся принудительно по наступлении времени блокировки. В самописной конфигурации без такого механизма остаётся только завершение процессов на компьютерах пользователей.
Опасно ли удалять файл 1Cv8.1CL?
Безопасно только при гарантированном отсутствии подключений к базе — проверьте все компьютеры, терминальный сервер и фоновые задания. Если удалить файл при живом сеансе, механизм блокировок рассинхронизируется, что чревато повреждением данных при одновременной записи.
Почему база занята, хотя все программы закрыты?
Типичные причины: зависший процесс 1cv8.exe на чьём-то компьютере (проверьте диспетчер задач), аварийно завершённый сеанс с оставшимся файлом блокировок, либо фоновое подключение — например, открытый конфигуратор или обмен данными по расписанию. Проверяйте в этом порядке.
Можно ли завершать сеансы по расписанию автоматически?
Да, через планировщик Windows: скрипт запускает 1С с внешней обработкой, устанавливающей блокировку соединений, затем после паузы завершает оставшиеся процессы 1cv8.exe и выполняет регламентную операцию. Для входа в заблокированную базу используйте параметр запуска /UC с кодом разрешения.
Чем опасно копирование файловой базы при открытых сеансах?
Файл 1Cv8.1CD в момент копирования может изменяться, и копия окажется внутренне противоречивой — такая «резервная копия» может не открыться или содержать повреждённые данные. Копируйте только после полного завершения всех сеансов либо используйте выгрузку в dt через конфигуратор.
Что важно запомнить
В файловой базе 1С нет централизованного отключения сеансов: работайте через блокировку соединений (штатно или кодом), завершение процессов 1cv8.exe и удаление зависшего файла 1Cv8.1CL только при гарантированно закрытых подключениях. Перед регламентными операциями проверяйте список сеансов программно, а регулярные задачи автоматизируйте скриптами.