Отключение информационной базы 1С:Предприятие, размещенной на сервере Microsoft SQL Server, является стандартной процедурой для системных администраторов и разработчиков конфигураций. Эта операция необходима при проведении регламентных работ, переносе данных на другой сервер, создании резервных копий или при выводе базы из эксплуатации. Неправильное выполнение процедуры может привести к повреждению данных или появлению "висящих" сессий, блокирующих дальнейшую работу.

Процесс состоит из двух логически разделенных этапов: административного отключения на стороне платформы и технического отключения на уровне СУБД SQL Server. Игнорирование любого из этих шагов создает риски целостности данных. Важно понимать, что простое удаление файлов или остановка службы не гарантирует корректного освобождения ресурсов базы данных.

В данном руководстве мы рассмотрим детальный алгоритм действий, который позволит безопасно изолировать базу данных от пользователей и служб платформы. Мы затронем работу с консолью управления кластером серверов и использование транзакционного языка T-SQL для управления состоянием базы в SQL Server.

Подготовка к отключению и анализ активных сеансов

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

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

  • 👥 Проверьте список активных пользователей в консоли управления кластером серверов 1С.
  • 🚫 Убедитесь, что фоновые задания и регламентные операции завершили свою работу.
  • 💾 Создайте полную резервную копию базы данных перед внесением изменений.

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

📊 Как вы обычно завершаете работу пользователей перед обслуживанием?
Оповещаю заранее и жду
Завершаю сеансы принудительно
Отключаю сеть
Использую режим монопольного доступа

Снятие базы с регистрации в кластере серверов 1С

Первым шагом является административное отключение базы на уровне кластера серверов . Это действие предотвращает новые подключения пользователей через механизм именования баз, но не останавливает саму базу данных в SQL Server. Операция выполняется через консоль управления кластером серверов 1С:Предприятие.

Запустите консоль управления, подключитесь к нужному кластеру и найдите требуемую информационную базу в списке. В контекстном меню базы данных выберите пункт "Изменить". В открывшемся окне свойств необходимо снять галочку с параметра "Разрешить подключение". Это действие помечает базу как недоступную для новых сеансов.

После изменения настроек рекомендуется перезапустить службу агента сервера или выполнить перерегистрацию базы, чтобы изменения вступили в силу немедленно. Если база используется в веб-клиенте, также проверьте настройки публикации на веб-сервере IIS или Apache.

💡

Если галочка "Разрешить подключение" неактивна, проверьте права доступа вашей учетной записи в консоли управления кластером.

Важно отметить, что снятие с регистрации в кластере не освобождает ресурсы СУБД. База данных по-прежнему занимает место на диске и потребляет оперативную память сервера SQL Server. Для полного отключения необходимо перейти к работе непосредственно с движком базы данных.

💡

Снятие базы с регистрации в кластере 1С блокирует только вход пользователей, но не останавливает процессы СУБД.

Отключение базы данных средствами SQL Server Management Studio

Наиболее наглядный способ отключения базы на уровне СУБД — использование графического интерфейса SQL Server Management Studio (SSMS). Этот метод подходит администраторам, которые предпочитают визуальное управление объектами базы данных. Процесс требует прав системного администратора (sysadmin) на сервере.

Подключитесь к экземпляру SQL Server, разверните узел "Базы данных" и найдите нужную базу . Нажмите правой кнопкой мыши на имени базы, выберите пункт "Задачи" (Tasks), а затем "Отключить" (Detach). Откроется диалоговое окно, где необходимо подтвердить удаление связей с базой.

Система автоматически проверит наличие активных подключений. Если подключения существуют, отключение не удастся. В окне отключения можно поставить галочку "Удалить подключения" (Drop Connections), что приведет к принудительному разрыву сессий. Используйте эту опцию только если вы уверены, что важные транзакции завершены.

Действие в SSMS Результат Риски
Снять галочку "Разрешить подключение" Блокировка новых входов 1С Минимальные
Задачи -> Отключить (Detach) Физическое отключение файлов БД Прерывание транзакций
Установить режим SINGLE_USER Доступ только для одного админа Блокировка всех остальных
Остановить службу SQL Server Полная остановка всех баз Высокие (влияет на другие БД)

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

Использование T-SQL команд для принудительного отключения

Для автоматизации процессов или работы в среде без графического интерфейса предпочтительно использование скриптов на языке T-SQL. Этот метод дает более гибкий контроль над процессом и позволяет внедрять логику проверок перед выполнением критических команд.

