Как выкинуть пользователя из базы 1С, если он не выходит сам

· 9 мин

Содержание

Завершить сеанс пользователя 1С проще всего из самой программы: Администрирование → Обслуживание → Активные пользователи, выделить сеанс и выполнить команду завершения. Это работает в клиент-серверной базе. Если программа не открывается или сеанс висит, его удаляют в консоли администрирования серверов (ветка Сеансы), из командной строки утилитой rac или, в крайнем случае, снимают процесс в Диспетчере задач.

Способ выбирают по варианту базы. В файловой базе «выкинуть» конкретного пользователя из программы 1С изнутри нельзя: там работают блокировка входа и закрытие процесса на компьютере пользователя. В серверной доступно всё: и форма в программе, и консоль, и командная строка.

СпособФайловая базаСерверная базаКогда выбирать
«Активные пользователи» в программетолько просмотрда1–2 сеанса, база открывается
Блокировка работы пользователейдаданужно выгнать всех перед обновлением
Консоль кластера—дасеанс завис, программа не нужна
Утилита rac—даскрипты, ночные регламенты
Диспетчер задачдада, с оговоркамивсё остальное не сработало

Перед тем как завершить сеанс: что потеряет пользователь

Завершение сеанса — это обрыв, а не вежливый выход. Всё, что человек не записал, пропадёт.

  • 📝 Несохранённый документ или справочник. Проведённые и записанные данные остаются в базе.
  • 🔄 Длинная операция (закрытие месяца , перепроведение, выгрузка). Транзакция откатится, операцию придётся запускать заново.
  • 🛠 Сеанс Конфигуратора. Если в нём были несохранённые изменения конфигурации, они пропадут, а захваченные в хранилище объекты останутся захваченными.

Позвоните или напишите пользователю. Две минуты на «сохранись и выйди» почти всегда дешевле, чем перепроводить документы после обрыва.

Есть и плюс: завершённый сеанс освобождает лицензию. Поэтому сеансы часто удаляют, когда кто-то не может войти из-за нехватки лицензий, а в списке висят сотрудники, ушедшие домой с открытой программой.

Как завершить сеанс пользователя в самой программе 1С

Этот способ подходит для типовых конфигураций на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP. Нужны права администратора в базе.

Форма «Активные пользователи»

  1. Откройте раздел Администрирование → Обслуживание (в старых релизах раздел называется «Поддержка и обслуживание»).
  2. Найдите группу Администрирование и ссылку Активные пользователи.
  3. В списке видны пользователь, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание) и время начала сеанса.
  4. Выделите нужную строку и выполните команду завершения сеанса в командной панели формы.
  5. Обновите список: строка должна исчезнуть.

У пользователя появится сообщение о том, что сеанс завершён, и программа закроется. Свой собственный сеанс так завершить нельзя.

В файловой базе та же форма показывает только список: кто сейчас в программе. Это всё равно полезно, чтобы знать, кому звонить.

В Конфигураторе тоже есть список активных пользователей в меню Администрирование. Он только показывает, кто подключён к базе: завершить сеанс оттуда нельзя. Используйте его, когда Конфигуратор пишет, что база занята, и нужно понять, кто именно в ней работает.

Блокировка работы пользователей

Когда нужно выгнать всех разом, например перед обновлением, используйте блокировку. Она лежит там же, в Администрирование → Обслуживание.

  1. Включите блокировку, укажите время начала и окончания.
  2. Напишите сообщение: его увидят пользователи («Обновление базы, выйдите до 19:00»).
  3. Задайте код разрешения, например KOD123.
  4. Нажмите кнопку установки блокировки.

Программа предупредит работающих пользователей, а после наступления времени блокировки завершит их сеансы. Новые входы будут запрещены. Сами вы войдёте с параметром запуска /UCKOD123: добавьте его в строку «Дополнительные параметры запуска» в свойствах базы в окне запуска.

Не забудьте снять блокировку после работ. Иначе утром бухгалтерия увидит сообщение о блокировке и не сможет войти.

В конфигурациях на БСП есть и параметры запуска для того же сценария: /C"ЗавершитьРаботуПользователей" устанавливает блокировку и закрывает сеансы, /C"РазрешитьРаботуПользователей" снимает её. Их удобно ставить в ярлык администратора или в скрипт обновления.

Удаление сеансов в консоли администрирования серверов 1С

Консоль работает без входа в базу, поэтому это основной способ для зависших сеансов. Она есть только в клиент-серверном варианте.

Как открыть консоль

Консоль ставится вместе с платформой как компонент «Администрирование сервера 1С:Предприятия». Ярлык ищите в меню «Пуск» в папке версии платформы.

