Монопольный режим 1С

Монопольный режим — это особый режим работы базы 1С, при котором к базе имеет доступ только 1 сеанс. В статье рассмотрены особенности применения данного режима.

Монопольный режим целесообразно использовать когда необходимо выполнить существенные изменения данных и при этом исключить влияние других сеансов на результаты работы. В частности, режим монопольного доступа устанавливается при выполнении некоторых сервисных процедур (удаление помеченных объектов) и вызове некоторых методов встроенного языка (УстановитьЧасовойПоясИнформационнойБазы(), УдалитьОбъекты() и др.).

Установка монопольного режима

Установка и снятие монопольного режима выполняется методом

УстановитьМонопольныйРежим(<МонопольныйРежим>)

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

Монопольный режим возможно установить только при одновременном выполнении условий:

  • в режиме предприятия работает только один пользователь (Вы);
  • у пользователя есть право на изменение монопольного режима (в ролях флаг «Монопольный режим» корня дерева метаданных).
  • отсутствуют активные транзакции (явные или неявные).

Если какое-то требование не соблюдается, выполнение метода завершится ошибкой вида

Ошибка установки монопольного режима

Проверить установку монопольного режима можно при помощи метода

МонопольныйРежим()

Метод возвращает Истина, если монопольный режим установлен.

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

При работе 1С в клиент-серверном варианте с СУБД MS SQL Server установка базы в монопольный режим не переводит базу данных в однопользовательский режим (single user).

Использование монопольного режима в базе с разделителями

Метод УстановитьМонопольныйРежим() устанавливает монопольный режим только в той области, которая определена для текущего сеанса. Таким образом, в одной базе может одновременно существовать несколько областей, для которых установлен монопольный режим. Если в сеансе разделители не используются, то режим будет установлен не на область, а на всю базу.

Оцените статью