Сначала необходимо перевести базу в однопользовательский режим, чтобы вытеснить всех остальных пользователей. Команда ALTER DATABASE с параметром SINGLE_USER и опцией ROLLBACK IMMEDIATE завершает все активные транзакции и откатывает незавершенные изменения.

USE master;

GO

ALTER DATABASE [Имя_Вашей_Базы_1С]

SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

GO

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

ALTER DATABASE [Имя_Вашей_Базы_1С]

SET OFFLINE;

GO

Что означает статус RESTORING?

Статус RESTORING появляется, если база данных находится в процессе восстановления из резервной копии или если восстановление было прервано. В этом состоянии база недоступна для пользователей до завершения процесса.

Если целью является полное удаление связи с файлами (Detach), используется системная хранимая процедура sp_detach_db. Однако для временного отключения режим OFFLINE является более безопасным и предпочтительным вариантом, так как метаданные о базе сохраняются в системных таблицах SQL Server.

☑️ Чек-лист T-SQL отключения

Выполнено: 0 / 5

Устранение блокировок и активных транзакций

Частой проблемой при попытке отключить базу является ошибка, сообщающая о невозможности получить эксклюзивный доступ. Это означает, что какой-то процесс, будь то пользовательский сеанс, фоновое задание или служба самого SQL Server, удерживает соединение с базой.

Для выявления виновника блокировки можно использовать системное представление sys.dm_exec_sessions или встроенный отчет "Отчет о деятельности" в SSMS. Запрос покажет идентификаторы сессий (session_id), которые в данный момент работают с конкретной базой данных.

⚠️ Внимание: Принудительное завершение сессий командой KILL может привести к потере данных, если в этот момент выполнялась важная запись документов. Используйте эту меру только в крайних случаях.

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

Альтернативным решением является использование утилиты sqlcmd для выполнения скрипта отключения из командной строки, что иногда позволяет обойти блокировки графического интерфейса. Также полезно проверить наличие открытых транзакций с помощью команды DBCC OPENTRAN.

Восстановление работы базы после отключения

Процесс включения базы обратно в работу зависит от того, каким способом она была отключена. Если использовался режим OFFLINE, достаточно выполнить команду ALTER DATABASE ... SET ONLINE. Если база была отсоединена (Detach), потребуется процедура присоединения (Attach) с указанием путей к файлам данных.

При присоединении базы убедитесь, что пути к файлам .mdf и .ldf актуальны и файлы не были перемещены или удалены. Если структура папок изменилась, SQL Server предложит указать новые пути или попытается найти файлы автоматически, что не всегда срабатывает корректно.

После технического включения базы в SQL Server не забудьте вернуть настройки в кластере серверов . Установите галочку "Разрешить подключение" в свойствах информационной базы. Без этого шага пользователи 1С не смогут войти в систему, хотя технически база будет готова к работе.

⚠️ Внимание: Интерфейсы консоли управления 1С и версии SQL Server могут отличаться в зависимости от установленных обновлений и релизов. Всегда сверяйте названия пунктов меню с вашей версией ПО.

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

💡

Полное восстановление работы требует действий на двух уровнях: включение базы в SQL Server и разрешение подключений в кластере 1С.

Часто задаваемые вопросы (FAQ)

Можно ли отключить базу 1С, если в ней есть активные пользователи?

Технически возможно использовать команду ROLLBACK IMMEDIATE в T-SQL, которая принудительно завершит все сеансы и откатит транзакции. Однако это рискованно и может привести к потере несохраненных данных пользователями. Лучше дождаться их самостоятельного выхода.

В чем разница между статусом OFFLINE и Detach?

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

Почему консоль 1С не видит базу после включения в SQL?

Скорее всего, в свойствах информационной базы в кластере серверов 1С не установлен флаг "Разрешить подключение". Также проверьте, что имя базы в кластере точно соответствует имени базы в SQL Server.

Как узнать, какой процесс блокирует отключение базы?

Используйте системное представление sys.dm_exec_requests в связке с sys.dm_exec_sessions, отфильтровав результаты по database_id вашей базы. Это покажет идентификатор сессии и выполняемый запрос.

Нужно ли останавливать службу 1С:Сервер для отключения базы?

Нет, останавливать службу сервера 1С не требуется. Достаточно снять базу с регистрации в консоли управления. Остановка службы нужна только в случае критических сбоев или глубокого обслуживания самого сервера приложений.