Отключение базы 1С: как закрыть доступ и остановить работу
Содержание
Отключить базу 1С — значит закрыть к ней доступ: завершить сеансы пользователей , запретить новые подключения и, если нужно, полностью остановить работу информационной базы. Набор действий зависит от того, файловая у вас база или клиент-серверная, и от того, зачем вы её отключаете — на время обслуживания или навсегда.
Для планового обслуживания (обновление, свёртка, тестирование) достаточно заблокировать вход и дождаться выхода людей. Для полной остановки клиент-серверной базы отключают её в кластере или останавливают службу агента. Ниже — все рабочие способы, от самого безопасного к радикальному, с точными путями меню и командами.
С чего начать: предупредить людей и выбрать способ
Любое отключение обрывает чью-то работу. Перед блокировкой предупредите пользователей и дайте им время сохранить документы и выйти. Внезапное завершение сеанса может оставить непроведённый документ или незаписанную обработку.
Определите тип базы — от этого зависит способ:
- 📁 Файловая база — один файл
1Cv8.1CDв сетевой папке. Нет службы и кластера, управлять подключениями можно только из режима Предприятия, из конфигуратора или на уровне прав доступа к папке. - 🖥 Клиент-серверная база
— данные в СУБД (PostgreSQL или MS SQL), доступ идёт через сервер 1С. Здесь работают консоль администрирования, утилита
racи управление службой.
Резервная копия нужна перед обслуживанием, ради которого вы отключаете базу (обновление, свёртка, тестирование). Просто для блокировки входа бэкап не обязателен, но лишним не будет.
Блокировка входа в режиме Предприятия
Самый мягкий способ. Пользователи, которые уже работают, продолжают сеанс, а новые войти не могут. Подходит и для файловой, и для серверной базы.
В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) механизм называется «Блокировка работы пользователей»:
- Войдите в базу с правами администратора.
- Откройте
Администрирование → Обслуживание → Блокировка работы пользователей. - Включите флаг блокировки, задайте дату и время, с которого вход закрывается.
- Укажите код разрешения — слово, по которому администратор всё же сможет войти, передав его параметром запуска.
- При желании впишите текст, который увидят пользователи при попытке входа.
Путь к блокировке в некоторых конфигурациях лежит в разделе «Поддержка и обслуживание». Если в вашем интерфейсе пункта нет на том же месте — ищите его в разделе администрирования рядом с регламентными операциями.
После включения база формально работает, но зайти в неё сможет только тот, кто знает код разрешения. Чтобы войти администратором при включённой блокировке, добавьте в параметры запуска ярлыка 1С ключ с кодом разрешения — платформа пропустит такой сеанс.
Снимается блокировка там же: снять флаг и записать. Этот способ не останавливает базу физически — он только запрещает новые входы средствами конфигурации.
Закрытие доступа через конфигуратор
Конфигуратор даёт блокировку на уровне платформы, не зависящую от конфигурации. Работает одинаково для файловых и серверных баз.
- Запустите базу в режиме Конфигуратор под administrator.
- Откройте
Администрирование → Блокировка установки соединений с информационной базой. - Задайте начало и, если нужно, конец периода блокировки.
- Впишите код разрешения и сообщение для пользователей.
- Нажмите «Установить блокировку».
Пока блокировка активна, новые сеансы не создаются — ни из Предприятия, ни из конфигуратора, — кроме тех, кто запускается с правильным кодом разрешения в параметрах запуска.
Отдельный случай — операции, меняющие структуру базы. Обновление конфигурации
с реструктуризацией, загрузка файла .dt, тестирование и исправление требуют монопольного доступа: конфигуратор не начнёт их, пока в базе есть другие сеансы. Это не «захват базы на всё время работы конфигуратора», а требование конкретных операций. Поэтому перед обновлением сначала закрывают доступ (блокировкой), дожидаются выхода людей и только потом запускают реструктуризацию.
Монопольный доступ нужен для: обновления структуры базы, загрузки .dt, тестирования и исправления. Для правки форм, модулей и отчётов без изменения структуры монополия не требуется.
Остановка через консоль администрирования сервера
Для клиент-серверной базы есть прямой способ закрыть доступ в кластере — через консоль администрирования серверов 1С.
Запрет новых сеансов:
- Откройте консоль администрирования (
Администрирование серверов 1С Предприятия). - Разверните кластер →
Информационные базы→ выберите нужную базу. - В свойствах базы включите «Блокировка начала сеансов включена».
- Задайте код разрешения и, при желании, сообщение и расписание блокировки.
Рядом есть отдельный флаг «Блокировка регламентных заданий включена». Если вы отключаете базу для обслуживания, его тоже стоит включить: иначе на фоне продолжат работать обмены, закрытие месяца и индексация поиска — они держат соединения и мешают получить монопольный доступ.
После этого сервер отклоняет новые подключения к базе, но уже открытые сеансы продолжаются. Чтобы отключить работающих, их завершают вручную:
- В ветке базы откройте список сеансов.
- Выделите сеансы и выполните команду завершения сеанса из контекстного меню.
Принудительное завершение обрывает работу пользователя в этот момент. Делайте это после предупреждения и, желательно, после включения блокировки начала сеансов — иначе человек тут же войдёт заново.
Если консоль не открывается или не видит кластер, проверьте, что служба агента запущена, а при переустановке платформы может потребоваться заново зарегистрировать библиотеку
консоли (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) обслуживает весь кластер.
- Откройте оснастку служб (
services.msc). - Найдите службу вида «Агент сервера 1С:Предприятия 8.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 в офлайн при работающем агенте. Возможны ошибки и повреждение, если сервер в этот момент писал в базу. Порядок строгий: блокировка в кластере → завершение сеансов → работа с СУБД.
- ❌ Забыли про код разрешения. Включили блокировку и не можете войти сами. Код разрешения задаётся при установке блокировки и передаётся администратору в параметрах запуска — запишите его заранее.
- ❌ Не проверили фоновые задания. Монопольный доступ не даётся, а пользователей в списке нет: базу держит регламентное задание. Отключите регламентные задания на время обслуживания.