Монопольный режим — это особый режим работы базы 1С, при котором к базе имеет доступ только 1 сеанс. В статье рассмотрены особенности применения данного режима.
Монопольный режим целесообразно использовать когда необходимо выполнить существенные изменения данных и при этом исключить влияние других сеансов на результаты работы. В частности, режим монопольного доступа устанавливается при выполнении некоторых сервисных процедур (удаление помеченных объектов) и вызове некоторых методов встроенного языка (УстановитьЧасовойПоясИнформационнойБазы(), УдалитьОбъекты() и др.).
Установка монопольного режима
Установка и снятие монопольного режима выполняется методом
УстановитьМонопольныйРежим(<МонопольныйРежим>)
В качестве входного параметра передается значение типа булево.
Монопольный режим возможно установить только при одновременном выполнении условий:
- в режиме предприятия работает только один пользователь (Вы);
- у пользователя есть право на изменение монопольного режима (в ролях флаг «Монопольный режим» корня дерева метаданных).
- отсутствуют активные транзакции (явные или неявные).
Если какое-то требование не соблюдается, выполнение метода завершится ошибкой вида
Проверить установку монопольного режима можно при помощи метода
МонопольныйРежим()
Метод возвращает Истина, если монопольный режим установлен.
В монопольном режиме запрещено создание новых сеансов, за исключением одного фонового задания. Управляемые блокировки не устанавливаются, попытки их установки игнорируются.
При работе 1С в клиент-серверном варианте с СУБД MS SQL Server установка базы в монопольный режим не переводит базу данных в однопользовательский режим (single user).
Использование монопольного режима в базе с разделителями
Метод УстановитьМонопольныйРежим() устанавливает монопольный режим только в той области, которая определена для текущего сеанса. Таким образом, в одной базе может одновременно существовать несколько областей, для которых установлен монопольный режим. Если в сеансе разделители не используются, то режим будет установлен не на область, а на всю базу.