Чужие сеансы мешают обновить базу 1С: как их найти и завершить

· 9 мин

Содержание

Открыть список подключённых пользователей в Конфигураторе 1С 8.3 можно через Администрирование → Активные пользователи. Сам этот список служит для просмотра: кнопки «выкинуть пользователя» в нём нет. Закрыть сеанс пользователя Конфигуратор умеет в другом месте — при обновлении конфигурации базы данных в клиент-серверной базе он предлагает завершить мешающие сеансы и повторить попытку. Для остальных случаев есть блокировка начала сеансов, консоль кластера серверов и утилита rac.

Типичная ситуация: вечер, пришло обновление, вы нажимаете «Обновить конфигурацию базы данных», а 1С отвечает, что монопольный режим установить не удалось. В базе сидит бухгалтер, который ушёл домой и не закрыл программу. Ниже — как найти такой сеанс, отключить его и не сломать при этом чужую работу. Описание касается платформы 8.3 и не зависит от конфигурации: БП 3.0, ЗУП 3.1 и УТ 11 ведут себя одинаково.

Файловая и серверная база: что можно сделать из Конфигуратора

Возможности отключения пользователей зависят от варианта работы базы. Это первое, что нужно выяснить. Посмотрите строку подключения в окне запуска 1С: путь к папке (File="D:\Bases\Buh") — файловая база, имя сервера и базы (Srvr="srv1c";Ref="buh") — клиент-серверная.

Что нужноФайловая базаКлиент-серверная база
Увидеть, кто подключёнАдминистрирование → Активные пользователиТо же, плюс консоль кластера
Завершить чужой сеансТолько закрыть 1С на компьютере пользователяКонсоль кластера, rac, диалог при обновлении
Запретить новые входыБлокировка средствами конфигурацииБлокировка начала сеансов в свойствах базы
Права, которые нужныПолные права в базеПлюс права администратора кластера, если он задан

Монопольный режим нужен не для всего. Его требуют обновление структуры базы, загрузка .dt, тестирование и исправление. Править модули, смотреть отчёты, выгружать .dt можно при работающих пользователях.

В файловой базе процессы 1С работают на компьютерах пользователей. Ни Конфигуратор, ни сервер не могут «дотянуться» до чужого 1cv8.exe. Поэтому в файловом варианте главные инструменты — договорённость с коллегами и блокировка входа.

Подготовка перед принудительным отключением

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

  1. 📣 Предупредите людей: в чат, по телефону или через сообщение блокировки (о нём ниже). Дайте 5–10 минут, чтобы сохранить документы.
  2. 🕐 Выберите время. Не завершайте сеансы во время закрытия месяца, расчёта зарплаты или массовой загрузки банковских выписок.
  3. 💾 Сделайте резервную копию, если после отключения пойдёт обновление структуры или тестирование и исправление.

Перед обновлением конфигурации базы данных обязательно сделайте копию: выгрузку .dt или бэкап СУБД. Если обновление прервётся на середине, без копии восстанавливать придётся долго.

Отдельно проверьте фоновые и регламентные задания. В клиент-серверной базе они работают как отдельные сеансы. После завершения они могут сразу стартовать снова и снова мешать монопольному режиму. Их тоже нужно заблокировать на время работ.

Список активных пользователей в Конфигураторе

Откройте базу в режиме Конфигуратор и выберите Администрирование → Активные пользователи. Появится таблица текущих подключений.

Что в ней смотреть:

  • 👤 Пользователь — имя из списка пользователей базы. Помогает понять, кому звонить.
  • 💻 Компьютер — имя машины. Если это терминальный сервер , видно только сервер, а не конкретного человека.
  • 🧩 Приложение — тип клиента: тонкий клиент, толстый клиент, Конфигуратор, фоновое задание, COM-соединение, веб-клиент.
  • ⏱ Начало работы — когда сеанс открыт. Сеанс, открытый вчера утром, — первый кандидат в «забытые».

Среди строк вы увидите и себя — сеанс Конфигуратора. Он монопольному режиму не мешает: платформа учитывает собственное подключение.

