Администрирование 1С:Предприятие 8.3 часто сталкивается с ситуацией, когда пользователь «завис» в системе, заблокировав критические данные или мешая обновлению конфигурации. Причины бывают разные: от некорректного завершения работы до сетевых сбоев. В отличие от клиентского режима, где возможности ограничены, конфигуратор 1С предоставляет инструменты для принудительного завершения сеансов. Однако неправильные действия могут привести к повреждению данных или конфликтам блокировок.
Эта статья подробно разберёт легитимные способы удаления активных пользователей через конфигуратор, включая скрытые команды, работу с кластером серверов и альтернативные методы для файлового варианта. Особое внимание уделено рискам и последствиям — от потери несохранённых данных до возможных ошибок СУБД. Если вы администратор или разработчик, работающий с 1С 8.3, эти инструкции помогут избежать простоев и конфликтов в многопользовательском режиме.
Прежде чем приступать к принудительному завершению сеанса, убедитесь, что:
- 🔹 Пользователь действительно не отвечает (проверьте по чату или телефону).
- 🔹 Нет активных транзакций (например, проведение документов или печать отчётов).
- 🔹 Вы имеете права администратора в конфигураторе (обычная роль «Полные права» недостаточна).
1. Стандартный способ: список активных пользователей в конфигураторе
Самый очевидный метод — использовать встроенное окно Активные пользователи в конфигураторе. Оно отображает все текущие сеансы, включая заблокированные, и позволяет завершить их вручную.
Чтобы открыть список:
- Запустите 1С:Предприятие в режиме конфигуратора (удерживайте
Shiftпри запуске или выберите в меню Пуск). - Перейдите в меню
Администрирование → Активные пользователи. - В открывшемся окне вы увидите таблицу с колонками: Пользователь, Компьютер, Приложение, Сеанс и Блокировки.
Для завершения сеанса:
- 🖱️ Выделите строку с нужным пользователем.
- 🚫 Нажмите кнопку
Завершить(илиDeleteна клавиатуре). - ✅ Подтвердите действие в диалоговом окне.
Если кнопка Завершить неактивна, значит у вашей учётной записи недостаточно прав. Попробуйте войти под пользователем с ролью Администратор системы или проверьте настройки прав в конфигурации.
Этот метод работает в 90% случаев, но может не сработать, если:
- 🔌 Сеанс «завис» на уровне СУБД (например, Microsoft SQL Server или PostgreSQL).
- 🖥️ Пользователь подключён через веб-клиент или тонкий клиент с устойчивым соединением.
- 🔒 Сеанс заблокирован на уровне кластера серверов 1С:Предприятия.
2. Принудительное завершение через кластер серверов 1С
Если стандартный способ не помог, причина может крыться в работе кластера серверов 1С. В этом случае сеанс блокируется на уровне ragent или rmngr, и его нужно завершать через Консоль кластера.
Инструкция для 1С:Предприятие 8.3 (серверный вариант):
- Откройте
Пуск → 1С Предприятие 8.3 → Администрирование сервера 1С:Предприятия. - В дереве кластеров выберите ваш центральный сервер (обычно
localhostили имя компьютера). - Перейдите в раздел
Сеансы. - Найдите проблемный сеанс по имени пользователя или идентификатору.
- Щёлкните правой кнопкой и выберите
Завершить.
Если консоль недоступна (например, из-за удалённого подключения), используйте команду через командную строку:
ras cluster --cluster=ИмяКластера сеансы завершить --id=ИдентификаторСеанса
Как узнать идентификатор сеанса?
Идентификатор отображается в колонке ID в консоли кластера или в окне Активные пользователи конфигуратора. Если сеансов много, отсортируйте список по времени последней активности.
Критическая особенность: при завершении сеанса через кластер все несохранённые данные пользователя будут утеряны, а транзакции — откачены. Это может привести к рассинхронизации данных, если пользователь вёл длительную операцию (например, массовое проведение документов).
3. Работа с блокировками на уровне СУБД
В некоторых случаях сеанс «зависает» не в 1С, а на уровне базы данных. Эточно для Microsoft SQL Server, где долго выполняющиеся запросы или мертвые блокировки (deadlock) могут блокировать таблицы. Чтобы разорвать такое соединение, потребуется доступ к SQL Management Studio или аналогичному инструменту.
Алгоритм для MS SQL Server:
- Подключитесь к серверу базы данных через SQL Management Studio.
- Выполните запрос для поиска активных сеансов 1С:
SELECTs.session_id,
s.login_name,
s.host_name,
s.program_name,
s.status,
s.last_request_start_time,
s.last_request_end_time
FROM sys.dm_exec_sessions s
WHERE s.program_name LIKE'%1cv8%' OR s.program_name LIKE'%1C:Enterprise%'
ORDER BY s.last_request_start_time DESC
- Найдите в результатах сеанс с долгим временем выполнения (
last_request_start_time). - Завершите его командой:
KILL <session_id>
Для PostgreSQL используйте:
SELECT pid, usename, application_name, query_start, state
FROM pg_stat_activity
WHERE application_name LIKE'%1C%';
-- Завершение сеанса:
SELECT pg_terminate_backend(<pid>);
🔹 Убедитесь, что сеанс принадлежит 1С (поле program_name или application_name)
🔹 Проверьте время последнего запроса (last_request_start_time)
🔹 Оцените риск отката транзакций (если сеанс выполняет INSERT/UPDATE)
🔹 Сохраните идентификатор сеанса для отчёта администратору БД
-->
⚠️ Внимание: Принудительное завершение сеанса на уровне СУБД может привести к:
- 🗃️ Потере данных в временных таблицах 1С.
- 🔄 Автоматическому откату длительных транзакций (например, при регламентных операциях).
- 🚨 Повреждению индексов, если сеанс выполнял
REINDEXили аналогичные команды.
4. Альтернативные методы для файлового варианта 1С
Если вы используете файловый вариант 1С:Предприятие 8.3 (без сервера 1С и СУБД), то стандартные методы завершения сеансов могут не работать. В этом случае поможет:
- 🖥️ Перезагрузка компьютера (если 1С запущена локально).
- 🔌 Отключение сетевого кабеля (для удалённых подключений по
TCP/IP). - 🛠️ Утилита
1cv8srvc(для управления сервисными процессами).
Для принудительного завершения через 1cv8srvc:
- Откройте командную строку от имени администратора.
- Выполните команду для остановки агента:
1cv8srvc stop - Дождитесь завершения всех процессов (проверьте в Диспетчере задач отсутствие
1cv8.exeиragent.exe). - Запустите агент заново:
1cv8srvc start
Этот метод гарантированно разрывает все соединения, но имеет побочные эффекты:
- 🕒 Время простоя базы (от 30 секунд до нескольких минут).
- 📦 Возможная потеря данных в кэше 1С.
- 🔄 Необходимость переподключения всех пользователей.
Стандартное окно"Активные пользователи"
Консоль кластера 1С
Команды SQL (KILL)
Перезагрузка сервера или ПК
Другой метод-->
5. Автоматизация: скрипты для массового завершения сеансов
Если вам регулярно приходится завершать сеансы (например, при ночных обновлениях), имеет смысл автоматизировать процесс. Ниже приведён пример скрипта на PowerShell, который завершает все сеансы 1С кроме текущего:
$processes = Get-Process | Where-Object { $_.ProcessName -eq"1cv8" -or $_.ProcessName -eq"1cv8s" }
foreach ($process in $processes) {
if ($process.Id -ne $PID) { # Исключаем текущий процесс PowerShell
Stop-Process -Id $process.Id -Force
Write-Host"Завершён процесс 1С с ID: $($process.Id)"
}
}
Для Linux (если сервер 1С работает под Wine или нативной версии):
#!/bin/bash
pkill -f"1cv8"
pkill -f"ragent"
⚠️ Внимание: Автоматические скрипты следует использовать с осторожностью:
- 📅 Запускайте их в нерабочее время (например, ночью).
- 📌 Исключайте из завершения сервисные процессы (например,
rmngr). - 📊 Ведите лог завершённых сеансов для отчётности.
6. Распространённые ошибки и их решения
Принудительное завершение сеансов может приводить к ошибкам. В таблице ниже собраны типичные проблемы и способы их устранения:
| Ошибка | Причина | Решение |
|---|---|---|
Не удалось завершить сеанс: объект не найден |
Сеанс уже завершён, но не обновлён в списке | Обновите окно Активные пользователи (клавиша F5) или перезапустите конфигуратор |
Ошибка блокировки при записи объекта |
Остались неснятые блокировки на уровне СУБД | Выполните CHECKDB для MS SQL или VACUUM для PostgreSQL |
Нет прав на завершение сеанса |
Недостаточные права в конфигураторе или кластере | Войдите под пользователем с ролью Администратор или добавьте право АдминистрированиеСеансов |
Сеанс не завершается более 5 минут |
Зависание на уровне ОС или СУБД | Используйте Taskkill /F /IM 1cv8.exe или KILL в SQL |
Если после завершения сеанса пользователь не может подключиться обратно, проверьте:
- 🔑 Лицензии (возможно, достигнуто максимальное количество подключений).
- 🔌 Сетевые настройки (блокировка портов
1540-1541фаерволом). - 📂 Целостность базы (выполните
Тестирование и исправлениев конфигураторе).
Перед массовым завершением сеансов всегда делайте резервную копию базы данных. Это позволит восстановить данные в случае сбоя или потери транзакций.
7. Профилактика «зависаний» сеансов
Чтобы минимизировать необходимость принудительного завершения, настройте 1С:Предприятие 8.3 следующим образом:
- ⏱️ Тайм-ауты сеансов: В конфигураторе установите параметр
Автоматическое завершение неактивных сеансов(разделАдминистрирование → Настройки программы). - 🔄 Регламентные операции: Перенесите длительные задачи (например, перепроведение документов) на ночное время.
- 📊 Мониторинг: Используйте утилиты вроде 1С:Администратор сервера или Zabbix для отслеживания долгих сеансов.
- 🔒 Блокировки: Настройте уровень изоляции транзакций в СУБД (например,
READ COMMITTEDвместоSERIALIZABLE).
Для MS SQL Server рекомендуется выполнить настройку:
ALTER DATABASE [ИмяБазы1С] SET READ_COMMITTED_SNAPSHOT ON;
Это снизит количество блокировок при чтении данных.
Как проверить текущий уровень изоляции?
Выполните запрос:
SELECT name, is_read_committed_snapshot_on
FROM sys.databases
WHERE name ='ИмяБазы1С';
Если значение is_read_committed_snapshot_on равно 0, включите параметр, как показано выше.
FAQ: Частые вопросы по завершению сеансов в 1С 8.3
Можно ли завершить сеанс пользователя, не прерывая его работу?
Нет, любое принудительное завершение приводит к разрыву соединения. Однако вы можете уведомить пользователя через системное сообщение (меню Администрирование → Сообщения пользователям) и попросить его сохранить данные и выйти самостоятельно.
Почему после завершения сеанса пользователь не может войти обратно?
Вероятные причины:
- На сервере исчерпано количество лицензий.
- Сеанс не корректно завершился на уровне СУБД (проверьте блокировки).
- В кластере 1С осталась информация о сеансе (перезапустите службу
1С:Предприятие 8.3 Сервер).
Решение: проверьте логи сервера (C:\Program Files\1cv8\srvinfo\reg_1541\) и выполните Тестирование и исправление базы.
Как завершить сеанс, если конфигуратор не открывается?
Если 1С не реагирует даже на запуск конфигуратора:
- Откройте Диспетчер задач Windows.
- Найдите процессы
1cv8.exe,1cv8s.exe,ragent.exe. - Завершите их через контекстное меню (
Завершить задачу). - Если процессы не завершаются, используйте команду:
taskkill /F /IM 1cv8.exe /T
Что делать, если после завершения сеанса появилась ошибка блокировки?
Ошибка вида Объект заблокирован другим пользователем означает, что блокировка осталась на уровне СУБД. Выполните:
- Для MS SQL Server:
DBCC CHECKDB ([ИмяБазы1С]) WITH NO_INFOMSGS; - Для PostgreSQL:
VACUUM FULL ANALYZE; - Перезапустите кластер 1С:
ras cluster --cluster=ИмяКластера restart
Если ошибка сохраняется, восстановите базу из резервной копии.
Можно ли завершить сеанс пользователя с правами администратора?
Да, но:
- 🔐 Сеанс администратора можно завершить только через кластер 1С или СУБД (стандартное окно
Активные пользователизаблокирует эту возможность). - ⚠️ Это может привести к повреждению конфигурации, если администратор вёл изменения в метаданных.
Рекомендуемый порядок:
- Убедитесь, что администратор не редактирует объекты конфигурации.
- Используйте команду в кластере:
ras cluster --cluster=ИмяКластера сеансы завершить --force