Как выкинуть пользователя из базы 1С, если он не выходит сам
Содержание
Завершить сеанс пользователя 1С проще всего из самой программы: Администрирование → Обслуживание → Активные пользователи, выделить сеанс и выполнить команду завершения. Это работает в клиент-серверной базе. Если программа не открывается или сеанс висит, его удаляют в консоли администрирования серверов (ветка Сеансы), из командной строки утилитой rac или, в крайнем случае, снимают процесс в Диспетчере задач.
Способ выбирают по варианту базы. В файловой базе «выкинуть» конкретного пользователя из программы 1С изнутри нельзя: там работают блокировка входа и закрытие процесса на компьютере пользователя. В серверной доступно всё: и форма в программе, и консоль, и командная строка.
| Способ | Файловая база | Серверная база | Когда выбирать |
|---|---|---|---|
| «Активные пользователи» в программе | только просмотр | да | 1–2 сеанса, база открывается |
| Блокировка работы пользователей | да | да | нужно выгнать всех перед обновлением |
| Консоль кластера | — | да | сеанс завис, программа не нужна |
Утилита rac | — | да | скрипты, ночные регламенты |
| Диспетчер задач | да | да, с оговорками | всё остальное не сработало |
Перед тем как завершить сеанс: что потеряет пользователь
Завершение сеанса — это обрыв, а не вежливый выход. Всё, что человек не записал, пропадёт.
- 📝 Несохранённый документ или справочник. Проведённые и записанные данные остаются в базе.
- 🔄 Длинная операция (закрытие месяца , перепроведение, выгрузка). Транзакция откатится, операцию придётся запускать заново.
- 🛠 Сеанс Конфигуратора. Если в нём были несохранённые изменения конфигурации, они пропадут, а захваченные в хранилище объекты останутся захваченными.
Позвоните или напишите пользователю. Две минуты на «сохранись и выйди» почти всегда дешевле, чем перепроводить документы после обрыва.
Есть и плюс: завершённый сеанс освобождает лицензию. Поэтому сеансы часто удаляют, когда кто-то не может войти из-за нехватки лицензий, а в списке висят сотрудники, ушедшие домой с открытой программой.
Как завершить сеанс пользователя в самой программе 1С
Этот способ подходит для типовых конфигураций на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP. Нужны права администратора в базе.
Форма «Активные пользователи»
- Откройте раздел
Администрирование → Обслуживание(в старых релизах раздел называется «Поддержка и обслуживание»). - Найдите группу
Администрированиеи ссылкуАктивные пользователи. - В списке видны пользователь, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание) и время начала сеанса.
- Выделите нужную строку и выполните команду завершения сеанса в командной панели формы.
- Обновите список: строка должна исчезнуть.
У пользователя появится сообщение о том, что сеанс завершён, и программа закроется. Свой собственный сеанс так завершить нельзя.
В файловой базе та же форма показывает только список: кто сейчас в программе. Это всё равно полезно, чтобы знать, кому звонить.
В Конфигураторе тоже есть список активных пользователей в меню Администрирование. Он только показывает, кто подключён к базе: завершить сеанс оттуда нельзя. Используйте его, когда Конфигуратор пишет, что база занята, и нужно понять, кто именно в ней работает.
Блокировка работы пользователей
Когда нужно выгнать всех разом, например перед обновлением, используйте блокировку. Она лежит там же, в Администрирование → Обслуживание.
- Включите блокировку, укажите время начала и окончания.
- Напишите сообщение: его увидят пользователи («Обновление базы, выйдите до 19:00»).
- Задайте код разрешения, например
KOD123. - Нажмите кнопку установки блокировки.
Программа предупредит работающих пользователей, а после наступления времени блокировки завершит их сеансы. Новые входы будут запрещены. Сами вы войдёте с параметром запуска /UCKOD123: добавьте его в строку «Дополнительные параметры запуска» в свойствах базы в окне запуска.
Не забудьте снять блокировку после работ. Иначе утром бухгалтерия увидит сообщение о блокировке и не сможет войти.
В конфигурациях на БСП есть и параметры запуска для того же сценария: /C"ЗавершитьРаботуПользователей" устанавливает блокировку и закрывает сеансы, /C"РазрешитьРаботуПользователей" снимает её. Их удобно ставить в ярлык администратора или в скрипт обновления.
Удаление сеансов в консоли администрирования серверов 1С
Консоль работает без входа в базу, поэтому это основной способ для зависших сеансов. Она есть только в клиент-серверном варианте.
Как открыть консоль
Консоль ставится вместе с платформой как компонент «Администрирование сервера 1С:Предприятия». Ярлык ищите в меню «Пуск» в папке версии платформы.
Если консоль открывается пустой или с ошибкой оснастки, зарегистрируйте библиотеку radmin.dll той же версии, что сервер. Командная строка от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути замените на свой: он должен совпадать с номером сервера 1С.
Пошагово
- В дереве консоли добавьте центральный сервер, если его там нет: имя компьютера и порт агента 1540.
- Раскройте
Кластеры → Локальный кластер → Информационные базы → <имя базы> → Сеансы. - В правой части появится список сеансов этой базы: пользователь, компьютер, приложение, время начала и последней активности.
- Выделите сеанс правой кнопкой мыши и выберите
Удалить. - Подтвердите удаление.
Если нужно посмотреть сеансы
всех баз сразу, откройте ветку Сеансы прямо под кластером.
Отсортируйте список по колонке «Компьютер». Так видно, кто открыл базу с двух машин и занимает две лицензии.
Запрет входа на уровне кластера
В свойствах информационной базы в консоли (правая кнопка → Свойства) есть флажок блокировки начала сеансов, поля сообщения и кода разрешения. Это та же блокировка, что и в программе, но включается она без входа в 1С. Там же есть флажок блокировки регламентных заданий: включайте его, если фоновые задания мешают обновлению.
Принудительное завершение сеанса через командную строку (rac)
Утилита rac делает то же, что консоль, но из командной строки. Её удобно ставить в ночные скрипты перед обновлением или копированием.
rac подключается не к агенту напрямую, а к серверу администрирования ras (по умолчанию порт 1545). Сначала убедитесь, что служба ras запущена на сервере 1С.
Порядок команд:
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
rem 1. Узнаём идентификатор кластера
rac cluster list
rem 2. Список баз кластера (нужен UUID базы)
rac infobase summary list --cluster=<uuid-кластера>
rem 3. Сеансы конкретной базы
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
rem 4. Завершаем один сеанс
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если на кластере заведены администраторы, к каждой команде добавьте --cluster-user=<имя> --cluster-pwd=<пароль>. Полный список параметров выдаёт rac help session.
В выводе rac session list ищите поля user-name, host и app-id. По app-id видно, что это за сеанс: 1CV8C — тонкий клиент, Designer — Конфигуратор, BackgroundJob — фоновое задание.
Не завершайте сеансы BackgroundJob вслепую. Это может быть обмен с сайтом или загрузка банковской выписки — после обрыва их придётся перезапускать.
Почему сеанс завис и не удаляется
Иногда сеанс удалён в консоли, а через минуту появляется снова. Или пользователь закрыл программу, а строка висит.
Сеанс висит после закрытия программы
Сервер не сразу узнаёт об обрыве: ноутбук ушёл в сон, пропал VPN, закрыли окно терминальной сессии. Сеанс остаётся в списке и держит лицензию. Такие сеансы смело удаляйте в консоли.
Сеанс держит блокировку
Типичный симптом у других пользователей — ошибка Конфликт блокировок при выполнении транзакции или долгое ожидание при записи документа. Найдите виновника:
- 🔍 в выводе
rac session listполяblocked-by-lsиblocked-by-dbmsпоказывают, кем заблокирован сеанс; - 🔍 поле
duration-currentпоказывает, сколько длится текущий вызов: десятки минут на простом документе — повод разобраться; - 🔍 в консоли то же видно в списке сеансов, если включить дополнительные колонки через настройку списка.
Сначала завершайте сеанс-блокировщик, а не тех, кто ждёт. Иначе ожидающие появятся снова.
Сеанс возвращается после удаления
Так ведут себя фоновые и регламентные задания: их снова запускает планировщик. Включите блокировку регламентных заданий в свойствах базы, а потом удаляйте сеансы. Другая причина — у пользователя открыта программа, и она переподключается сама. Тогда нужен звонок или блокировка входа.
Как выкинуть пользователя из программы 1С через Диспетчер задач
Это крайняя мера. Перед снятием любого процесса предупредите людей: оборвутся все сеансы, которые он обслуживает.
Файловая база
У файловой базы нет сервера, и программа работает прямо на компьютере пользователя. Варианты:
- На компьютере пользователя откройте Диспетчер задач, вкладку «Подробности», и завершите процесс
1cv8c.exe(тонкий клиент) или1cv8.exe(толстый клиент и Конфигуратор). - Если база лежит в общей папке на сервере, откройте там
fsmgmt.msc→Открытые файлы. Найдите файл1Cv8.1CD, по колонке «Пользователь» определите сотрудника и закройте файл. Программа у него потеряет связь с базой. - На терминальном сервере откройте Диспетчер задач, вкладку «Пользователи», и выберите выход из системы для сотрудника. Закроются все его программы, не только 1С.
Серверная база
На сервере 1С сеансы обслуживают процессы rphost.exe. Один такой процесс держит десятки сеансов разных людей, и снять его ради одного пользователя — значит выкинуть всех, кто к нему привязан.
Снимать rphost.exe имеет смысл, только когда процесс завис целиком: занял всю память или процессор, а консоль не отвечает. Делайте это вне рабочего времени или после блокировки входа. Менеджер кластера запустит новый рабочий процесс сам.
Не останавливайте службу «Агент сервера 1С:Предприятия» ради одного зависшего пользователя. Остановка службы закрывает сеансы всех баз на этом сервере.
Как сделать, чтобы сеансы не зависали
Большинство «вечных» сеансов возникает из-за того, что люди не закрывают программу. Это лечится настройками, а не ручным удалением каждое утро.
- ⏱ Время засыпания и завершения сеансов. В свойствах базы в консоли кластера есть параметры «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса» (в секундах). Например, 1200 и 3600: через 20 минут без связи сеанс засыпает и отдаёт лицензию, через час закрывается.
- 🔐 Блокировка на время регламентов. Ставьте её заранее и с сообщением. Тогда ночное обновление не упрётся в забытую программу.
- 🧹 Скрипт перед регламентом. Цепочка
rac session list→rac session terminateв планировщике Windows освобождает базу перед копированием. - 📋 Учёт по компьютерам. Раз в неделю смотрите список сеансов: повторяющиеся зависания с одного компьютера обычно означают проблемную сеть или спящий режим ноутбука.
Частые вопросы
Видит ли пользователь, что его сеанс завершили?
Можно ли завершить сеанс в файловой базе без доступа к компьютеру пользователя?
1Cv8.1CD в оснастке «Общие папки» на компьютере, где лежит база. Изнутри программы в файловом варианте отдельный сеанс не завершить.Освобождается ли лицензия после удаления сеанса?
Чем сеанс отличается от соединения в консоли?
Как завершить сеанс Конфигуратора, который держит базу?
rac, по значению Designer в колонке приложения. Несохранённые изменения конфигурации при этом пропадут, поэтому сначала свяжитесь с разработчиком.