Если пользователь работает на терминальном сервере, найти его проще в диспетчере задач сервера. Вкладка «Пользователи» покажет, у кого запущен 1cv8c.exe или 1cv8.exe. Сеанс Windows такого пользователя можно отключить или завершить, и 1С закроется вместе с ним.

Завершение сеанса Windows закрывает все программы пользователя, не только 1С. Открытые таблицы Excel и письма тоже потеряются.

Как завершить сеанс пользователя при обновлении базы

Диалог «завершить сеансы» в Конфигураторе

В клиент-серверной базе всё делается из того же окна, где вы обновляете базу.

  1. В Конфигураторе выберите Конфигурация → Обновить конфигурацию базы данных (или нажмите F7).
  2. Если в базе есть другие сеансы, появится сообщение о невозможности установить монопольный режим.
  3. В этом окне платформа предлагает вариант с завершением сеансов и повторной попыткой. Выберите его.
  4. Если на кластере задан администратор, введите его имя и пароль.
  5. Дождитесь окончания обновления и проверьте результат: в Конфигураторе не должно остаться отличий между основной конфигурацией и конфигурацией базы данных.

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

Блокировка начала сеансов и код разрешения

Блокировку ставят двумя способами.

В свойствах базы на сервере. Откройте консоль администрирования серверов 1С, найдите базу в списке информационных баз и откройте её свойства. Включите блокировку начала сеансов, задайте время начала и окончания, текст сообщения и код разрешения. Там же можно заблокировать регламентные задания.

Средствами конфигурации. В типовых конфигурациях на БСП есть обработка блокировки работы пользователей, обычно в разделе Администрирование → Обслуживание. Она работает и в файловой базе: всем пользователям показывается предупреждение, а через заданное время программа закрывает их сеансы сама.

Код разрешения — пароль на вход во время блокировки. Администратор запускает Конфигуратор или 1С:Предприятие с ключом /UC:

"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UC"Обновление2"

Номер версии в пути подставьте свой: он совпадает с папкой установленной платформы.

Зависшие сеансы, блокировки и долгие транзакции

Бывает, что пользователь давно закрыл 1С, а в списке активных пользователей он всё ещё есть. Обычно это следствие обрыва сети, «убитого» процесса или зависания клиента.

Диагностика: выберите симптом

Что важно знать про транзакции. Если завершить сеанс посередине записи документа, СУБД откатит незавершённую транзакцию. Данные останутся в состоянии «до операции», половинчатого документа не появится. Риск в другом: пользователь потеряет то, что не успел записать, и операцию придётся повторить.

Не завершайте рабочий процесс rphost в диспетчере задач сервера, чтобы «освободить» один сеанс. Вместе с ним оборвутся сеансы всех пользователей, которых обслуживал этот процесс. Если без этого никак — только вне рабочего времени и с предупреждением.

Сравнение способов отключить пользователей

Выбор способа зависит от варианта базы, срочности и того, нужно ли не пускать людей обратно.

СпособКогда подходитРиски и ограничения
Попросить выйтиВсегда, первым шагомМедленно, люди забывают
Диалог завершения сеансов при обновлении в КонфигуратореСерверная база, нужно обновить структуруПользователи могут тут же зайти снова
Блокировка средствами конфигурации (БСП)Файловая и серверная база, плановые работыНужны права администратора в базе; ждёт заданный интервал
Блокировка начала сеансов в консоли кластераСерверная база, плановые и ночные работыТребует доступа к консоли и прав на кластер
Удаление сеанса в консоли кластераОдин зависший сеансНесохранённые данные пользователя теряются
rac session terminateСкрипты, ночные регламентыНужен запущенный сервис RAS
Завершение процесса на компьютере пользователяФайловая база, зависший клиентНужен доступ к машине, теряются несохранённые данные

Для разовой ночной работы в серверной базе удобна связка: блокировка начала сеансов с кодом разрешения, затем завершение оставшихся сеансов, затем обновление с ключом /UC.

Автоматизация: пакетный режим и rac