Если консоль открывается пустой или с ошибкой оснастки, зарегистрируйте библиотеку radmin.dll той же версии, что сервер. Командная строка от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути замените на свой: он должен совпадать с номером сервера 1С.

Пошагово

  1. В дереве консоли добавьте центральный сервер, если его там нет: имя компьютера и порт агента 1540.
  2. Раскройте Кластеры → Локальный кластер → Информационные базы → <имя базы> → Сеансы.
  3. В правой части появится список сеансов этой базы: пользователь, компьютер, приложение, время начала и последней активности.
  4. Выделите сеанс правой кнопкой мыши и выберите Удалить.
  5. Подтвердите удаление.

Если нужно посмотреть сеансы всех баз сразу, откройте ветку Сеансы прямо под кластером.

Отсортируйте список по колонке «Компьютер». Так видно, кто открыл базу с двух машин и занимает две лицензии.

Запрет входа на уровне кластера

В свойствах информационной базы в консоли (правая кнопка → Свойства) есть флажок блокировки начала сеансов, поля сообщения и кода разрешения. Это та же блокировка, что и в программе, но включается она без входа в 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С через Диспетчер задач

Это крайняя мера. Перед снятием любого процесса предупредите людей: оборвутся все сеансы, которые он обслуживает.

Файловая база

У файловой базы нет сервера, и программа работает прямо на компьютере пользователя. Варианты:

  1. На компьютере пользователя откройте Диспетчер задач, вкладку «Подробности», и завершите процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор).
  2. Если база лежит в общей папке на сервере, откройте там fsmgmt.msc → Открытые файлы. Найдите файл 1Cv8.1CD, по колонке «Пользователь» определите сотрудника и закройте файл. Программа у него потеряет связь с базой.
  3. На терминальном сервере откройте Диспетчер задач, вкладку «Пользователи», и выберите выход из системы для сотрудника. Закроются все его программы, не только 1С.

Серверная база

На сервере 1С сеансы обслуживают процессы rphost.exe. Один такой процесс держит десятки сеансов разных людей, и снять его ради одного пользователя — значит выкинуть всех, кто к нему привязан.

Снимать rphost.exe имеет смысл, только когда процесс завис целиком: занял всю память или процессор, а консоль не отвечает. Делайте это вне рабочего времени или после блокировки входа. Менеджер кластера запустит новый рабочий процесс сам.

Не останавливайте службу «Агент сервера 1С:Предприятия» ради одного зависшего пользователя. Остановка службы закрывает сеансы всех баз на этом сервере.

Как сделать, чтобы сеансы не зависали

Большинство «вечных» сеансов возникает из-за того, что люди не закрывают программу. Это лечится настройками, а не ручным удалением каждое утро.

  • ⏱ Время засыпания и завершения сеансов. В свойствах базы в консоли кластера есть параметры «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса» (в секундах). Например, 1200 и 3600: через 20 минут без связи сеанс засыпает и отдаёт лицензию, через час закрывается.
  • 🔐 Блокировка на время регламентов. Ставьте её заранее и с сообщением. Тогда ночное обновление не упрётся в забытую программу.
  • 🧹 Скрипт перед регламентом. Цепочка rac session list → rac session terminate в планировщике Windows освобождает базу перед копированием.
  • 📋 Учёт по компьютерам. Раз в неделю смотрите список сеансов: повторяющиеся зависания с одного компьютера обычно означают проблемную сеть или спящий режим ноутбука.
Перед ночным обслуживанием базы
Выполнено: 0 / 5

Частые вопросы

Видит ли пользователь, что его сеанс завершили?
Да. Программа показывает сообщение о том, что сеанс завершён или отсутствует, и закрывается. Повторно войти он сможет сразу, если не включена блокировка входа.
Можно ли завершить сеанс в файловой базе без доступа к компьютеру пользователя?
Можно закрыть файл 1Cv8.1CD в оснастке «Общие папки» на компьютере, где лежит база. Изнутри программы в файловом варианте отдельный сеанс не завершить.
Освобождается ли лицензия после удаления сеанса?
Да, лицензию занимает сеанс. После его удаления в консоли лицензия свободна, новый пользователь может войти.
Чем сеанс отличается от соединения в консоли?
Сеанс — это работа пользователя в базе. Соединение — канал связи с рабочим процессом. Удалять нужно сеанс: соединение без сеанса ничего не блокирует, а при удалении сеанса его соединение закроется само.
Как завершить сеанс Конфигуратора, который держит базу?
Так же, как обычный: в консоли или через rac, по значению Designer в колонке приложения. Несохранённые изменения конфигурации при этом пропадут, поэтому сначала свяжитесь с разработчиком.