Блокировка информационной базы 1С перед обновлением и обслуживанием

· 9 мин

Содержание

Чтобы заблокировать базу 1С, откройте её в режиме «1С:Предприятие» под администратором и включите блокировку в форме «Блокировка работы пользователей» (раздел Администрирование → Обслуживание). Для клиент-серверной базы то же самое делается флажком «Блокировка начала сеансов включена» в свойствах базы в консоли кластера или командой rac infobase update.

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

Как устроена блокировка базы 1С и что выбрать

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

У блокировки пять параметров:

  • 🕐 начало и окончание — можно задать окно заранее, например с 22:00 до 06:00;
  • 💬 сообщение — его увидит пользователь при попытке входа;
  • 🔑 код разрешения — с ним вход возможен, несмотря на запрет;
  • ⚙️ блокировка регламентных заданий — отдельный флажок, на сеансы не влияет;
  • 🧩 параметр блокировки — служебная строка, обычно пустая.
СпособВариант базыКогда использоватьРиски
Форма «Блокировка работы пользователей»файловая и клиент-сервернаяплановые работы, нужен вход в базубазу должен открыть администратор
Консоль кластераклиент-сервернаябаза не открывается, нужен быстрый запретнужны права администратора кластера
rac / запуск с /Cобе (rac — только сервер)ночные обновления по расписаниюошибка в скрипте оставит базу закрытой
Средства СУБДклиент-сервернаявосстановление БД из бэкапа на уровне SQLсервер 1С теряет соединение, сеансы рвутся
Остановка службы, закрытие файловобевсё зависло, другие способы не сработалиобрыв сеансов, несохранённые данные

Для обновления конфигурации обычно хватает первого или второго способа. До SQL и остановки службы доходить не нужно.

Блокировка из режима «1С:Предприятие» и роль Конфигуратора

Этот способ работает в типовых конфигурациях на Библиотеке стандартных подсистем: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP. Порядок одинаковый для файловой и серверной базы.

Пошагово

  1. Войдите в базу пользователем с полными правами.
  2. Откройте Администрирование → Обслуживание. Ссылка «Блокировка работы пользователей» находится в группе «Обслуживание» (в части конфигураций раздел называется «Поддержка и обслуживание»).
  3. Поставьте флажок запрета работы пользователей.
  4. Заполните сообщение: что происходит и когда база откроется. Например: Обновление конфигурации. База будет доступна в 23:30.
  5. Укажите время начала и окончания. Если оставить окончание пустым, блокировка будет действовать, пока её не снимут вручную.
  6. Задайте код разрешения, например 7731, и запишите его.
  7. Нажмите «Установить блокировку».

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

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /UC7731

В окне выбора баз это делается без командной строки: «Изменить» → последний шаг мастера → поле «Дополнительные параметры запуска», туда пишется /UC7731.

При чём здесь Конфигуратор

В Конфигураторе нет отдельной кнопки «заблокировать базу». Его роль другая:

  • 👥 Администрирование → Активные пользователи — посмотреть, кто ещё в базе, перед началом работ;
  • 🔒 при обновлении структуры базы данных, загрузке .dt, тестировании и исправлении Конфигуратору нужен монопольный доступ, и он не получит его, пока открыты другие сеансы.

Поэтому связка такая: сначала блокировка и завершение сеансов в режиме Предприятия или в консоли, потом Конфигуратор с кодом /UC. Открывать Конфигуратор лучше с тем же параметром, иначе после блокировки вы не попадёте туда сами.

Блокировка клиент-серверной базы в консоли кластера и через rac

Если база не открывается или нужно закрыть её без входа в программу, используйте консоль администрирования серверов 1С.

В консоли

  1. Откройте консоль, разверните Кластеры → <кластер> → Информационные базы.
  2. Правой кнопкой по базе → «Свойства». Консоль спросит логин и пароль администратора информационной базы.
  3. Поставьте флажок «Блокировка начала сеансов включена», заполните время, сообщение и код разрешения.
  4. При необходимости включите «Блокировка регламентных заданий включена».
  5. Нажмите «ОК».
  6. Перейдите в ветку «Сеансы» этой базы, выделите сеансы пользователей и удалите их.

