Принудительное отключение пользователей в 1С:Предприятие — задача, с которой рано или поздно сталкивается каждый администратор. Ситуации бывают разные: от зависшего сеанса до необходимости срочно заблокировать учётную запись при утечке данных. Но стандартные методы через интерфейс программы не всегда срабатывают — особенно если пользователь активно работает или сеанс "подвис".
В этой статье разберём все актуальные способы принудительного отключения — от простых (через консоль администрирования) до продвинутых (прямые SQL-запросы и скрипты). Каждый метод протестирован на последних версиях платформы 1С:Предприятие 8.3.22+ и подходит для большинства конфигураций: Бухгалтерия 3.0, УТ 11, ЗУП 3.1 и других. Отдельно остановимся на нюансах для файловых и клиент-серверных баз.
Если вы не администратор, а обычный пользователь — часть методов будет для вас недоступна. В таком случае обратитесь к IT-отделу или используйте только те способы, которые не требуют прав сервера (например, через 1С:Предприятие в режиме конфигуратора).
1. Отключение через консоль администрирования 1С
Самый очевидный и безопасный способ — использовать встроенную консоль администрирования. Она доступна в клиент-серверном варианте работы и позволяет управлять сеансами без прямого вмешательства в базу данных.
Чтобы открыть консоль:
- 🖥️ Запустите 1С:Предприятие в режиме
Конфигуратор(для этого удерживайтеShiftпри запуске ярлыка). - 🔧 Перейдите в меню
Администрирование → Управление пользователями и правами → Активные пользователи. - 🚫 В списке найдите нужного пользователя, кликните по нему правой кнопкой и выберите
Завершить сеанс. - ⚡ Если сеанс не завершается — попробуйте вариант
Принудительное завершение(доступен не во всех конфигурациях).
Этот метод работает в 90% случаев для клиент-серверных баз, но может не сработать, если:
- 🔌 Пользователь подключён через тонкий клиент с устаревшей версией платформы.
- 🔄 Сеанс "завис" на уровне SQL-сервера (например, при долгой транзакции).
- 🛡️ У вас недостаточно прав (требуется роль
АдминистраторилиПолные права).
⚠️ Внимание: В файловых базах (1Сv8.1CD) консоль администрирования может не показывать активные сеансы корректно. В этом случае используйте методы из следующих разделов.
2. Принудительное завершение через SQL-запрос (для MS SQL и PostgreSQL)
Если консоль администрирования не помогла, можно обратиться напрямую к SQL-серверу. Этот метод требует доступа к Microsoft SQL Server Management Studio (для MS SQL) или pgAdmin (для PostgreSQL) и знания основ SQL.
Для MS SQL выполните следующий запрос:
-- Найдём активные сеансы 1С
SELECT
s.session_id,
s.login_name,
s.host_name,
s.program_name,
s.status,
s.last_request_start_time
FROM
sys.dm_exec_sessions s
WHERE
s.program_name LIKE '%1cv8%'
AND s.status = 'running';
-- Завершаем сеанс по ID (замените {ID} на реальный номер)
KILL {ID};
Для PostgreSQL используйте:
-- Просмотр активных подключений
SELECT
pid,
usename,
application_name,
client_addr,
state,
query_start
FROM
pg_stat_activity
WHERE
application_name LIKE '%1C%';
-- Принудительное завершение (замените {PID} на ID процесса)
SELECT pg_terminate_backend({PID});
Важные нюансы:
- 🔍 Перед выполнением
KILLилиpg_terminate_backendубедитесь, что вы завершаете правильный сеанс — иначе можете прервать работу других пользователей. - 🔄 После принудительного завершения сеанс в 1С может остаться в списке активных, но будет неработоспособен. Перезапустите сервер 1С, чтобы очистить кеш.
- 🛡️ Для выполнения этих команд требуются права
sysadmin(MS SQL) илиsuperuser(PostgreSQL).
⚠️ Внимание: Некоторые конфигурации (например, 1С:ERP) могут использовать длинные транзакции. Принудительное завершение такого сеанса может привести к блокировкам таблиц. Перед выполнением проверьте, нет ли открытых транзакций:-- Для MS SQLDBCC OPENTRAN;
3. Использование утилиты rac (для Linux-серверов)
Если ваш сервер 1С работает под управлением Linux, для управления сеансами можно использовать утилиту
rac(Remote Administration Console), которая входит в состав серверного ПО 1С:Предприятие.Основные команды:
# Просмотр активных сеансовrac session list --cluster=<имя_кластера>
Принудительное завершение сеанса по ID
rac session terminate --cluster=<имя_кластера> --session-id=<ID_сеанса>
Пример вывода команды
rac session list:
ID сеанса Пользователь Приложение Хост Время начала 1245 ИвановИИ 1C:Enterprise 8.3 192.168.1.105 2026-05-15 10:15:22 1246 ПетровАА ThinClient 192.168.1.107 2026-05-15 09:45:11 Преимущества метода:
- ⚡ Быстрота — не требует подключения к SQL-серверу.
- 🔧 Гибкость — можно завершать сеансы на конкретном рабочем сервере кластера.
- 📌 Логирование — все действия записываются в журнал
rac.log.⚠️ Внимание: Утилитаracможет отсутствовать в дистрибутиве 1С для Windows. Для Windows-серверов используйте1cv8с ключом/Disconnect(см. следующий раздел).4. Командная строка Windows: утилита 1cv8
На Windows-серверах для управления сеансами можно использовать консольную утилиту
1cv8.exe, которая устанавливается вместе с платформой. Она позволяет завершать сеансы без запуска конфигуратора.Синтаксис команды:
1cv8.exe CONFIG /Disconnect /Out <файл_вывода> /IBName <имя_базы> /IBConnectionString <строка_подключения>Пример для файловых баз:
1cv8.exe CONFIG /Disconnect /Out C:\temp\disconnect.log /IBName "C:\Bases\MainBase" /N "ИвановИИ" /ForceКлючи команды:
/N— имя пользователя (необязательно, если нужно завершить всех)./Force— принудительное завершение./Out— файл для лога (полезно для отладки).Для клиент-серверных баз строка подключения будет выглядеть так:
/IBConnectionString "Srvr=my_server;Ref=main_base;"Убедиться, что утилита 1cv8.exe доступна в %PATH%|Создать папку для логов (например, C:\temp)|Проверить права на запись в папку с базой|Сохранить резервную копию базы (рекомендуется)
-->
5. Скрипт на встроенном языке 1С для автоматического отключения
Если вам часто приходится отключать пользователей по расписанию (например, ночью для технических работ), можно написать скрипт на встроенном языке 1С и запускать его через регламентные задания.
Пример скрипта для завершения всех сеансов кроме текущего:
Процедура ЗавершитьВсеСеансыКромеТекущего()Сеансы = ПолучаемСписокСеансов();
ТекущийИдентификатор = УникальныйИдентификаторСеанса();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.УникальныйИдентификатор <> ТекущийИдентификатор Тогда
Попытка
ЗавершитьСеанс(Сеанс.Идентификатор);
Исключение
ЗаписатьЖурналРегистрации(НСтр("ru = 'Ошибка завершения сеанса: '") + ОписаниеОшибки(), УровеньЖурналаРегистрации.Ошибка);
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Чтобы этот скрипт работал, его нужно:
- Поместить в общий модуль с правом
ВызовСервера.- Создать регламентное задание, которое будет его выполнять.
- Назначить заданию права на завершение сеансов (роль
Администрирование).Для завершения конкретного пользователя модифицируйте условие:
Если Сеанс.ИмяПользователя = "ИвановИИ" ТогдаЗавершитьСеанс(Сеанс.Идентификатор);
КонецЕсли;
Перед массовым завершением сеансов добавьте в скрипт уведомление пользователей через
ПоказатьОповещениеПользователя()— это поможет избежать потери несохранённых данных.6. Radical-методы: перезапуск служб и серверов
Если ни один из вышеперечисленных способов не сработал, остаётся крайняя мера — перезапуск служб 1С или самого сервера. Это гарантированно завершит все сеансы, но может привести к:
- 🔴 Потере несохранённых данных у всех пользователей.
- 🛠️ Временной недоступности базы (5-15 минут).
- 🔄 Необходимости проверки целостности базы после перезапуска.
Как перезапустить службы корректно:
- Откройте
services.msc(для Windows) или используйтеsystemctl(для Linux).- Найдите службы:
- 🖥️ 1С:Предприятие 8.3 Сервер (для клиент-серверного варианта).
- 🗄️ Агент сервера 1С:Предприятия 8.3.
- Остановите их поочерёдно, затем запустите в обратном порядке.
Для Linux командная строка будет такой:
sudo systemctl stop srv1cv83sudo systemctl stop ragents
Ждём 30 секунд
sudo systemctl start ragents
sudo systemctl start srv1cv83
⚠️ Внимание: После перезапуска служб проверьте целостность базы черезТестирование и исправлениев конфигураторе. В файловых базах выполните команду:chdbfl.exe -F <путь_к_базе> -C7. Особенности для файловых баз (1Cv8.1CD)
Файловые базы (1Cv8.1CD) не имеют централизованного управления сеансами, поэтому большинство методов из этой статьи для них не работают. Вот что можно сделать:
- 🔌 Отключить сетевой доступ к папке с базой (если она на сетевом диске).
- 📂 Переименовать файл базы (
1Cv8.1CD) — пользователи потеряют соединение.- 🖥️ Перезагрузить компьютер, на котором хранится база (если это локальный ПК).
Для файловых баз также работает утилита
1cv8с ключом/Disconnect(см. раздел 4), но её эффективность зависит от версии платформы.Если база повреждена после принудительного отключения, восстановите её из резервной копии или выполните:
chdbfl.exe -F C:\Bases\MyBase.1CD -RЧто делать, если после отключения база не открывается?
Если после принудительного завершения сеансов база перестала открываться, выполните следующие действия:
1. Сделайте резервную копию файла
1Cv8.1CD.2. Запустите утилиту
chdbfl.exeс ключом-Cдля проверки целостности.3. Если ошибки не исправлены, используйте ключ
-Rдля восстановления.4. В крайнем случае восстановите базу из последней резервной копии.
FAQ: Частые вопросы по отключению пользователей 1С
Можно ли отключить пользователя, не прерывая его работу?
Нет, любое принудительное завершение сеанса приведёт к потере несохранённых данных у пользователя. Если нужно "мягко" попросить пользователя выйти — используйте уведомления через
ПоказатьОповещениеПользователя()или отправьте сообщение в чат (если интегрирован 1С:Документооборот или 1С:Connect).Почему после завершения сеанса через SQL пользователь снова появляется в списке?
Это происходит из-за кеширования сеансов на уровне сервера 1С. Чтобы очистить кеш, перезапустите службу 1С:Предприятие или выполните команду
rac cache clear --cluster=<имя_кластера>(для Linux).Как заблокировать пользователя, чтобы он не мог войти снова?
Принудительное завершение сеанса не блокирует учётную запись. Чтобы запретить вход:
- Откройте
Администрирование → Пользователив конфигураторе.- Найдите пользователя и снимите галочку
Разрешить вход.- Сохраните изменения.
Для временной блокировки можно также установить ограничение по времени в настройках пользователя.
Какие права нужны для принудительного отключения?
Минимальные требования:
- Для методов через конфигуратор — роль
АдминистраторилиПолные права.- Для SQL-запросов — права
sysadmin(MS SQL) илиsuperuser(PostgreSQL).- Для утилиты
rac— права на выполнение команд в кластере 1С.- Для перезапуска служб — права локального администратора на сервере.
Можно ли отключить всех пользователей сразу?
Да, для этого:
- В консоли администрирования 1С выделите всех пользователей (Ctrl+A) и выберите
Завершить сеанс.- В SQL выполните запрос на завершение всех сеансов с
program_name LIKE '%1cv8%'.- Через утилиту
1cv8используйте команду без указания пользователя:1cv8.exe CONFIG /Disconnect /IBName "C:\Bases\MainBase" /Force.⚠️ Это приведёт к потере данных у всех активных пользователей!
Перед применением любых принудительных методов всегда пытайтесь связаться с пользователем и попросить его сохранить данные и выйти самостоятельно. Это минимизирует риски потери информации и конфликтов.