В наше время, когда о человеке говорят,
что он умеет жить,
обычно подразумевают, что он не отличается
особой честностью.
С.Галифакс.
1С:Школа. Выпуск 30. "Монопольный режим".
Пользователи сетевых версий 1С:Предприятия
часто задают вопросы, касающиеся работы в
монопольном режиме: какие дополнительные
функции этот режим предоставляет, на что влияет,
надо ли ставить флаг «Монопольно» если знаешь,
что работаешь один в базе т т.д. Итак, по порядку.
Режим «Монопольно» присутствует только в
сетевых версиях 1С. Если же у Вас не сетевая
версия, то Вы будете по умолчанию заходить
монопольно – Вас об этом даже не спросят.
Какие существуют способы загрузки базы
монопольно. Во-первых, при запуске
информационной базы можно установить
соответствующий флажок «Монопольно», во-вторых,
при запуске информационной базы через ярлык
можно указать ключ /m (Про ключи запуска см.
соответствующий выпуск) В третьих, если Вы
запускаете информационную базу из режима
«Конфигуратор» (меню «Сервис»-«1С:Предприятие» в
конфигураторе), то программа автоматически
начнет загружаться в монопольном режиме. Про
третий вариант часто забывают, но обычно до тех
пор, пока один из бухгалтеров устанет ждать,
когда Вы освободите базу.
Правило обращения с режимом «Монопольно»: в
этом режиме может работать одновременно только
один пользователь. Если кто-то уже зашел в базу
монопольно, то Вас туда уже не пустят (ни в
монопольном, ни в разделенном режимах). Если кто
работает в разделенном режиме, то Вас туда не
пустят монопольно. В обоих случаях Вы получите
сообщение «Ошибка блокировки….»
Монопольный режим предназначен для выполнения
определенных операций:
Индексация информационной базы. Если Вы
заходите в новую базу (например, после установки)
или из предыдущей сессии вышли некорректно, то
надо зайти в монопольном режиме. Система
автоматически предложит переиндексацию базы.
После переиндексации надо не забыть выйти из
базы и зайти в разделенном (не монопольном)
режиме, для того, чтобы пустить в базу остальных
пользователей.
В монопольном режиме выполняется удаление
помеченных объектов. Это делается в меню
«Операции» -> «Удаление помеченных объектов».
Для системы это очень ответственная операция и
при ее выполнение проверяются ссылки на каждый
удаляемый объект во всей информационной базе.
Если удаляемый объект где-то упоминается, то
удалить его просто так не удастся (про удаление
объектов, видимо, придется делать отдельный
выпуск).
В монопольном режиме выполняется открытие
периодов в бухгалтерии и торговле. «Операции» -
«Управление бухгалтерскими итогами» (для
бухгалтерии) и «Операции» - «Управление
оперативными итогами». 1С – хранит свои итоги с
точностью до определенного периода, по этому при
наступление нового периода (месяц, квартал) – их
надо открывать.
Надо ли заходить «Монопольно» если знаешь, что
работаешь один в базе? Монопольные процедуры –
2а, 2б, 2с – выполняются не часто. По этому не стоит
заходить монопольно из-за них. Но в монопольном
режиме существенно повышается общая
производительность системы. Каких-то
статистических данных и замеров я не видел, но по
моим оценкам от 10% до 25%. В монопольном режиме
быстрее проводятся документы, строятся отчеты.
По этому если Вы знаете, что никому не причините
неудобств, то работайте монопольно.
Если Вы администрируете 1С, то, возможно, что
кому-то из пользователей надо запретить работать
в монопольном режиме. В этом случае – не надо
изобретать велосипед – достаточно в
конфигураторе в наборе прав для этого
пользователя снять флажок «Запуск в монопольном
режиме». В этом случае, пользователь при входе в
базу получит сообщение «Недостаточно прав
доступа».
Монопольный режим присутствует как в dbf так и SQL
версии 1С Предприятия. Раньше часто возникали
проблемы с тем, что кто-то работает в монопольном
режиме в SQL-базе (SQL 7.0), а второй пользователь
пытается зайти туда же и все падает (вместе с тем,
кто сидит монопольно). Решение - необходимо
поставить ServicePack 2 для SQL 7.0 и тогда падения не
будет – второго пользователя не пустят, и данные
останутся целыми.
При конфигурировании иногда возникает
необходимость запускать процедуры, созданные
Вами, в монопольном режиме (например, если Вы
задумали обмениваться данными с другой
информационной базой, то лучше это делать
монопольно). Для определения режима работы
существует специальный метод: МонопольныйРежим().
Возвращаемое значение: Число 1 — если программа
запущена в монопольном режиме; Число 0 — если
программа запущена в сетевом режиме. Небольшой
пример:
Процедура Сформировать()
Если МонопольныйРежим()=1 Тогда
ВыгрузитьДанные();
Иначе
Предупреждение("Выгрузку данных необходимо
производить в монопольном режиме");
Возрат;
КонецЕсли;
КонецПроцедуры