Отключение базы 1С: как закрыть доступ и остановить работу

· 9 мин

Содержание

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

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

С чего начать: предупредить людей и выбрать способ

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

Определите тип базы — от этого зависит способ:

  • 📁 Файловая база — один файл 1Cv8.1CD в сетевой папке. Нет службы и кластера, управлять подключениями можно только из режима Предприятия, из конфигуратора или на уровне прав доступа к папке.
  • 🖥 Клиент-серверная база — данные в СУБД (PostgreSQL или MS SQL), доступ идёт через сервер 1С. Здесь работают консоль администрирования, утилита rac и управление службой.
Подготовка перед отключением базы
Выполнено: 0 / 4

Резервная копия нужна перед обслуживанием, ради которого вы отключаете базу (обновление, свёртка, тестирование). Просто для блокировки входа бэкап не обязателен, но лишним не будет.

Блокировка входа в режиме Предприятия

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

В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) механизм называется «Блокировка работы пользователей»:

  1. Войдите в базу с правами администратора.
  2. Откройте Администрирование → Обслуживание → Блокировка работы пользователей.
  3. Включите флаг блокировки, задайте дату и время, с которого вход закрывается.
  4. Укажите код разрешения — слово, по которому администратор всё же сможет войти, передав его параметром запуска.
  5. При желании впишите текст, который увидят пользователи при попытке входа.

Путь к блокировке в некоторых конфигурациях лежит в разделе «Поддержка и обслуживание». Если в вашем интерфейсе пункта нет на том же месте — ищите его в разделе администрирования рядом с регламентными операциями.

После включения база формально работает, но зайти в неё сможет только тот, кто знает код разрешения. Чтобы войти администратором при включённой блокировке, добавьте в параметры запуска ярлыка 1С ключ с кодом разрешения — платформа пропустит такой сеанс.

Снимается блокировка там же: снять флаг и записать. Этот способ не останавливает базу физически — он только запрещает новые входы средствами конфигурации.

Закрытие доступа через конфигуратор

Конфигуратор даёт блокировку на уровне платформы, не зависящую от конфигурации. Работает одинаково для файловых и серверных баз.

  1. Запустите базу в режиме Конфигуратор под administrator.
  2. Откройте Администрирование → Блокировка установки соединений с информационной базой.
  3. Задайте начало и, если нужно, конец периода блокировки.
  4. Впишите код разрешения и сообщение для пользователей.
  5. Нажмите «Установить блокировку».

Пока блокировка активна, новые сеансы не создаются — ни из Предприятия, ни из конфигуратора, — кроме тех, кто запускается с правильным кодом разрешения в параметрах запуска.

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

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

Остановка через консоль администрирования сервера

Для клиент-серверной базы есть прямой способ закрыть доступ в кластере — через консоль администрирования серверов 1С.

Запрет новых сеансов:

  1. Откройте консоль администрирования (Администрирование серверов 1С Предприятия).
  2. Разверните кластер → Информационные базы → выберите нужную базу.
  3. В свойствах базы включите «Блокировка начала сеансов включена».
  4. Задайте код разрешения и, при желании, сообщение и расписание блокировки.

Рядом есть отдельный флаг «Блокировка регламентных заданий включена». Если вы отключаете базу для обслуживания, его тоже стоит включить: иначе на фоне продолжат работать обмены, закрытие месяца и индексация поиска — они держат соединения и мешают получить монопольный доступ.

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

  1. В ветке базы откройте список сеансов.
  2. Выделите сеансы и выполните команду завершения сеанса из контекстного меню.

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

Если консоль не открывается или не видит кластер, проверьте, что служба агента запущена, а при переустановке платформы может потребоваться заново зарегистрировать библиотеку консоли (radmin.dll) командой regsvr32. Без корректной регистрации оснастка покажет пустой список серверов.

Управление базой через утилиту rac

rac — консольная утилита администрирования кластера. Полезна, когда графической консоли нет (например, сервер на Linux) или действия нужно выполнять скриптом.

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

# список кластеров — берём UUID кластера
rac cluster list

# список информационных баз кластера
rac infobase summary list --cluster=<UUID кластера>

# активные сеансы по базе
rac session list --cluster=<UUID кластера>

Параметры rac чувствительны к версии платформы и к точным именам ключей. Если не уверены в синтаксисе команды — не угадывайте: выполните rac help или rac infobase help. Неверный ключ в лучшем случае вернёт ошибку, в худшем — применит не то, что вы хотели.

