Установленный монопольный режим позволит пользователю быть единственным пользователем базы, пока он установлен. Однако сам монопольный режим можно установить только в том случае, если на момент установки пользователь был единственным! Установка монопольного режима
Как видите, если применение процедуры работы с информационной базой УстановитьМонопольныйРежим() приводит к ошибке, приходится с этим смириться. Хотя если захотите обеспечить выход других пользователей из системы, в настоящем издании есть пример того, как этого добиться: Как принудительно завершить работу всех пользователей информационной базы ?».
Кроме самой установки монопольного режима можно еще, например, убедиться, что в текущий момент работа идет в монопольном режиме:
Проверка монопольного режима
Или же снять монопольный режим (Отмена монопольного режима):
В 1С 7.7, режим «Монопольно» присутствует только в сетевых версиях 1С. Если же у Вас не сетевая версия, то Вы будете по умолчанию заходить монопольно – Вас об этом даже не спросят.
Для определения режима работы существует специальный метод: МонопольныйРежим(). Возвращаемое значение: Число 1 — если программа запущена в монопольном режиме; Число 0 — если программа запущена в сетевом режиме. Небольшой пример:
Для 8.х: Как отключить узел от распределенной информационной базы?
Поскольку сама конфигурация заблокирована, то этот код надо создавать в обработке, открыв каую-нибудь другую (незаблокированную) конфигурацию, вставить кнопку в конфигураторе. Сохранить её как внешнюю обработку и выполнить, запустив базу в режиме 1С:Предприятие в монопольном режиме (и открыв внешнюю обработку из файла).
При этом, этот код нельзя выполнить в режиме отладчика, т.е./или имея конфигуратор открытым на отключаемой базе, поскольку требуется исключительная блокировка доступа к базе этого кода.
Название параметра не имеет значение, хотя по умолчанию, параметр процедуры для кнопки командной панели
будет проставляется как "Кнопка", а вставляемой через меню Форма --> Вставить элемент управления... подучается "Элемент"
Привожу тут код внешней обработки отключение - восстановление подключения к УРБД:
Для 7.7:
При преобразовании информационной базы в режим использования компоненты УРБД (Управление Распределенными Информационными Базами), в ИБ вносятся некоторые изменения, не позволяющие использовать базу в обычном режиме. А именно: добавляются три таблицы, отвечающие за процесс синхронизации, и вносятся изменения в таблицу 1ssystem.dbf Не забудьте сделать резервную копию перед тем, как: Удалить файлы 1sdbset.dbf, 1sdbset.cdx, 1sdwnlds.dbf, 1sdwnlds.cdx, 1supdts.dbf, 1supdts.cdx Удалить единственную запись из файла 1ssystem.dbf Зайти в режим конфигуратора, открыть, например, свойства конфигурации, добавить какой-нибудь символ в комментарий, а потом его удалить. После этого сохранить конфигурацию.
Для решения этой проблемы нужно запустить программу в монопольном режиме (поставьте галочку в поле "Монопольно" при запуске программы). Конечно, предварительно придется попросить всех пользователей выйти из 1С: Предприятие. На предложение восстановления индексных файлов нужно ответить утвердительно. Этот процесс может занять значительное количество времени, от 1-2 минут для баз в 5-10 мегабайт до порядка часа для больших баз. Если Вам не удается запустить систему в монопольном режиме, хотя Вы уверены, что все пользователи вышли из программы, то сначала проверьте свой компьютер, возможно, там осталась запущенная копия программы. Если и это не помогло, то попробуйте выключить клиентские машины (можно по одной, с проверкой после каждой). Вероятно, что одна из программ была некорректно завершена и не освободила базу
1cv7.exe MODE [ /M | /D | /U | /N | /P ], где MODE - режим запуска, может принимать только одно из трех значений:
config - режим конфигуратора;
debug - режим отладчика;
enterprise - нормальный (рабочий) режим 1С;
Предприятие. следующие ключи опциональны:
/M - запуск программы в монопольном режиме;
/D - каталог базы данных;
/U - рабочий каталог пользователя (каталог из списка пользователей игнорируется);
/N - имя пользователя;
/P - пароль пользователя;
/T<путь> - путь к временным файлам
/@<ИмяФайла> - для режима конфигуратора с указанием файла пакетного запуска
/W - инициализация Web расширения
Примеры:
в этом случае произойдет запуск программы без вывода диалогов о выборе базы и режима работы, а также без запроса имени и пароля пользователя.
Запуск 1С в режиме Предприятие, база из каталога D:\1C_base\ZIK\basa, Пользователь Администратор, Пароль 220366, Монопольно
Запуск 1С в режиме Конфигуратора, база из каталога D:\1C_base\ZIK\basa, Пользователь Администратор, Пароль 220366,
Путь к файлу с параметрами пакетного режима
Эта ошибка происходит на сетевой или SQL – версии по причине блокировки файлов другим пользователем или Вами же. Обычно это монопольный вход первого, кто входит (или переиндексация, после которой не вышли). Для исправления ошибки нужно открыть монитор пользователей, посмотреть, кто заблокировал БД и попросить его выйти.
На SQL версии, когда появляется желание войти в БД монопольно, а кто-то из пользователей наблюдает за работой БД 1С через средства SQL сервера, такая ошибка тоже может возникнуть. Монитор тогда не поможет. Нужно средствами SQL сервера определить, кто обращается к БД и закрыть эти приложения (или прервать блокировки средствами SQL сервера). После этого монопольный доступ к БД станет возможен.
1. Кто-то уже вошел в 1С в монопольном режиме. Проверка – запустить 1С в режиме Монитор и посмотреть пользователей.
2. Кто-то входил в 1С и не довел дело до конца (выбор базы, выбор пользователя, пароль) – а система временно заблокировала что-то. Если режим Монитор не помог, то см. пункт 4.
3. Кто-то был в 1С в монопольном режиме и вышел совсем недавно (несколько секунд нужно на закрытие всех файлов и снятие всех блокировок). Решение – подождать 30 сек и повторить вход.
4. Кто-то получил доступ к одному из файлов базы данных напрямую, без 1С, и не отпускает его. Решение – на компьютере с базой данных Панель управления – Администрирование – Управление компьютером – Служебные программы – Общие папки и там все просмотреть, кто вошел и какие файлы открыл.
Кроме описанных выше возможен такой вариант. Работа с 1С одного из пользователей была завершена некорректно (перезагрузка компьютера в результате колебаний напряжения, зависание компьютера и т.п.), и в каталоге пользователя (и, возможно, каталоге базы) остались временные файлы 1cv7.LCK. Если причина в этом, то достаточно будет удалить такие файлы.
Каталоги пользователей находятся в каталоге базы данных.
Кроме того, если пользователей 1С прописывал не специалист, то он мог допустить такую ошибку: не указал каждому пользователю отдельный “каталог пользователя” или указал для всех один и тот же каталог. В таком случае даже если кто-то работает с программой НЕ в монопольном режиме, другие пользователи не смогут зайти в программу пока не выйдет этот.
Ну и еще как вариант- кто-то зашел в 1С, а Вы пытаетесь кнопочкой из конфигуратора запустить ее в монопольном режиме.
Иногда возникает ситуация, когда необходимо очистить базу от документов, это либо открытие нового периода с чистой базой, либо чистая копия для филиала или отдела.
Вот скрипт для частичной очистки базы, закройте программу "1С:Предприятие", ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ КОПИЮ, поместите файл в рабочую папку базы и запустите на выполнение, запустите программу в монопольном режиме и удалите помеченные объекты.
Есть возможность очистить информационную базу, не удаляя при этом остатки товаров, долги и взаиморасчёты с клиентами. Для этого, прежде чем запустить скрипт удалите в нём строку "del rg*.*. Но такую очистку можно делать только в начале месяца, сразу после открытия нового периода. Обязательно проверьте получившуюся базу данных перед использованием.
Запустите программу "1С:Предприятие" в монопольном режиме: меню "Пуск" -> "Программы" -> "1С:Предприятие 7.7" -> "1С:Предприятие Монопольно".
Для принудительной переиндексации следует удалить все индексные файлы из каталога базы данных. Индексными являются все файлы с расширением *.cdx. Их удалить можно вручную, либо воспользовавшись специальной программой Clear.BAT: