Освобождаем базу 1С от пользователей перед обновлением: конфигуратор, консоль, rac

· 10 мин

Содержание

Сам конфигуратор 1С 8.3 почти никого не «выкидывает»: в нём можно посмотреть, кто сидит в базе (Администрирование → Активные пользователи), но кнопки «завершить сеанс» там нет. Выгнать всех пользователей из базы можно тремя рабочими способами: установить блокировку начала сеансов в самой программе, удалить сеансы в консоли администрирования кластера или командой rac session terminate. Конфигуратор после этого спокойно получает монопольный доступ.

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

Что сделать до того, как разрывать соединения

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

✅ Что проверить перед стартом:

  • 📢 Предупредить пользователей — за 10–15 минут, в общем чате или по почте. Назовите время, когда база станет недоступна, и сколько продлится работа.
  • 🔑 Придумать код разрешения — любое число или строку, например 7788. С ним вы сами войдёте в заблокированную базу.
  • 💾 Сделать резервную копию — если впереди обновление конфигурации или загрузка .dt. Для клиент-серверной базы это копия средствами СУБД, для файловой — копия каталога или выгрузка.
  • ⏸ Учесть регламентные задания — обмены, загрузка курсов, проверка контрагентов. Это тоже сеансы, и на сервере они перезапускаются сами.
  • 👤 Проверить права — для блокировки из программы нужны права администратора информационной базы, для консоли кластера — логин и пароль администратора кластера, если он задан.

Монопольный доступ нужен не всегда. Он требуется для обновления структуры базы (Обновить конфигурацию базы данных с реструктуризацией), загрузки информационной базы из .dt, а также для тестирования и исправления. Для правки отчёта во внешнем файле или просмотра конфигурации выгонять людей не нужно.

Монопольный режим конфигуратора: когда он нужен и почему не включается

Монопольный режим означает, что с базой работает только один сеанс — ваш. Конфигуратор запрашивает его сам в момент, когда операция этого требует. Отдельно «включать» его заранее чаще всего не приходится.

Типичная картина: вы нажимаете F7 (обновление конфигурации базы данных), а программа сообщает, что установить монопольный режим не удалось и в базе есть другие пользователи. В клиент-серверном варианте конфигуратор показывает список мешающих сеансов. В современных версиях платформы в этом окне есть вариант завершить сеансы и повторить операцию — если ваша учётная запись имеет права на это в кластере.

Что именно мешает монопольному режиму:

  • 🖥 открытые клиенты 1С:Предприятия у пользователей (толстый, тонкий, веб-клиент);
  • ⚙️ фоновые и регламентные задания, запущенные сервером;
  • 🔌 внешние соединения — COM-подключения, обмены через HTTP-сервисы, веб-сервисы;
  • 🛠 второй конфигуратор, открытый коллегой или вами в соседнем окне;
  • 👻 «мёртвые» сеансы, у которых клиент давно закрыт, а сервер ещё держит соединение.

Последний пункт — самый коварный. Список пользователей пуст по ощущениям, а платформа считает базу занятой. Такие сеансы снимаются только через консоль кластера или rac.

Кто сейчас в базе: смотрим активные сеансы

Прежде чем кого-то выкидывать, посмотрите, кто подключён. Источников три, и они показывают разное.

Где смотретьКак открытьЧто видноМожно завершить?
КонфигураторАдминистрирование → Активные пользователиПользователь, компьютер, приложение, время началаНет
Типовая конфигурация (БП 3.0, ЗУП 3.1, УТ 11)Администрирование → Обслуживание → «Активные пользователи»То же, плюс отбор и сортировкаДа, для клиент-серверной базы
Консоль кластераКластер → Информационные базы → база → «Сеансы»Все сеансы, включая фоновые и мёртвые, блокировки, время вызоваДа

Колонка «Приложение» подсказывает тип сеанса. «Тонкий клиент» или «Толстый клиент» — живой человек. «Фоновое задание» — сервер выполняет регламент. «Конфигуратор» — кто-то открыл режим разработки. «COM-соединение» — внешняя программа или обмен.

