К статье
Практический материал

Администрирование · 11 мин

Как заблокировать базу 1С для обслуживания и обновления

Как заблокировать базу 1С для обновления или обслуживания: блокировка сеансов через консоль сервера, конфигуратор и код. Выгон пользователей и снятие блокировки.

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

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

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

Когда и зачем блокировать базу 1С

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

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

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

Подготовка перед блокировкой базы

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

Во-вторых, убедитесь, что у вас есть права администратора: в файловой базе — полные права и право «Администрирование», в клиент-серверной — доступ к консоли кластера и права администратора информационной базы. Без этих прав установить блокировку не получится.

В-третьих, проверьте регламентные и фоновые задания. Они тоже создают сеансы и будут завершены при блокировке. Если задание выполняет длительную обработку, дождитесь её окончания или отключите задание заранее, иначе обрыв на середине может оставить данные в несогласованном состоянии.

Блокировка файловой базы через конфигуратор

В файловом варианте блокировка устанавливается из конфигуратора. Откройте базу в режиме «Конфигуратор» под пользователем с полными правами и перейдите в меню «Администрирование» → «Блокировка установки соединений с информационной базой».

В открывшейся форме включите флаг «Блокировка установки соединений включена», задайте текст сообщения, которое увидят пользователи, период действия блокировки (дата и время начала и окончания) и код разблокировки. Код позволит вам или доверенным сотрудникам войти в базу в обход блокировки — сохраните его.

Обратите внимание: в файловом варианте эта настройка запрещает новые соединения, но не завершает уже открытые сеансы автоматически. Активных пользователей нужно попросить выйти, а список подключённых можно посмотреть через «Администрирование» → «Активные пользователи».

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

Блокировка через консоль сервера 1С

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

В свойствах установите флаг «Блокировка начала сеансов включена», укажите время начала и окончания блокировки, текст сообщения и код разрешения (permission code). Дополнительно можно задать параметр «Принудительное завершение сеансов» и задержку перед завершением, чтобы пользователи успели сохранить данные.

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

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

text
Консоль кластера → Кластеры → <сервер> → Информационные базы → <база> → Свойства → Блокировка начала сеансов включена

Блокировка из режима 1С:Предприятие и программно

Если конфигурация построена на Библиотеке стандартных подсистем (БСП) — а это большинство типовых решений: «Управление торговлей», «ERP», «Зарплата и управление персоналом», «Бухгалтерия» — блокировку можно установить прямо из режима предприятия. Откройте «Администрирование» → «Обслуживание» → «Блокировка работы пользователей».

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

Программно блокировка устанавливается через объект «БлокировкаСеансов»: задаются свойства «Установлена», «Начало», «Конец», «Сообщение», «КодРазблокировки», затем вызывается метод установки. Этот способ используют в скриптах автоматического обновления, когда база блокируется, обновляется и разблокируется без участия оператора.

bsl
Блокировка = Новый БлокировкаСеансов;
Блокировка.Установлена = Истина;
Блокировка.Сообщение = "Идёт обновление базы";
Блокировка.КодРазблокировки = "Обновление";
УстановитьБлокировкуСеансов(Блокировка);

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

Для входа в заблокированную базу при запуске используется параметр UC с кодом разблокировки. В файловом варианте в тонком клиенте код можно указать в строке запуска или через диалог: при появлении сообщения о блокировке вводится код, если конфигурация это поддерживает. Надёжнее — запуск с параметром:

bash
1cv8.exe ENTERPRISE /F"C:\Bases\Trade" /UCОбновление

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

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

Контрольные точки

Как проверить результат

Вход обычного пользователя
Норма

Появляется заданное сообщение о блокировке

Тревожный признак

Пользователь входит как обычно — блокировка не установлена

Вход с кодом разблокировки
Норма

Сеанс открывается в обход блокировки

Тревожный признак

Код не принимается — проверьте точное совпадение кода

Список сеансов в консоли
Норма

Активных сеансов нет или остались только сеансы администратора

Тревожный признак

Остаются «висячие» сеансы — завершите их вручную

Регламентные задания
Норма

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

Тревожный признак

Задания продолжают создавать сеансы во время обновления

Типичные ошибки и ограничения

Самая распространённая ошибка — забыть про фоновые и регламентные задания. Даже при полностью «выгнанных» пользователях задания создают сеансы и мешают монопольному режиму. Всегда блокируйте задания вместе с сеансами.

Вторая ошибка — не задать или потерять код разблокировки. Без кода в файловой базе придётся снимать блокировку через конфигуратор, а если блокировка мешает зайти и туда — искать другой способ доступа. Храните код в доступном администратору месте.

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

Типичные ошибки
01
Не заблокированы регламентные задания — фоновые сеансы мешают монопольному режиму
02
Не задан или утерян код разблокировки — администратор не может войти в базу
03
Мгновенное завершение сеансов без предупреждения — потеря несохранённых данных пользователей
04
Забыли снять блокировку после работ — пользователи не могут войти, задания не выполняются
05
Блокировка во время обмена данными — обрыв транзакции и несогласованные данные
Для регулярных обновлений удобно настроить автоматический сценарий: скрипт устанавливает блокировку через код или консоль, дожидается завершения сеансов, выполняет обновление и снимает блокировку. Это исключает человеческий фактор — забытые задания и не снятую вовремя блокировку.
ПЗ
Практическое замечание

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

Можно ли заблокировать базу, не завершая сеансы пользователей?

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

Что увидит пользователь при попытке войти в заблокированную базу?

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

Как выгнать пользователей из файловой базы, если консоли сервера нет?

В файловом варианте централизованного завершения сеансов нет. Используйте список активных пользователей в конфигураторе, чтобы узнать, кто в базе, и попросите их выйти. Если конфигурация на БСП, механизм «Блокировка работы пользователей» завершит сеансы автоматически по таймеру.

Забыл код разблокировки — как попасть в базу?

В клиент-серверном варианте администратор кластера снимает блокировку прямо в свойствах информационной базы, код не нужен. В файловом варианте откройте базу в конфигураторе (блокировка соединений не мешает входу в конфигуратор в ряде случаев) и снимите флаг, либо используйте пустой параметр /UC, если код не задан.

Нужно ли блокировать базу для резервного копирования?

Для копирования файловой базы простым копированием каталога — обязательно: открытые сеансы делают копию несогласованной. В клиент-серверном варианте средства СУБД (например, MS SQL Server) создают согласованную копию «на горячую», и блокировка не обязательна, хотя для гарантированной целостности её рекомендуют.

Блокировка установлена, но монопольный режим не включается — почему?

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

Итог

Что важно запомнить

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