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

· 9 мин

Содержание

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

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

Какой способ блокировки выбрать

Сначала определите вариант базы: файловая (папка с файлом 1Cv8.1CD) или клиент-серверная (кластер серверов 1С и СУБД). От этого зависит, что вообще доступно.

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

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

Подготовка: что сделать до блокировки

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

  • 📣 Заранее напишите сотрудникам время закрытия базы. Минимум за 15–20 минут.
  • 📋 Откройте список активных пользователей и посмотрите, кто реально в базе.
  • 💾 Сделайте выгрузку или копию базы до всех действий.
  • 🕒 Проверьте, не идут ли регламентные задания, обмены и длительные закрытия месяца.

Перед изменениями в базе сделайте резервную копию и согласуйте работы с регламентом организации.

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

Запрет входа в консоли кластера серверов

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

  1. Откройте консоль администрирования серверов 1С и подключитесь к центральному серверу.
  2. Раскройте кластер, затем узел Информационные базы.
  3. Двойным щелчком откройте свойства нужной базы.
  4. Включите флаг Блокировка начала сеансов включена.
  5. Заполните поля Начало и Конец блокировки. Если конец не задан, запрет действует, пока вы его не снимете.
  6. В поле Сообщение напишите текст, который увидит пользователь при попытке войти.
  7. В поле Код разрешения задайте слово, по которому сможете войти сами.
  8. Отдельно включите блокировку регламентных заданий, если они вам мешают.
  9. Нажмите OK.

Работающие пользователи остаются в базе. Блокировка касается только тех, кто попытается подключиться после включения.

Свой вход проводится параметром /UC с кодом разрешения. Пример для ярлыка:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "server\base" /UC "MyCode"

Если код разрешения не задан, вы закроете базу и для себя. Придётся заходить в консоль и снимать блокировку руками.

Завершение работающих сеансов

Запрет входа не выкидывает тех, кто уже в базе. Чтобы убрать их, в консоли откройте узел Сеансы (внутри нужной базы или на уровне кластера) и отключите сеансы вручную: выделите строки, контекстное меню, Удалить.

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

Блокировка работы пользователей через саму конфигурацию

Большинство типовых конфигураций (Бухгалтерия, ЗУП, УТ, ERP) построены на библиотеке стандартных подсистем. В ней есть штатная форма «Блокировка работы пользователей». Найти её проще всего поиском по меню: в разделе администрирования набрать слово «блокировка» в поле поиска команд.

В форме вы задаёте:

  • ⏱ время начала и окончания блокировки;
  • 💬 сообщение, которое увидят пытающиеся войти;
  • 🔑 код разрешения для своего входа;
  • 🛑 включить блокировку немедленно или по расписанию.

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

Работает это и на файловой базе, и на клиент-серверной. Но войти в базу, чтобы настроить блокировку, нужно. Если база уже сломана и не открывается, выбирайте консоль кластера.

Как запретить только ввод новых данных

Иногда базу нужно оставить открытой, но «заморозить» данные. Например, бухгалтер сверяет остатки, а коллеги в это время не должны менять документы.

Для этого используют два механизма.

Дата запрета изменения данных

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

Сторонняя обработка запрета ввода

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

Внешняя обработка не должна приходить из непонятного источника. Файл с правами на запись в базу может сделать с данными что угодно.

Предупреждение и закрытие сеансов в режиме 1С:Предприятие

Если вы вошли в саму базу, у вас есть три задачи: предупредить, дождаться и закрыть.

  1. Найдите форму блокировки, как описано выше, и задайте время начала через 15 минут.
  2. Включите сообщение пользователям с текстом о причине.
  3. Следите за списком активных пользователей. Когда он опустеет, можно приступать.
  4. Для тех, кто завис и не реагирует, отключите сеанс из списка в консоли кластера.

Слишком агрессивные настройки вредят. Например, блокировка «на 30 секунд» не оставляет шанса сохранить данные. Для крупной базы с сотней пользователей закладывайте 20–30 минут.

Блокировка через настройки сервера и технологический журнал

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

