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

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

Как сделать блокировку в 1С: пошаговое руководство

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

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

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

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

Виды блокировок в 1С и когда какая нужна

Прежде чем что-то блокировать, определите объект блокировки. В экосистеме 1С существует четыре принципиально разных механизма, и путать их — распространённая ошибка.

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

Третья группа — блокировка регламентных и фоновых заданий: она останавливает автоматические операции (обмены, расчёты, рассылки), не затрагивая интерактивную работу. Четвёртая — блокировки данных на уровне СУБД и платформы, которые защищают записи от одновременного изменения в многопользовательском режиме.

Сравнение вариантов

Блокировка сеансов

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

Отключение пользователя

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

Блокировка регламентных заданий

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

Управляемые блокировки данных

Подходят для защиты данных в коде при конкурентной работе. Требуют доработки конфигурации.

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

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

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

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

Порядок действий в консоли кластера
  1. 1
    Откройте консоль кластера и разверните ветку «Информационные базы»
  2. 2
    Щёлкните правой кнопкой по базе и выберите «Свойства»
  3. 3
    Включите флажок «Блокировка начала сеансов включена»
  4. 4
    Укажите период блокировки, код разрешения и сообщение пользователям
  5. 5
    Сохраните изменения и проверьте вход под обычным пользователем

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

Как заблокировать базу из режима 1С:Предприятие

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

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

Файловую базу через консоль кластера заблокировать нельзя — консоль работает только с сервером. Для файловых баз обработка «Блокировка работы пользователей» является основным инструментом.

Как заблокировать конкретного пользователя

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

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

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

Отключение пользователя в консоли кластера

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

Как заблокировать регламентные задания

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

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

bsl
УстановитьБлокировкуРегламентныхЗаданий(Истина);
// проверка состояния:
Сообщить(ПолучитьБлокировкуРегламентныхЗаданий());

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

Управляемые блокировки данных в коде

В управляемом режиме платформа рекомендует явно управлять блокировками данных при записи объектов, которые могут изменяться одновременно несколькими пользователями. Для этого служит объект БлокировкаДанных.

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

bsl
Блокировка = Новый БлокировкаДанных;
Элемент = Блокировка.Добавить("РегистрНакопления.ОстаткиТоваров");
Элемент.УстановитьЗначение("Номенклатура", Номенклатура);
НачатьТранзакцию();
Блокировка.Заблокировать();
// чтение и запись данных
ЗафиксироватьТранзакцию();

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

Типичные ошибки
01
Считать, что блокировка сеансов отключает работающих пользователей — она запрещает только новые входы
02
Забыть код разрешения и потерять возможность зайти в заблокированную базу
03
Восстановить копию базы без блокировки регламентных заданий и получить дубли писем и обменов
04
Накладывать управляемые блокировки вне транзакции — они не сработают
05
Снять флажок входа у пользователя и ожидать, что его активный сеанс закроется сам

Как проверить, что блокировка работает

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

Затем проверьте вход с кодом разрешения через параметр /UC — административный доступ должен работать. Для блокировки пользователя попытка входа под его учётной записью должна завершаться отказом в авторизации.

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

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

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

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

Появляется сообщение о регламентных работах, вход невозможен

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

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

Вход администратора с кодом разрешения /UC
Норма

База открывается для регламентных работ

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

Вход отклонён — код указан неверно или не совпадает с заданным

Фоновые задания после блокировки регламентных заданий
Норма

Новые задания не стартуют, в журнале нет новых запусков

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

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

Отключённый пользователь
Норма

Вход отклонён на этапе авторизации

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

Пользователь входит — флажок сохранён не был или прав кэшировались

FAQ: частые вопросы о блокировках в 1С

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

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

Блокировка сеансов мешает работе планировщика и фоновых заданий?

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

Можно ли заблокировать базу по расписанию автоматически?

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

Чем управляемая блокировка отличается от автоматической?

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

Пользователь не может войти, хотя блокировка сеансов снята. В чём причина?

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

Итог

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

Блокировка сеансов запрещает только новые входы — активных пользователей завершайте отдельно. Конкретного сотрудника отключайте флажком в карточке пользователя. Перед восстановлением копий баз всегда включайте блокировку регламентных заданий. Любую блокировку проверяйте тестовым входом до начала регламентных работ.