Освобождаем базу 1С от пользователей перед обновлением: конфигуратор, консоль, rac
Содержание
Сам конфигуратор 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) есть встроенный механизм.
- Откройте
Администрирование → Обслуживаниеи найдите ссылку «Блокировка работы пользователей». - Заполните сообщение, которое увидят пользователи: «С 19:00 до 19:30 обновление базы, сохраните документы».
- Задайте время начала и окончания блокировки.
- Укажите код разрешения — тот самый
7788. - Нажмите «Установить блокировку».
После этого новые входы запрещены, а работающим пользователям программа показывает предупреждение и через несколько минут завершает их сеансы. Ваш собственный сеанс программа тоже закроет.
В конфигуратор вы входите уже с кодом разрешения. Для этого допишите параметр /UC в строку запуска или в поле дополнительных параметров базы в окне запуска:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC 7788
Без /UC с правильным кодом заблокированная база не откроется даже администратору. Код храните там, где его найдёт коллега, если вы заболеете.
Способ 2. Консоль администрирования кластера
Для клиент-серверной базы это самый быстрый и надёжный путь.
- Запустите «Администрирование серверов 1С Предприятия» на сервере или на машине с установленной консолью.
- Раскройте: центральный сервер → «Кластеры» → ваш кластер → «Информационные базы» → нужная база → «Сеансы».
- Выделите все сеансы, кроме своего (
Ctrl+A, затем снимите выделение со своей строки). - Правой кнопкой → «Удалить». Подтвердите.
Чтобы люди не зашли обратно через минуту, откройте свойства информационной базы в той же консоли и включите:
- ☑ «Блокировка начала сеансов включена» — с указанием времени, сообщения и кода разрешения;
- ☑ «Блокировка регламентных заданий включена» — иначе сервер тут же поднимет фоновые задания.
Для изменения свойств базы консоль попросит логин и пароль администратора информационной базы (пользователя 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: предупреждение, затем завершение сеансов. Запуск конфигуратора — с параметром/UC. - Список пользователей в конфигураторе (
Администрирование → Активные пользователи) — чтобы понять, у кого открыта 1С, и позвонить человеку. - Закрытие процессов — если база лежит на терминальном сервере, администратор закрывает процессы 1С пользователей. Для всех сразу:
taskkill /F /IM 1cv8c.exe
taskkill /F /IM 1cv8.exe
taskkill /F закрывает 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С сломалась».