Включение: файл logcfg.xml в каталоге conf рядом с установленной платформой. Минимальный фрагмент, который пишет подключения:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1clogs" history="24">
    <event>
      <eq property="name" value="CONN"/>
    </event>
    <property name="all"/>
  </log>
</config>

События CONN показывают подключения и отключения клиентов. Когда один сеанс не даёт обновить базу , по журналу видно, с какого компьютера он идёт. Журнал растёт быстро, поэтому не забудьте его потом выключить.

На стороне сервера для запрета удобнее всего всё же консоль или утилита rac. Файл logcfg.xml — инструмент диагностики, а не блокировки.

Закрытие файловой базы: права и переименование

Файловая база — это папка. Если все пользователи открывают её по сети с общего ресурса, закрыть доступ можно средствами Windows.

Через права на папку

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

Через переименование

Простейший вариант: переименовать папку, например, Base в Base_closed. Ярлыки пользователей перестанут находить базу, и она будет недоступна. Работает мгновенно.

Минусы:

  • 🔧 у работающих пользователей файл блокируется или обрывается, и они могут получить ошибку в процессе записи;
  • 📁 если папка открыта в окне проводника или занята антивирусом, переименование не пройдёт;
  • 🧩 в списке баз у людей остаётся запись, которая теперь ведёт в никуда.

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

Автоматизация блокировки скриптами

Если обновления идут регулярно, блокировку удобно вынести в скрипт. Для клиент-серверной базы подходит утилита администрирования кластера rac, которая лежит в каталоге платформы рядом с сервером. Серверу нужен запущенный сервис ras.

Типовая последовательность выглядит так:

rac cluster list
rac infobase summary list --cluster=<ид_кластера>
rac infobase update --cluster=<ид_кластера> --infobase=<ид_базы> ^
  --infobase-user=Admin --infobase-pwd=*** ^
  --sessions-deny=on --scheduled-jobs-deny=on ^
  --denied-message="Идёт обновление, вход закрыт" ^
  --permission-code=MyCode

После работ запрет снимают тем же вызовом со значениями off. Идентификаторы кластера и базы берите из вывода команд list: это длинные GUID, угадать их нельзя.

Список сеансов и их завершение:

rac session list --cluster=<ид_кластера> --infobase=<ид_базы>
rac session terminate --cluster=<ид_кластера> --session=<ид_сеанса>

Ещё два практичных правила для скриптов:

  • 🔐 не хранить пароль в тексте скрипта, лучше брать его из переменной окружения;
  • 🧪 сначала прогнать сценарий на тестовой базе.
Перед запуском блокировки
Выполнено: 0 / 5

Что идёт не так при блокировке

Несколько случаев, которые встречаются на практике чаще всего.

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

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

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

Снятие делают там же, где ставили.

  • В консоли кластера: откройте свойства базы и уберите флаги блокировки сеансов и регламентных заданий.
  • В конфигурации: отключите блокировку в той же форме, где включали.
  • Для файловой базы: верните права или прежнее имя папки.
  • Для скрипта: выполните команду со значениями off.

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

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

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

Блокировка выкинет пользователей, которые уже работают?
Нет. Запрет начала сеансов закрывает только новые входы. Работающих нужно завершать отдельно: мягко через форму блокировки в конфигурации или принудительно в консоли кластера.
Можно ли войти в заблокированную базу самому?
Да, если задан код разрешения. Укажите его в параметре запуска /UC или в строке запуска базы.
Блокируются ли регламентные задания вместе со входом?
Нет, это отдельный флаг в консоли кластера. Если фоновые задания должны остановиться, включите его отдельно.
Что делать, если консоль кластера недоступна?
Использовать утилиту rac на сервере или закрыть базу на уровне СУБД и ОС. Но сначала проверьте, что запущен сервер 1С и сервис администрирования.
Как заблокировать базу на ночь, чтобы она открылась сама?
Задайте в консоли поля начала и конца блокировки. Когда время конца наступит, запрет перестанет действовать без вашего участия.