Чужие сеансы мешают обновить базу 1С: как их найти и завершить
Содержание
Открыть список подключённых пользователей в Конфигураторе 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. Поэтому в файловом варианте главные инструменты — договорённость с коллегами и блокировка входа.
Подготовка перед принудительным отключением
Принудительное завершение сеанса обрывает работу пользователя. Несохранённый документ пропадёт, незавершённая транзакция откатится. Перед тем как кого-то выключать, сделайте три вещи.
- 📣 Предупредите людей: в чат, по телефону или через сообщение блокировки (о нём ниже). Дайте 5–10 минут, чтобы сохранить документы.
- 🕐 Выберите время. Не завершайте сеансы во время закрытия месяца, расчёта зарплаты или массовой загрузки банковских выписок.
- 💾 Сделайте резервную копию, если после отключения пойдёт обновление структуры или тестирование и исправление.
Перед обновлением конфигурации базы данных обязательно сделайте копию: выгрузку .dt или бэкап СУБД. Если обновление прервётся на середине, без копии восстанавливать придётся долго.
Отдельно проверьте фоновые и регламентные задания. В клиент-серверной базе они работают как отдельные сеансы. После завершения они могут сразу стартовать снова и снова мешать монопольному режиму. Их тоже нужно заблокировать на время работ.
Список активных пользователей в Конфигураторе
Откройте базу в режиме Конфигуратор и выберите Администрирование → Активные пользователи. Появится таблица текущих подключений.
Что в ней смотреть:
- 👤 Пользователь — имя из списка пользователей базы. Помогает понять, кому звонить.
- 💻 Компьютер — имя машины. Если это терминальный сервер , видно только сервер, а не конкретного человека.
- 🧩 Приложение — тип клиента: тонкий клиент, толстый клиент, Конфигуратор, фоновое задание, COM-соединение, веб-клиент.
- ⏱ Начало работы — когда сеанс открыт. Сеанс, открытый вчера утром, — первый кандидат в «забытые».
Среди строк вы увидите и себя — сеанс Конфигуратора. Он монопольному режиму не мешает: платформа учитывает собственное подключение.
Если пользователь работает на терминальном сервере, найти его проще в диспетчере задач сервера. Вкладка «Пользователи» покажет, у кого запущен 1cv8c.exe или 1cv8.exe. Сеанс Windows такого пользователя можно отключить или завершить, и 1С закроется вместе с ним.
Завершение сеанса Windows закрывает все программы пользователя, не только 1С. Открытые таблицы Excel и письма тоже потеряются.
Как завершить сеанс пользователя при обновлении базы
Диалог «завершить сеансы» в Конфигураторе
В клиент-серверной базе всё делается из того же окна, где вы обновляете базу.
- В Конфигураторе выберите
Конфигурация → Обновить конфигурацию базы данных(или нажмитеF7). - Если в базе есть другие сеансы, появится сообщение о невозможности установить монопольный режим.
- В этом окне платформа предлагает вариант с завершением сеансов и повторной попыткой. Выберите его.
- Если на кластере задан администратор, введите его имя и пароль.
- Дождитесь окончания обновления и проверьте результат: в Конфигураторе не должно остаться отличий между основной конфигурацией и конфигурацией базы данных.
Сеансы пользователей завершатся, у людей на экране появится сообщение о разрыве соединения. Если пользователь сразу войдёт снова, обновление опять упрётся в его сеанс. Поэтому на время работ включайте блокировку входа.
Блокировка начала сеансов и код разрешения
Блокировку ставят двумя способами.
В свойствах базы на сервере. Откройте консоль администрирования серверов 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-соединения и веб-сервисы работают под своими учётными записями, в списке активных сразу видно, что это не человек.