Выгнать всех из базы 1С перед обновлением: четыре рабочих способа

· 8 мин

Содержание

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

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

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

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

Где смотреть список:

  • 👥 В режиме «1С:Предприятие» — Администрирование → Обслуживание → Активные пользователи. Видно имя, компьютер, время начала и приложение. В части релизов раздел называется «Поддержка и обслуживание».
  • 🛠 В Конфигураторе — меню Администрирование → Активные пользователи. Список только для просмотра, завершить отсюда ничего нельзя.
  • 🖥 В консоли кластера — Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Самый полный список для серверной базы.

Обратите внимание на колонку «Приложение». Она подсказывает, кто держит базу:

ПриложениеКто этоЧто делать
Тонкий клиент, Толстый клиент, Веб-клиентЖивые пользователиПредупредить и завершить
КонфигураторРазработчик или администраторДоговориться: его сеанс тоже мешает обновлению
Фоновое заданиеРегламентные задания базыЗаблокировать регламентные задания
COM-соединениеВнешняя программа, обработка, сервисНайти источник, иначе подключится снова
Веб-сервис, HTTP-сервисМобильные приложения, интеграцииОстановить публикацию или обмен на время работ

Перед массовым завершением отправьте короткое сообщение в общий чат: «В 18:00 база закрывается на 30 минут, сохраните документы». Несохранённые формы при принудительном завершении теряются.

Штатный способ: закрыть сеансы пользователей из самой программы

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP, УНФ) есть встроенная блокировка. Она работает и для файловой, и для клиент-серверной базы. Это самый мягкий вариант: люди получают предупреждение, а не внезапный обрыв.

Как включить блокировку

  1. Зайдите в базу под пользователем с полными правами.
  2. Откройте Администрирование → Обслуживание → Блокировка работы пользователей.
  3. Напишите сообщение: его увидят те, кто ещё работает, и те, кто попытается войти.
  4. Укажите время начала блокировки. Дайте людям 5–10 минут, чтобы сохранить документы.
  5. При желании задайте время окончания — блокировка снимется сама.
  6. Заполните «Код для разрешения входа». Он пригодится, чтобы войти в заблокированную базу самому.
  7. Нажмите кнопку установки блокировки.

После наступления времени начала сеансы пользователей завершаются. Ваш собственный сеанс остаётся открытым.

Что нужно для серверной базы

Для клиент-серверной базы программа попросит параметры администрирования. Это два набора логинов:

  • 🔐 администратор кластера — если в консоли кластера заданы администраторы;
  • 🔑 администратор информационной базы — пользователь 1С с полными правами.

Без них программа поставит запрет на вход, но завершить уже открытые сеансы не сможет. Если администраторы кластера не заданы, поле оставьте пустым.

Отдельно: завершить один сеанс

В форме «Активные пользователи» выделите нужную строку и выберите команду завершения сеанса в командной панели. Удобно, когда мешает один человек, а остальным работать можно.

Консоль кластера серверов: как завершить все сеансы разом

Для серверной базы надёжнее всего действовать через оснастку «Администрирование серверов 1С Предприятия». Она подключается к агенту сервера по порту 1540.

Если консоль не открывается

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

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

Номер в пути замените на версию платформы, которая стоит на сервере. Версия radmin.dll должна совпадать с версией сервера.

Порядок действий в консоли

  1. Разверните Центральные серверы 1С:Предприятия → <сервер> → Кластеры → <кластер> → Информационные базы.
  2. Откройте нужную базу и выберите узел Сеансы.
  3. Выделите все строки: щелчок по первой, затем Shift + щелчок по последней.
  4. В контекстном меню выберите «Удалить».
  5. Подтвердите действие.

У пользователей появится сообщение, что сеанс завершён администратором. Их приложение закроется или предложит переподключиться.

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

Один сеанс «Конфигуратор» в списке — частая причина, почему обновление не стартует. Удалите и его, но сначала спросите разработчика: несохранённые изменения конфигурации тоже потеряются.

Запрет новых входов и монопольный режим

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

Чтобы его получить, мало закрыть сеансы . Надо не пустить людей обратно.

Блокировка в свойствах базы

В консоли кластера откройте свойства информационной базы (правой кнопкой по базе → «Свойства»). Нужные поля:

ПолеЧто делает
Блокировка начала сеансов включенаЗапрещает новые входы
Начало и конецПериод действия запрета
Сообщение блокировкиТекст, который видит пользователь при попытке входа
Код разрешенияПароль, с которым вход всё-таки разрешён
Блокировка регламентных заданий включенаОстанавливает фоновые задания базы

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