Если обновление идёт по расписанию, ручное отключение пользователей не нужно. Есть два рабочих варианта.

Через параметры запуска БСП

Типовые конфигурации на БСП понимают параметр запуска ЗавершитьРаботуПользователей. Запуск с ним включает блокировку и завершает сеансы. Параметр РазрешитьРаботуПользователей снимает блокировку.

set V8="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"
set IB=/S"srv1c\buh"
set AUTH=/N"Администратор" /P"пароль"

rem 1. Блокируем вход и отключаем пользователей
%V8% ENTERPRISE %IB% %AUTH% /C"ЗавершитьРаботуПользователей" /UC"Обновление2"

rem 2. Обновляем конфигурацию базы данных
%V8% DESIGNER %IB% %AUTH% /UC"Обновление2" /UpdateDBCfg /Out"C:\Logs\update.log"

rem 3. Снимаем блокировку
%V8% ENTERPRISE %IB% %AUTH% /C"РазрешитьРаботуПользователей" /UC"Обновление2"

Код в /UC во всех трёх командах должен совпадать. Пароль администратора в bat-файле храните на сервере с ограниченным доступом к папке.

Через утилиту rac

Утилита rac работает с кластером через сервис администрирования RAS (по умолчанию порт 1545). Сервис нужно установить и запустить отдельно.

rem Узнать идентификатор кластера
rac.exe localhost:1545 cluster list

rem Список сеансов кластера
rac.exe localhost:1545 session list --cluster=<id-кластера>

rem Завершить конкретный сеанс
rac.exe localhost:1545 session terminate --cluster=<id-кластера> --session=<id-сеанса>

Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Для фильтра по одной базе и для управления блокировкой начала сеансов смотрите справку rac help session и rac help infobase.

Скрипт завершения сеансов запускайте только по расписанию вне рабочего времени. Днём он оборвёт работу всем, кто в этот момент проводит документы.

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

Меньше зависших сеансов — меньше ночных звонков. Помогают простые настройки.

  • ⏳ Таймаут бездействия. В типовых конфигурациях на БСП администратор может задать время, после которого неактивный пользователь отключается. Ищите эту настройку в разделе Администрирование среди параметров пользователей и прав.
  • 🔄 Плановое окно работ. Обновления — в один и тот же день и час. Пользователи привыкают, что в это время база закрыта.
  • 🧹 Порядок с регламентными заданиями. Обмены и загрузки, которые идут ночью, сдвиньте так, чтобы они не пересекались с обновлением.
  • 🖥 Терминальный сервер. Настройте в Windows отключение простаивающих сеансов. Брошенная на ночь 1С закроется вместе с сеансом Windows.
  • 👥 Отдельные пользователи для обменов. Если COM-соединения и веб-сервисы работают под своими учётными записями, в списке активных сразу видно, что это не человек.
Перед ночным обновлением базы
Выполнено: 0 / 6

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

Можно ли завершить чужой сеанс в файловой базе из Конфигуратора?
Нет. В файловом варианте Конфигуратор показывает активных пользователей, но завершить их сеансы не может. Используйте блокировку средствами конфигурации или закройте 1С на компьютере пользователя.
Почему в списке активных пользователей я вижу свой сеанс дважды?
Скорее всего, у вас открыты и Конфигуратор, и 1С:Предприятие. Это два разных сеанса. Для обновления структуры закройте режим Предприятия.
Тратит ли зависший сеанс лицензию?
Да, пока сеанс существует, он занимает клиентскую лицензию. Если лицензий не хватает, а в списке висят старые сеансы, удалите их в консоли кластера.
Что увидит пользователь, если его сеанс завершили?
Сообщение о разрыве соединения с сервером или о завершении работы. Несохранённые изменения пропадут, записанные документы останутся.
Можно ли войти в заблокированную базу, если код разрешения забыт?
В серверной базе администратор кластера снимает блокировку начала сеансов в свойствах базы в консоли. Блокировка, поставленная обработкой конфигурации, снимается сама по окончании заданного периода, если его указали при установке.