Удаление сеанса в консоли обрывает работу пользователя без сохранения. Сначала разошлите предупреждение и дайте людям 5–10 минут, а фоновые сеансы смотрите отдельно: прерванный обмен или закрытие месяца придётся перезапускать.

Командой rac

Для скриптов и ночных обновлений есть утилита rac, она работает через сервер администрирования ras. Пример для Windows:

set RAC="C:\Program Files\1cv8\8.3.24.1691\bin\rac.exe"
%RAC% cluster list
%RAC% infobase summary list --cluster=<uuid кластера>
%RAC% infobase update --cluster=<uuid кластера> --infobase=<uuid базы> ^
  --infobase-user=Админ --infobase-pwd=*** ^
  --sessions-deny=on --denied-message="Обновление до 23:30" ^
  --permission-code=7731 --scheduled-jobs-deny=on
%RAC% session list --cluster=<uuid кластера> --infobase=<uuid базы>
%RAC% session terminate --cluster=<uuid кластера> --session=<uuid сеанса>

Номер версии в пути замените на свой. Снятие блокировки — та же команда infobase update с --sessions-deny=off и --scheduled-jobs-deny=off. Если кластер защищён паролем администратора кластера, добавьте его параметры; точный список ключей смотрите в rac help infobase.

Блокировка файловой базы

У файловой базы нет консоли кластера, поэтому основной путь — форма «Блокировка работы пользователей» из предыдущего раздела. Платформа сохраняет параметры блокировки в файле 1Cv8.cdn в каталоге базы, рядом с 1Cv8.1CD.

Что полезно знать:

  • 📁 файл 1Cv8.cdn создаёт и удаляет сама платформа при установке и снятии блокировки. Править его вручную не нужно;
  • 🗑 если блокировку забыли снять, а код потерян, удаление 1Cv8.cdn снимает запрет. Делайте это, когда в базе никого нет, и сначала скопируйте файл;
  • ⚠️ в сети встречается совет создать файл 1Cv8.lck в папке базы. Штатным способом блокировки сеансов это не является, рассчитывать на него не стоит.

Проверить, кто держит файловую базу , можно на сервере, где лежит папка: Управление компьютером → Общие папки → Открытые файлы. В списке видно, с какого компьютера открыт 1Cv8.1CD.

Блокировка по расписанию и регламентные задания

Здесь два разных вопроса, и их часто путают.

Первый — заблокировать базу автоматически ночью. Время начала и окончания блокировки задаётся прямо в форме или в консоли: поставьте 22:00–06:00, и база сама закроется и откроется. Если нужен полный цикл «закрыть → обновить → открыть», используйте Планировщик заданий Windows и пакетный запуск. Типовые конфигурации на БСП принимают параметры запуска:

rem установить блокировку и завершить сеансы
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" ^
  /N"Админ" /P"***" /C"ЗавершитьРаботуПользователей" /UC7731

rem ... обновление, выгрузка, тестирование ...

rem снять блокировку
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" ^
  /N"Админ" /P"***" /C"РазрешитьРаботуПользователей" /UC7731

Для серверной базы вместо /F указывается /S"сервер\база", либо используются команды rac из раздела выше.

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

  • 🖥 в клиент-серверной базе — флажок «Блокировка регламентных заданий включена» в консоли или --scheduled-jobs-deny=on в rac;
  • 📄 в файловой базе регламентные задания выполняются, пока открыт хотя бы один сеанс клиента, поэтому их обычно не нужно блокировать отдельно. Отключить конкретное задание можно в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

Перед обновлением посмотрите список фоновых заданий. Если там висит длинная операция, например перепроведение за квартал, дождитесь её или остановите осознанно.

Блокировка на уровне СУБД и аварийные меры

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