Как войти в заблокированную базу самому

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

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

Здесь srv1c\buh — сервер и имя базы, 7788 — код разрешения из блокировки.

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

Завершение сеансов из командной строки: rac и пакетный запуск

Когда базу нужно освобождать по расписанию (ночное обновление, выгрузка копии), консоль неудобна. Есть два инструмента.

Утилита rac

rac работает через сервер администрирования ras. Его надо запустить заранее: в Windows — как службу, в Linux — командой ras cluster --daemon. По умолчанию ras слушает порт 1545.

Базовые команды:

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 infobase update с параметрами --sessions-deny=on, --scheduled-jobs-deny=on, --denied-message= и --permission-code=. Для неё нужны ещё логин и пароль администратора базы: --infobase-user= и --infobase-pwd=. Остальные параметры смотрите в rac help infobase.

Пример bat-файла, который завершает все сеансы одной базы:

@echo off
set RAC="C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe"
set CL=11111111-2222-3333-4444-555555555555
set IB=66666666-7777-8888-9999-000000000000

for /f "tokens=2 delims=: " %%s in ('%RAC% session list --cluster=%CL% --infobase=%IB% ^| findstr /b "session "') do (
    %RAC% session terminate --cluster=%CL% --session=%%s
)

Идентификаторы кластера и базы берутся из вывода первых двух команд. В Linux утилита лежит в каталоге платформы, обычно /opt/1cv8/x86_64/<версия>/rac.

Сначала выполните блокировку через rac infobase update, потом цикл завершения. Обратный порядок даёт ту же проблему, что в начале: люди успевают войти снова.

Пакетный запуск 1С с параметром блокировки

Конфигурации на БСП понимают параметр запуска /C"ЗавершитьРаботуПользователей". 1С стартует, ставит блокировку, закрывает чужие сеансы и завершается.

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

Снять блокировку можно так же, параметром /C"РазрешитьРаботуПользователей" с тем же кодом в /UC. Для серверной базы в программе должны быть заранее сохранены параметры администрирования кластера, иначе сеансы не закроются.

Этот способ работает и для файловых баз, где rac и консоль кластера неприменимы.

Сеансы не завершаются: зависшие подключения и их причины

Бывает, что блокировка стоит, сеансы удалены, а обновление всё равно пишет про занятую базу. Разбираем по типу базы.

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

В файловом режиме кластера нет, и «зависший сеанс» — это обычно процесс 1cv8.exe или 1cv8c.exe, который не закрылся на чьём-то компьютере. Файл 1Cv8.1CD остаётся открытым.

Что проверить:

  1. 🖥 На терминальном сервере — Диспетчер задач, вкладка «Пользователи» или «Подробности». Найдите процессы 1С отключённых пользователей и завершите их.
  2. 📂 На файловом сервере — оснастка «Управление компьютером» → «Общие папки» → «Открытые файлы». Там видно, кто держит 1Cv8.1CD. Закройте открытый файл.
  3. 💻 На рабочих станциях — процесс 1С после «закрытия» окна иногда висит в фоне.

Закрытие открытого файла или процесса обрывает работу пользователя. Если человек в этот момент записывал документ, возможна порча данных. Делайте это, когда уверены, что сеанс действительно мёртв.

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

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

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

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

Можно ли завершить сеансы, если у меня нет полных прав в базе?
Нет. Блокировку в программе ставит пользователь с ролью полных прав. В консоли кластера достаточно быть администратором кластера, права в самой базе для удаления сеанса не нужны.
Освободится ли лицензия после удаления сеанса?
Да, программная лицензия освобождается вместе с сеансом. Если лицензия «висит» — проверьте, не остался ли спящий сеанс того же пользователя.
Почему после удаления сеанса в консоли пользователь не видит никакого сообщения?
Его клиент мог быть уже отключён от сети. Сообщение приходит только живому клиенту. Сеанс при этом всё равно завершён.
Сколько ждать между установкой блокировки и обновлением?
Столько, сколько вы указали до начала блокировки, плюс пару минут на закрытие клиентов. Проверьте список активных пользователей: если в нём только вы, можно начинать.
Можно ли закрыть сеансы из обработки или кода конфигурации?
Можно через внешнее соединение с агентом сервера (V83.COMConnector), но это задача для программиста. Для администратора хватает штатной блокировки, консоли и rac.