Запрет новых сеансов и завершение активных выполняются командами над информационной базой и над сеансами соответственно: у rac infobase update есть ключ запрета сеансов с кодом разрешения, у rac session terminate — указание сеанса по его идентификатору из rac session list. Точные имена ключей для вашей версии смотрите в rac help.

Почти всем командам rac нужен UUID кластера из rac cluster list — его подставляют в ключ --cluster. Идентификатор сеанса для завершения берут из вывода rac session list: каждая строка начинается с UUID сеанса, именно его указывают в команде завершения. Код разрешения (ключ запрета сеансов у rac infobase update) должен совпадать с тем, что вы задаёте при блокировке, иначе администратор не войдёт в заблокированную базу.

rac подключается к серверу администрирования (ras). Если команды возвращают ошибку соединения, сначала убедитесь, что сервис администрирования запущен и слушает свой порт (по умолчанию 1545), а в команде указан правильный адрес и порт сервера.

Остановка службы агента и отключение на уровне СУБД

Это самые радикальные способы. Они отключают базу целиком, но затрагивают лишнее.

Остановка службы агента сервера. Служба «Агент сервера 1С:Предприятия» (ragent) обслуживает весь кластер.

  1. Откройте оснастку служб (services.msc).
  2. Найдите службу вида «Агент сервера 1С:Предприятия 8.3».
  3. Остановите её.

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

Отключение базы на уровне СУБД. Если база в MS SQL, администратор СУБД может перевести её в офлайн:

ALTER DATABASE [имя_базы] SET OFFLINE WITH ROLLBACK IMMEDIATE;

Ключ WITH ROLLBACK IMMEDIATE принудительно откатывает открытые транзакции и отключает всех. Вернуть базу в работу:

ALTER DATABASE [имя_базы] SET ONLINE;

Переводить базу в офлайн, пока сервер 1С считает её рабочей, рискованно: агент может писать в неё. Сначала заблокируйте сеансы в кластере и завершите соединения, и только потом работайте с СУБД.

Файловая база. Отдельной службы нет. Чтобы полностью закрыть доступ, ограничьте права на сетевую папку с файлом 1Cv8.1CD (убрать доступ на чтение и запись у пользователей) либо временно переместите папку. Пока файл занят открытым сеансом, переместить его не получится — сначала дождитесь выхода пользователей или снимите их блокировкой из конфигуратора.

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

Как убедиться, что активных соединений не осталось

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

В клиент-серверной базе откройте в консоли администрирования или в rac session list список сеансов выбранной базы. Пустой список означает, что активных пользователей нет. Заодно посмотрите соединения — фоновые задания и регламентные операции тоже держат соединение, хотя это и не пользовательские сеансы.

В любой базе из режима Предприятия откройте список активных пользователей: раздел Администрирование → Обслуживание → Активные пользователи (или одноимённый пункт через «Все функции»). Там видно, кто сейчас в базе, с какого компьютера и когда начал сеанс.

Если список не пустеет, а люди уверяют, что вышли, типичные причины:

  • 🔄 Фоновое или регламентное задание — обновление индекса полнотекстового поиска , обмен, закрытие месяца. Дождитесь завершения или отключите регламентные задания на время обслуживания.
  • 🖥 «Зависший» сеанс — компьютер пользователя выключили, не закрыв 1С. Такой сеанс завершают принудительно.
  • 📁 Открытая файловая база — пока хоть один сеанс держит файл, он заблокирован. Проверяйте по списку активных пользователей.

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

Частые ошибки при отключении базы

  • ❌ Завершили сеансы, но не включили блокировку. Пользователи входят заново быстрее, чем вы успеваете начать обслуживание. Сначала запрет новых сеансов — потом завершение активных.
  • ❌ Остановили службу агента ради одной базы. Встали все базы сервера. Для одной базы используйте блокировку в кластере, а не остановку службы.
  • ❌ Перевели базу SQL в офлайн при работающем агенте. Возможны ошибки и повреждение, если сервер в этот момент писал в базу. Порядок строгий: блокировка в кластере → завершение сеансов → работа с СУБД.
  • ❌ Забыли про код разрешения. Включили блокировку и не можете войти сами. Код разрешения задаётся при установке блокировки и передаётся администратору в параметрах запуска — запишите его заранее.
  • ❌ Не проверили фоновые задания. Монопольный доступ не даётся, а пользователей в списке нет: базу держит регламентное задание. Отключите регламентные задания на время обслуживания.

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

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