💡 Если в списке висит пользователь, который клянётся, что 1С у него закрыта, посмотрите колонку «Компьютер». Часто это терминальный сервер , где сеанс Windows отключён, но не завершён, и 1С внутри него продолжает работать.

Как принудительно завершить сеансы всех пользователей

Ниже три способа — от самого мягкого к самому жёсткому. Мягкий даёт людям время сохраниться, жёсткий обрывает сеансы мгновенно.

СпособКогда применятьЧто оборвётся
Блокировка работы пользователей в программеПлановое обновление, есть 5–10 минутСеансы завершатся сами после предупреждения
Удаление сеансов в консоли кластераНужно быстро, есть доступ к серверу 1СВсё, что выделено, сразу
rac session terminateРегулярные работы, скрипт по расписаниюВсё, что передано скрипту

Способ 1. Блокировка работы пользователей в типовой конфигурации

В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) есть встроенный механизм.

  1. Откройте Администрирование → Обслуживание и найдите ссылку «Блокировка работы пользователей».
  2. Заполните сообщение, которое увидят пользователи: «С 19:00 до 19:30 обновление базы, сохраните документы».
  3. Задайте время начала и окончания блокировки.
  4. Укажите код разрешения — тот самый 7788.
  5. Нажмите «Установить блокировку».

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

В конфигуратор вы входите уже с кодом разрешения. Для этого допишите параметр /UC в строку запуска или в поле дополнительных параметров базы в окне запуска:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC 7788

Без /UC с правильным кодом заблокированная база не откроется даже администратору. Код храните там, где его найдёт коллега, если вы заболеете.

Способ 2. Консоль администрирования кластера

Для клиент-серверной базы это самый быстрый и надёжный путь.

  1. Запустите «Администрирование серверов 1С Предприятия» на сервере или на машине с установленной консолью.
  2. Раскройте: центральный сервер → «Кластеры» → ваш кластер → «Информационные базы» → нужная база → «Сеансы».
  3. Выделите все сеансы, кроме своего (Ctrl+A, затем снимите выделение со своей строки).
  4. Правой кнопкой → «Удалить». Подтвердите.

Чтобы люди не зашли обратно через минуту, откройте свойства информационной базы в той же консоли и включите:

  • ☑ «Блокировка начала сеансов включена» — с указанием времени, сообщения и кода разрешения;
  • ☑ «Блокировка регламентных заданий включена» — иначе сервер тут же поднимет фоновые задания.

Для изменения свойств базы консоль попросит логин и пароль администратора информационной базы (пользователя 1С с полными правами).

Удаление сеанса обрывает работу пользователя без сохранения. Не удаляйте сеансы в рабочее время без предупреждения, особенно сеансы с долгим текущим вызовом: это может быть проведение документов за месяц или закрытие периода.

Способ 3. Через rac из командной строки

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

Порядок команд:

rac cluster list
rac infobase summary list --cluster=<id_кластера>
rac session list --cluster=<id_кластера> --infobase=<id_базы>
rac session terminate --cluster=<id_кластера> --session=<id_сеанса>

Первая команда даёт идентификатор кластера, вторая — идентификатор базы, третья — список сеансов, четвёртая завершает один сеанс. Если в кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров для вашей версии покажет rac help session.

Блокировки и «захваченные» объекты после разрыва

Выкинуть людей — полдела. Иногда после этого база всё равно ведёт себя так, будто занята.

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

💡 В консоли кластера в списке сеансов можно включить дополнительные колонки — про блокировки СУБД и управляемые блокировки, время вызова. Они быстро показывают, кто тормозит остальных, и позволяют удалить один сеанс вместо всех.

Файловая база: как выгнать пользователей без кластера

У файловой базы нет сервера 1С, консоли кластера и rac. Каждый пользователь работает с файлом 1Cv8.1CD напрямую, а занятость базы отмечается в служебном файле 1Cv8.1CL в том же каталоге.

Что работает для файловой базы:

  1. Блокировка работы пользователей из Администрирование → Обслуживание в типовой конфигурации. Механизм тот же, что в способе 1: предупреждение, затем завершение сеансов. Запуск конфигуратора — с параметром /UC.
  2. Список пользователей в конфигураторе (Администрирование → Активные пользователи) — чтобы понять, у кого открыта 1С, и позвонить человеку.
  3. Закрытие процессов — если база лежит на терминальном сервере, администратор закрывает процессы 1С пользователей. Для всех сразу:
