Закрыть базу 1С от пользователей на время обновления или обслуживания
Содержание
Заблокировать базу 1С для пользователей можно четырьмя путями: запретить новые сеансы в консоли кластера (клиент-сервер), включить блокировку работы пользователей в самой конфигурации, закрыть доступ к папке файловой базы или прописать блокировку скриптом. Выбор зависит от того, где лежит база и что вы собираетесь с ней делать.
Для обновления конфигурации, загрузки выгрузки или свёртки нужна полная тишина: ни одного живого сеанса и ни одного фонового задания. Для сверки данных достаточно запретить ввод новых документов. Ниже — все варианты, от мягкого до жёсткого.
Какой способ блокировки выбрать
Сначала определите вариант базы: файловая (папка с файлом 1Cv8.1CD) или клиент-серверная (кластер серверов
1С и СУБД). От этого зависит, что вообще доступно.
| Способ | Где работает | Что блокирует | Риск |
|---|---|---|---|
| Блокировка сеансов в консоли кластера | Клиент-сервер | Вход новых пользователей и регламентные задания | Низкий, работающих не трогает |
| Блокировка работы пользователей в конфигурации | Любая база с БСП | Вход и, по желанию, завершение работы | Низкий |
Параметр запуска /UC | Любая база | Вход без кода разрешения | Низкий |
| Обработка запрета ввода данных | Любая база с подходящей конфигурацией | Только изменение данных | Не мешает чтению |
| Права на папку или переименование | Файловая | Всё сразу | Средний, возможны обрывы |
Скрипт rac | Клиент-сервер | Всё, что умеет консоль | Зависит от скрипта |
Если база клиент-серверная, начинайте с консоли кластера. Для файловой базы самый надёжный вариант — блокировка через саму конфигурацию, а закрытие папки оставьте на крайний случай.
Подготовка: что сделать до блокировки
Блокировка без предупреждения заканчивается потерянными данными. У пользователя открыт документ на сорок позиций, вы выкидываете его из базы — и всё набранное пропадает.
- 📣 Заранее напишите сотрудникам время закрытия базы. Минимум за 15–20 минут.
- 📋 Откройте список активных пользователей и посмотрите, кто реально в базе.
- 💾 Сделайте выгрузку или копию базы до всех действий.
- 🕒 Проверьте, не идут ли регламентные задания, обмены и длительные закрытия месяца.
Перед изменениями в базе сделайте резервную копию и согласуйте работы с регламентом организации.
Список подключённых смотрите так: в Конфигураторе меню Администрирование → Активные пользователи. В режиме 1С:Предприятие тот же список обычно лежит в разделе администрирования, пункт про активных пользователей. В нём видны имя, компьютер, приложение и время начала сеанса.
Запрет входа в консоли кластера серверов
Это основной способ для клиент-серверной базы. Он не требует входа в саму базу и не зависит от конфигурации.
- Откройте консоль администрирования серверов 1С и подключитесь к центральному серверу.
- Раскройте кластер, затем узел
Информационные базы. - Двойным щелчком откройте свойства нужной базы.
- Включите флаг
Блокировка начала сеансов включена. - Заполните поля
НачалоиКонецблокировки. Если конец не задан, запрет действует, пока вы его не снимете. - В поле
Сообщениенапишите текст, который увидит пользователь при попытке войти. - В поле
Код разрешениязадайте слово, по которому сможете войти сами. - Отдельно включите блокировку регламентных заданий, если они вам мешают.
- Нажмите
OK.
Работающие пользователи остаются в базе. Блокировка касается только тех, кто попытается подключиться после включения.
Свой вход проводится параметром /UC с кодом разрешения. Пример для ярлыка:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "server\base" /UC "MyCode"
Если код разрешения не задан, вы закроете базу и для себя. Придётся заходить в консоль и снимать блокировку руками.
Завершение работающих сеансов
Запрет входа не выкидывает тех, кто уже в базе. Чтобы убрать их, в консоли откройте узел Сеансы (внутри нужной базы или на уровне кластера) и отключите сеансы вручную: выделите строки, контекстное меню, Удалить.
Пользователь, который вот-вот должен был провести документ , потеряет несохранённые данные. Поэтому сначала предупреждение, потом отключение.
Блокировка работы пользователей через саму конфигурацию
Большинство типовых конфигураций (Бухгалтерия, ЗУП, УТ, ERP) построены на библиотеке стандартных подсистем. В ней есть штатная форма «Блокировка работы пользователей». Найти её проще всего поиском по меню: в разделе администрирования набрать слово «блокировка» в поле поиска команд.
В форме вы задаёте:
- ⏱ время начала и окончания блокировки;
- 💬 сообщение, которое увидят пытающиеся войти;
- 🔑 код разрешения для своего входа;
- 🛑 включить блокировку немедленно или по расписанию.
Плюс этого способа в том, что блокировка может завершить работу пользователей мягко: на экране у них появится окно с обратным отсчётом и предупреждением. Данные они успевают сохранить.
Работает это и на файловой базе, и на клиент-серверной. Но войти в базу, чтобы настроить блокировку, нужно. Если база уже сломана и не открывается, выбирайте консоль кластера.
Как запретить только ввод новых данных
Иногда базу нужно оставить открытой, но «заморозить» данные. Например, бухгалтер сверяет остатки, а коллеги в это время не должны менять документы.
Для этого используют два механизма.
Дата запрета изменения данных
В типовых конфигурациях есть настройка запрета ввода и редактирования документов старше определённой даты. Она работает по периоду, а не по людям, поэтому подходит для закрытого месяца. Искать её нужно в разделе администрирования, в настройках учёта, по словам «дата запрета».
Сторонняя обработка запрета ввода
Некоторые организации используют отдельные внешние обработки с названием вроде «Блокировка ввода новых данных». Они ставят флаг, по которому модуль объекта отказывает в записи. Если берёте такую обработку, проверьте её на копии базы: качество у публичных вариантов разное, и часть из них перестаёт работать после смены версии платформы.
Внешняя обработка не должна приходить из непонятного источника. Файл с правами на запись в базу может сделать с данными что угодно.
Предупреждение и закрытие сеансов в режиме 1С:Предприятие
Если вы вошли в саму базу, у вас есть три задачи: предупредить, дождаться и закрыть.
- Найдите форму блокировки, как описано выше, и задайте время начала через 15 минут.
- Включите сообщение пользователям с текстом о причине.
- Следите за списком активных пользователей. Когда он опустеет, можно приступать.
- Для тех, кто завис и не реагирует, отключите сеанс из списка в консоли кластера.
Слишком агрессивные настройки вредят. Например, блокировка «на 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.
Через права на папку
- Убедитесь, что вы вошли под учётной записью, которая сможет вернуть права.
- В свойствах папки базы на вкладке безопасности снимите права записи у группы пользователей. Права оставьте себе.
- Сообщите людям, что база закрыта.
- По окончании работ верните права назад.
Через переименование
Простейший вариант: переименовать папку, например, 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=<ид_сеанса>
Ещё два практичных правила для скриптов:
- 🔐 не хранить пароль в тексте скрипта, лучше брать его из переменной окружения;
- 🧪 сначала прогнать сценарий на тестовой базе.
Что идёт не так при блокировке
Несколько случаев, которые встречаются на практике чаще всего.
rac session terminate./UC стоит в строке запуска именно этой базы.Обратите внимание на сеансы Конфигуратора: они тоже держат базу. Если кто-то из разработчиков оставил Конфигуратор открытым на ночь, обновление встанет, даже когда пользователей в базе нет.
Как снять блокировку и вернуть базу в работу
Снятие делают там же, где ставили.
- В консоли кластера: откройте свойства базы и уберите флаги блокировки сеансов и регламентных заданий.
- В конфигурации: отключите блокировку в той же форме, где включали.
- Для файловой базы: верните права или прежнее имя папки.
- Для скрипта: выполните команду со значениями
off.
После снятия зайдите в базу под обычной учётной записью и проверьте, что открывается список документов. Если блокировка ставилась на время обновления, выполните пробное проведение документа.
Если вы случайно закрыли базу без кода и не можете войти, не пытайтесь править файлы базы. Для клиент-серверной базы блокировка снимается через консоль кластера независимо от кода.
Частые вопросы
Блокировка выкинет пользователей, которые уже работают?
Можно ли войти в заблокированную базу самому?
/UC или в строке запуска базы.Блокируются ли регламентные задания вместе со входом?
Что делать, если консоль кластера недоступна?
rac на сервере или закрыть базу на уровне СУБД и ОС. Но сначала проверьте, что запущен сервер 1С и сервис администрирования.