Microsoft SQL Server

Перевод базы в однопользовательский режим обрывает все подключения, включая рабочие процессы 1С:

ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
-- работы: RESTORE, DBCC CHECKDB и т. п.
ALTER DATABASE [buh] SET MULTI_USER;

PostgreSQL

ALTER DATABASE buh WITH ALLOW_CONNECTIONS false;
SELECT pg_terminate_backend(pid) FROM pg_stat_activity
 WHERE datname = 'buh' AND pid <> pg_backend_pid();
-- работы
ALTER DATABASE buh WITH ALLOW_CONNECTIONS true;

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

Остановка службы сервера 1С

Последний вариант, когда сеансы не завершаются и консоль не отвечает: остановить службу агента сервера 1С:Предприятия в services.msc. Это обрывает сеансы всех баз кластера, а не одной, поэтому делайте так только в согласованное окно и предупредите пользователей других баз. Для файловой базы аналог — закрыть зависшие файлы в «Открытых файлах» на сервере или перезапустить компьютер пользователя, который держит базу.

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

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

Проверка блокировки
Выполнено: 0 / 5

Для сервера состояние видно и из командной строки: rac infobase info --cluster=<uuid> --infobase=<uuid> с логином администратора базы. В выводе параметр sessions-deny должен быть on.

Если вход без кода всё-таки проходит, проверьте время начала блокировки. Оно сравнивается со временем сервера: при неверном часовом поясе или часах на сервере окно блокировки может ещё не наступить.

Ошибки, из-за которых блокировка не срабатывает или мешает

Большинство проблем с блокировкой базы 1С возникает не во время установки, а до или после неё.

  • 🔁 Блокировку не сняли. Утром никто не может войти, а администратор в отпуске. Указывайте время окончания с запасом и дублируйте снятие последней строкой скрипта.
  • 🔑 Код разрешения знает один человек. Храните его там же, где пароли от базы, а не в голове. Один и тот же код на всех базах удобен, но тогда он быстро перестаёт быть секретом.
  • 🧾 Сообщение без сроков. Текст «База заблокирована» вызывает десяток звонков. Пишите, кто работает и до скольки: Обновление ЗУП, Петров, до 21:00.
  • 🌐 Забыли про внешние подключения. Обмены через COM-соединение, веб-сервисы и HTTP-сервисы тоже открывают сеансы. Если такой обмен стоит в планировщике другого сервера, он упрётся в запрет и выдаст ошибку — предупредите тех, кто за него отвечает.
  • 🧮 Заблокировали не ту базу. В кластере часто живут копии с похожими именами: buh, buh_test, buh_old. Перед командой rac infobase update сверьте имя базы в выводе infobase summary list.
  • ⏰ Окно задано в прошлом. Если дата окончания уже прошла, блокировка формально установлена, но не действует. Проверяйте результат входом без кода.

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

Что делать, если забыли код разрешения?
В клиент-серверной базе откройте свойства базы в консоли кластера и снимите флажок блокировки или задайте новый код. В файловой базе, когда в ней никого нет, удалите 1Cv8.cdn из каталога базы, предварительно сохранив копию.
Почему после блокировки пользователи всё ещё работают?
Платформенная блокировка запрещает только новые входы. Текущие сеансы завершает код конфигурации или администратор. В нетиповой конфигурации без БСП сеансы нужно удалить в консоли или попросить людей выйти.
Мешает ли блокировка веб-клиенту и мобильному доступу?
Да. Запрет действует на все новые сеансы базы, включая веб-клиент и подключения через публикацию на веб-сервере. Исключение — вход с кодом разрешения.
Можно ли заблокировать только часть пользователей?
Блокировкой сеансов — нет, она общая. Для отдельных людей снимите им право входа в карточке пользователя или временно отключите учётную запись в списке пользователей.
Снимется ли блокировка сама?
Да, если указано время окончания. Без него запрет действует, пока его не снимут вручную в форме, консоли или командой rac.