Работа с 1С:Предприятие 8.3 часто требует административного вмешательства, когда нужно срочно обновить конфигурацию, сделать резервную копию или устранить блокировки в базе данных. Основная проблема — активные пользователи, которые мешают выполнить эти операции. Их сеансы блокируют файлы базы, что приводит к ошибкам вроде «База данных используется другим пользователем» или «Не удалось получить монопольный доступ».
В этой статье разберём все актуальные способы отключения пользователей в 1С 8.3 — от стандартных инструментов конфигуратора до скриптов на встроенном языке и внешних утилит. Особое внимание уделим рискам потери данных при принудительном разрыве сеансов и тому, как минимизировать последствия. Материал будет полезен администраторам, разработчикам и IT-специалистам, работающим с платформой 1С в клиент-серверном или файловом варианте.
Почему нельзя просто закрыть 1С у пользователей?
Многие администраторы пытаются решить проблему радикально: просят сотрудников закрыть программу или принудительно завершают процесс 1cv8.exe через диспетчер задач. Этот подход чреват:
- 🔴 Потерей несохранённых данных: если пользователь вёл документ или отчёт, изменения могут не сохраниться.
- 🔴 Повреждением транзакций: прерванные операции в базе (например, проведение документа) оставляют «висящие» блокировки.
- 🔴 Ошибками в журнале регистрации: принудительное отключение фиксируется как аварийное завершение сеанса.
- 🔴 Проблемами с лицензиями: при использовании аппаратных ключей (HASP) резкое завершение может привести к их «зависанию».
Корректное отключение должно проходить через механизмы самой платформы 1С, которые гарантируют:
- ✅ Сохранение открытых документов (если пользователь не запретил автосохранение).
- ✅ Освобождение блокировок в базе данных.
- ✅ Логирование события в журнале регистрации.
Способ 1: Отключение через Конфигуратор (стандартный метод)
Самый безопасный и рекомендуемый платформой способ — использование встроенного функционала Конфигуратора. Он доступен администраторам и пользователям с правами «Администрирование».
Инструкция:
- Откройте 1С:Предприятие в режиме Конфигуратор (выберите базу, удерживайте
Shiftпри запуске). - Перейдите в меню
Администрирование → Активные пользователи. - В списке выберите пользователя(ей), которых нужно отключить. Для множественного выбора используйте
Ctrl+клик. - Нажмите кнопку
Отключить(илиЗавершить сеансв некоторых версиях). - Подтвердите действие в диалоговом окне.
Преимущества метода:
- ⚡ Быстрота — сеансы завершаются за несколько секунд.
- 🛡️ Безопасность — платформа сама обрабатывает освобождение ресурсов.
- 📝 Логирование — событие фиксируется в журнале регистрации.
Убедиться, что у вас права администратора
Проверить, нет ли критичных операций у пользователей (проведение документов, выгрузка данных)
Сделать резервную копию базы (рекомендуется при массовом отключении)
Предупредить пользователей о принудительном завершении (по возможности)-->
Ограничения:
- 🔄 Не работает, если пользователь открыл модальное окно (например, печать документа) — сеанс не завершится, пока окно не закроется.
- 🔒 В клиент-серверном варианте требует прав на сервере 1С:Предприятия.
- 🚫 Не срабатывает для «зависших» сеансов (когда процесс
1cv8.exeне отвечает).
Что делать, если кнопка "Отключить" неактивна?
Если кнопка Отключить недоступна, это означает, что у вашей учётной записи недостаточно прав. Проверьте:
1. Запущен ли Конфигуратор от имени администратора (правая кнопка → "Запуск от имени администратора").
2. Есть ли у вашего пользователя роль "Администрирование" в настройках безопасности (Администрирование → Пользователи).
3. Не блокирует ли антивирус доступ к файлам базы (особенно актуально для файлового варианта).
Если права подтверждены, но кнопка всё равно неактивна, попробуйте перезапустить службу 1С:Предприятия на сервере.
Способ 2: Принудительное отключение через скрипт (встроенный язык)
Когда стандартные методы не работают (например, при «зависших» сеансах), можно использовать скрипт на встроенном языке 1С. Этот способ требует знания основ программирования, но даёт больше контроля.
Пример кода для отключения всех пользователей, кроме текущего:
Процедура ОтключитьВсехПользователей()
Сеансы = ПолучаемСписокСеансов();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.ИмяПользователя <> ТекущийПользователь() Тогда
Попытка
ОтключитьСеанс(Сеанс.Идентификатор);
Сообщить("Отключён пользователь: " + Сеанс.ИмяПользователя);
Исключение
Сообщить("Ошибка при отключении " + Сеанс.ИмяПользователя + ": " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ПолучаемСписокСеансов()
Возврат ПолучаемСеансыИнформационнойБазы();
КонецФункции
Как запустить скрипт:
- Откройте Конфигуратор и перейдите в
Файл → Новый → Внешняя обработка. - Вставьте код в модуль обработки.
- Сохраните файл (например,
ОтключениеПользователей.epf). - Запустите обработку в режиме 1С:Предприятие с правами администратора.
Перед массовым отключением добавьте в скрипт проверку на критичные операции. Например, можно исключить пользователей, которые в данный момент проводят документы с пометкой "Важно" или работают с кассовыми операциями.
Предупреждения:
⚠️ Внимание: Скрипт не проверяет, сохранены ли данные у пользователей. Принудительное отключение может привести к потере несохранённых изменений. Всегда предупреждайте сотрудников заранее.
| Ситуация | Рекомендуемый метод | Риски |
|---|---|---|
| Пользователь отвечает на запросы | Конфигуратор (Администрирование → Активные пользователи) |
Минимальные (данные сохранятся) |
| Сеанс «завис» (нет ответа) | Скрипт с принудительным отключением | Возможна потеря несохранённых данных |
| Нужно отключить всех кроме админа | Скрипт с фильтрацией по имени пользователя | Средние (зависит от логики скрипта) |
| Блокировка файлов в файловом варианте | Перезапуск службы 1С:Предприятия или сервера | Высокие (риск повреждения базы) |
Способ 3: Отключение через оснастку «Управление кластером серверов 1С»
В клиент-серверных конфигурациях (например, 1С:УПП, 1С:ERP) для управления сеансами можно использовать оснастку «Управление кластером серверов 1С». Она входит в комплект поставки серверной версии платформы и устанавливается вместе с 1С:Предприятием.
Пошаговая инструкция:
- Откройте
Пуск → Панель управления → Администрирование → Управление кластером серверов 1С. - В дереве слева выберите нужный кластер (если их несколько).
- Перейдите на вкладку
Сеансы. - В списке найдите пользователя, которого нужно отключить. Здесь отображаются:
- Имя пользователя
- Имя компьютера
- Время начала сеанса
- Состояние (активен/неактивен)
- Кликните правой кнопкой по сеансу и выберите
Завершить сеанс. - 🔧 Работает только для клиент-серверного варианта (не подходит для файловой базы).
- 📊 Показывает расширенную информацию о сеансах (например, используемые блокировки).
- 🔄 Можно завершать сеансы на конкретном рабочем сервере кластера.
- Просмотр активных сеансов:
rac session list --cluster=<имя_кластера> - Принудительное завершение сеанса по ID:
rac session terminate --cluster=<имя_кластера> --session= - Завершение всех сеансов пользователя:
rac session terminate --cluster=<имя_кластера> --user=<имя_пользователя> --all - 🖥️ Удалённое управление (можно подключаться к серверу по сети).
- 📋 Автоматизация (команды можно встраивать в скрипты
.batили.ps1). - 🔍 Подробная информация о сеансах (включая блокировки).
- 📚 Требует знания синтаксиса команд.
- 🔒 Опасно для новичков — ошибка в команде может завершить не те сеансы.
- 🛑 Не работает с файловой базой.
- 🔴 Повреждению транзакций в базе данных.
- 🔴 Несогласованности данных (если сеанс вёл запись в таблицы).
- 🔴 Блокировке базы для других пользователей до восстановления.
- Сеанс «завис» и не реагирует на другие способы отключения.
- Вы уверены, что пользователь не вёл критичных операций.
- У вас есть резервная копия базы.
Особенности метода:
⚠️ Внимание: Если в оснастке отображаются «зависшие» сеансы с статусом Не отвечает, их принудительное завершение может потребовать перезапуска службы ragent на сервере. Это приведёт к кратковременному отключению всех пользователей.
Способ 4: Утилита rac для администрирования кластера
Для опытных администраторов 1С предусмотрена консольная утилита rac.exe (Remote Administration Console), которая позволяет управлять кластером серверов из командной строки. Она расположена в каталоге установки 1С:Предприятия (обычно C:\Program Files\1cv8\<версия>\bin\rac.exe).
Примеры команд:
Преимущества rac.exe:
Недостатки:
Утилита rac.exe — самый мощный инструмент для администрирования кластера, но требует осторожности. Всегда проверяйте ID сеансов перед завершением, особенно в продуктивных базах.
Способ 5: Отключение через SQL-запрос (для опытных)
В клиент-серверном варианте с использованием Microsoft SQL Server или PostgreSQL можно завершить сеансы напрямую через SQL-запросы. Этот метод подходит только администраторам баз данных и требует понимания структуры системных таблиц 1С.
Пример запроса для MS SQL Server:
-- Найти активные сеансы 1С
SELECT
ses.session_id,
ses.login_name,
ses.host_name,
ses.program_name,
ses.last_request_start_time
FROM
sys.dm_exec_sessions ses
WHERE
ses.program_name LIKE '%1cv8%';
-- Принудительно завершить сеанс по ID
KILL 55; -- замените 55 на реальный ID сеанса
Для PostgreSQL:
-- Найти активные соединения 1С
SELECT
pid,
usename,
application_name,
client_addr,
query_start
FROM
pg_stat_activity
WHERE
application_name LIKE '%1cv8%';
-- Завершить соединение
SELECT pg_terminate_backend(1234); -- замените 1234 на реальный PID
Предупреждения:
⚠️ Внимание: Принудительное завершение SQL-сеансов может привести к:
Используйте этот метод только в крайних случаях, когда:
Способ 6: Перезапуск службы 1С или сервера (крайняя мера)
Если все предыдущие методы не сработали (например, при глобальном «зависаньи» кластера), остаётся перезапустить службу 1С:Предприятия или весь сервер. Это гарантированно разорвёт все сеансы, но имеет максимальные риски.
Инструкция для Windows:
- Откройте
Пуск → Выполнить → services.msc. - Найдите службу
1С:Предприятие 8.3 Сервер(илиAgent сервера 1С:Предприятия 8.3). - Кликните правой кнопкой и выберите
Перезапустить.
Для Linux (если сервер 1С работает под Linux):
sudo systemctl restart srv1cv83
Последствия перезапуска:
- 🔴 Все пользователи будут отключены без сохранения данных.
- 🔴 Возможны ошибки в базе при восстановлении сеансов.
- 🔴 Требуется время на повторное подключение (особенно при большом количестве пользователей).
⚠️ Внимание: Если база работает в файловом варианте, перезапуск службы не поможет — нужно завершать процесс1cv8.exeна каждом компьютере пользователя или перезагружать их машины. В этом случае лучше использовать скрипт или утилитуrac(если есть кластер).
Частые ошибки и как их избежать
При отключении пользователей администраторы часто сталкиваются с типовыми проблемами. Разберём самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
Не удалось завершить сеанс: доступ запрещён |
Недостаточно прав в 1С или на сервере | Проверьте роль пользователя в Конфигураторе (Администрирование → Пользователи) и права на папку базы |
Сеанс не найден в списке активных |
Пользователь уже отключился или сеанс «завис» на уровне ОС | Проверьте процесс 1cv8.exe в Диспетчере задач |
База данных заблокирована другим пользователем |
Остались неосвобождённые блокировки после аварийного отключения | Выполните Тестирование и исправление базы в Конфигураторе |
Ошибка соединения с кластером |
Служба ragent не работает или неправильные настройки подключения | Проверьте статус службы и параметры в C:\ProgramData\1C\1cv8\<версия>\conf.cfg |
Советы для предотвращения проблем:
- 📅 Планируйте отключения: используйте
Администрирование → Регламентные заданиядля автоматического завершения сеансов в нерабочее время. - 🔔 Настройте уведомления: перед массовым отключением отправляйте пользователям сообщения через 1С или корпоративный чат.
- 💾 Автоматизируйте резервное копирование: настройте автосохранение базы перед критичными операциями.
- 🛠️ Мониторьте блокировки: используйте оснастку
Управление кластеромдля отслеживания долгих транзакций.
FAQ: Ответы на частые вопросы
Можно ли отключить пользователя, не прерывая его работу?
Нет, любое отключение через административные инструменты приводит к завершению сеанса. Однако можно:
- Попросить пользователя сохранить данные и закрыть программу самостоятельно.
- Использовать скрипт с уведомлением: перед отключением показать пользователю сообщение с таймером (например, «Ваш сеанс будет завершён через 5 минут»).
Что делать, если после отключения пользователя база стала работать медленно?
Это признак неосвобождённых блокировок или повреждённых транзакций. Выполните:
Тестирование и исправлениебазы в Конфигураторе (Администрирование → Тестирование и исправление).- Перезапустите службу 1С:Предприятия.
- Проверьте журнал регистрации на ошибки (
Администрирование → Журнал регистрации).
Если проблема сохраняется, восстановите базу из резервной копии.
Как отключить всех пользователей кроме администраторов?
Используйте скрипт с фильтрацией по ролям. Пример:
Процедура ОтключитьНеАдминов()
Сеансы = ПолучаемСписокСеансов();
Для Каждого Сеанс Из Сеансы Цикл
Пользователь = ПолучаемПользователяПоИмени(Сеанс.ИмяПользователя);
Если НЕ Пользователь.Роли.Найти("Администрирование") Тогда
ОтключитьСеанс(Сеанс.Идентификатор);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Альтернативно — завершайте сеансы вручную через Конфигуратор, проверяя роль каждого пользователя.
Почему после отключения пользователя он снова появляется в списке активных?
Это происходит, если:
- Пользователь автоматически переподключается (например, через тонкий клиент с автологоном).
- Сеанс «завис» на уровне ОС, и процесс
1cv8.exeне завершился. - Включено кэширование сеансов на сервере (проверьте настройки кластера).
Решение: завершите процесс 1cv8.exe через Диспетчер задач или перезапустите службу 1С.
Как запретить пользователям подключаться к базе на время обновления?
Варианты:
- Измените пароль пользователя
Администратори верните его после обновления. - Настройте регламентное задание, которое будет блокировать подключения в указанное время.
- Используйте файл блокировки: создайте файл
1Cv8.lckв каталоге базы — это запретит новые подключения (но не разорвёт существующие сеансы). - Отключите службу 1С:Предприятия на сервере.