taskkill /F /IM 1cv8c.exe
taskkill /F /IM 1cv8.exe

taskkill /F закрывает 1С у всех пользователей сервера и во всех базах, а не только в нужной. Несохранённые данные пропадут. Выполняйте после предупреждения и в нерабочее время. Если на сервере работают с несколькими базами, лучше закрывать процессы точечно, по пользователям, в диспетчере задач.

  1. Сетевая папка — если база лежит в общей папке, открытые файлы видно в оснастке «Общие папки» → «Открытые файлы» на машине, где лежит каталог. Закрытие файла там обрывает работу пользователя так же жёстко.

Не удаляйте файл 1Cv8.1CL, пока к базе подключены живые процессы. Блокировка не снимется по-настоящему, а одновременная запись в базу может её повредить. Удалять его имеет смысл только тогда, когда точно никого нет, а 1С после сбоя всё равно считает базу занятой.

Автоматизация: скрипт для ночных регламентных работ

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

Через параметры запуска типовой конфигурации

В конфигурациях на БСП предусмотрены параметры командной строки для пакетного запуска в режиме предприятия:

rem 1. Запретить вход и завершить сеансы
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "srv1c\buh" /N "Администратор" /P "пароль" /C "ЗавершитьРаботуПользователей" /UC 7788

rem 2. Обновить конфигурацию базы данных
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC 7788 /UpdateDBCfg /Out "C:\logs\update.log"

rem 3. Снять блокировку
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "srv1c\buh" /N "Администратор" /P "пароль" /C "РазрешитьРаботуПользователей" /UC 7788

Сеанс с ЗавершитьРаботуПользователей устанавливает блокировку, ждёт завершения остальных и закрывается сам. Для файловой базы вместо /S используется /F "D:\Bases\buh".

Через rac и PowerShell

Для клиент-серверной базы надёжнее работать с кластером напрямую. Скрипт ниже завершает все сеансы одной базы:

$rac = "C:\Program Files\1cv8\8.3.25.1374\bin\rac.exe"
$cluster = "<id_кластера>"
$infobase = "<id_базы>"

& $rac session list --cluster=$cluster --infobase=$infobase |
  Select-String '^session\s*:' |
  ForEach-Object { ($_.Line -split ':', 2)[1].Trim() } |
  ForEach-Object { & $rac session terminate --cluster=$cluster --session=$_ }

Путь к rac.exe поправьте под установленную версию платформы. Перед запуском скрипта включите блокировку начала сеансов в свойствах базы (в консоли или через rac infobase update, параметры смотрите в rac help infobase), иначе пользователи успеют зайти снова.

💡 Снимайте блокировку в конце скрипта отдельным шагом и проверяйте лог. Забытая блокировка утром выглядит для бухгалтерии как «1С сломалась».

Регламентное окно без сюрпризов
Выполнено: 0 / 6

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

Можно ли завершить сеанс одного пользователя, не трогая остальных?
Да. В консоли кластера выделите только его сеанс и удалите. В типовой конфигурации это же делается в списке «Активные пользователи» для клиент-серверной базы.
Почему после удаления сеанса пользователь сразу вошёл снова?
Удаление сеанса не запрещает новый вход. Чтобы люди не возвращались, нужна блокировка начала сеансов в свойствах базы или в типовой конфигурации.
Сколько ждёт программа, прежде чем закрыть сеансы при блокировке?
Несколько минут после показа предупреждения. Точный интервал зависит от версии БСП, поэтому ставьте время начала блокировки с запасом 10–15 минут.
Забыл код разрешения, база заблокирована. Что делать?
Для клиент-серверной базы снимите блокировку начала сеансов в свойствах базы в консоли кластера. Для файловой — дождитесь времени окончания блокировки, если оно было задано, или обратитесь к тому, кто её ставил.
Лицензия освобождается сразу после удаления сеанса?
Да, клиентская лицензия освобождается вместе с сеансом. Если лицензия «зависла», проверьте в консоли, не остался ли сеанс этого пользователя с другого компьютера.