Принудительное отключение сеанса 1С из конфигуратора: пошагово
Содержание
Открыли конфигуратор, чтобы обновить конфигурацию , а 1С отвечает: «Не удалось установить монопольный доступ». В базе кто-то сидит. Звонить по кабинетам долго, а нужный человек ушёл на обед, оставив сеанс открытым.
Выкинуть пользователя из базы можно прямо из конфигуратора: Администрирование → Активные пользователи, выбираете сеанс и отключаете его. Если сеанс не отключается, остаются запасные пути: блокировка входа, консоль кластера для серверной базы, в крайнем случае работа с файлами базы. Порядок действий и риски по каждому способу описаны ниже.
Отключённый сеанс теряет всё, что пользователь не успел записать. Документ в режиме редактирования, не проведённый и не записанный, пропадёт. Сначала пробуйте договориться, принудительное отключение — запасной вариант.
Перед отключением: что проверить
Минута на проверку сэкономит чужую работу. Выясните три вещи.
- Кто в базе. Список активных пользователей покажет имя, компьютер, приложение и время начала сеанса. Если видите «Конфигуратор» от вашего же имени с другого компьютера — это забытый сеанс разработчика, а не бухгалтер.
- Какого типа база. Файловая лежит в папке на диске или в сетевой папке. Серверная работает через кластер 1С:Предприятия. Способы отключения у них разные.
- Зачем вам монопольный доступ. Он нужен для обновления структуры базы, загрузки
.dt, тестирования и исправления, реструктуризации. Для простого просмотра модулей или правки макета отключать никого не нужно.
Если база рабочая, предупредите людей заранее и убедитесь, что есть свежая копия. Выгрузка .dt через конфигуратор (Администрирование → Выгрузить информационную базу) делается как раз в монопольном режиме, так что сначала вам всё равно придётся освободить базу.
Штатный способ: список активных пользователей
Это основной путь, и в большинстве случаев его хватает.
Открываем список
- Запустите конфигуратор нужной базы. Если база занята, он всё равно откроется — монопольный доступ нужен только для отдельных операций.
- Выберите в меню
Администрирование → Активные пользователи. - В окне увидите таблицу сеансов: пользователь, компьютер, приложение (1C:Предприятие, Конфигуратор, веб-клиент, фоновое задание, COM-соединение), начало сеанса и признак того, какой из них ваш.
Отключаем нужный сеанс
Выделите строку и нажмите кнопку завершения сеанса в панели окна. Платформа попросит подтверждение. В 8.3 команда может предложить также ввести причину или пароль для разблокировки, зависит от версии платформы.
После отключения нажмите кнопку обновления списка. Пользователь, у которого был открыт клиент, получит сообщение о завершении работы либо увидит, что соединение потеряно.
Ваш собственный сеанс отключить нельзя, и не нужно: он отмечен в списке.
Что нельзя трогать
Не отключайте без разбора строки с приложением «Фоновое задание» и «Сервер приложений» в серверной базе. Если идёт регламентное задание, например, закрытие месяца или обмен, обрыв оставит операцию недовыполненной, и придётся запускать её заново.
Блокировка входа: чтобы не вернулись
Бывает так: вы отключили человека, а он через секунду запустил 1С снова. Чтобы сеансы не возвращались, пока вы работаете, включите блокировку начала сеансов.
В конфигураторе откройте Администрирование → Параметры информационной базы. Там есть блок блокировки начала сеансов: задаёте период, сообщение для пользователей и код разрешения. Пока блокировка активна, обычный пользователь базу не откроет и увидит ваше сообщение.
Запустить базу
в обход блокировки можно, передав в строке запуска код разрешения. Для этого используется параметр /UC и тот код, который вы задали:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /UCmyCode
Путь к программе и базе у вас будет свой. Код придумайте сами и не оставляйте пустым, иначе смысла в блокировке мало.
Блокировка действует по времени. Если задали конец периода и забыли про него, база сама откроется. Если вместо этого забыли снять блокировку без срока, утром бухгалтерия напишет в поддержку. Снимайте её руками сразу после работы.
Из клиента то же самое делается в разделе администрирования (поддержка и обслуживание → блокировка работы пользователей), но в конфигураторе путь короче и работает даже тогда, когда клиент в базу не пускает.
Если сеанс не отключается: зависшие и «мёртвые» соединения
Строка в списке осталась, хотя вы нажали «отключить». Такое случается, когда компьютер пользователя выключили, пропала сеть, или процесс завис на длинной операции.
Что проверить по порядку:
- 🔄 Обновите список через несколько секунд. Платформа отключает сеанс не мгновенно, особенно если он в середине записи.
- 🖥️ Посмотрите, жив ли компьютер. Если сеанс принадлежит выключенной машине, он «умрёт» сам по тайм-ауту либо его придётся снять на стороне сервера.
- ⏳ Подождите окончания длинной операции. Проведение за большой период или обновление итогов может идти десятки минут, и платформа дожидается безопасной точки.
- 👤 Попросите пользователя закрыть окно 1С или завершить процесс
1cv8.exeв диспетчере задач, если вы имеете к его компьютеру доступ. Это надёжнее всего, потому что процесс уйдёт вместе с блокировками.
Серверная база: отключаем через консоль кластера
Если база развёрнута на сервере 1С:Предприятия, конфигуратор показывает только сеансы, но надёжнее управлять ими из консоли кластера. В консоли администрирования серверов 1С откройте кластер, раздел Информационные базы, нужную базу, затем Сеансы и Соединения.
Различие важное:
| Что | Что это | Когда использовать |
|---|---|---|
| Сеанс | Работа пользователя в базе | Обычное завершение работы |
| Соединение | Сетевое подключение процесса к серверу | Если сеанс уже завершён, а соединение осталось |
Удаление сеанса в консоли ведёт себя как принудительное завершение, соединение с зависшим клиентом разрывается. Если консоли под рукой нет, то же делает утилита rac: список сеансов покажет команда rac session list --cluster=<идентификатор кластера>. Остальные подкоманды и параметры смотрите в справке rac help.
Не перезапускайте службу сервера 1С и не завершайте рабочие процессы rphost ради одного сеанса. Оборвутся сеансы всех пользователей всех баз кластера. Это допустимо только вне рабочего времени и после предупреждения.
Файловая база: что делать, когда не помогает ничего
В файловой базе нет сервера, который держит сеансы. Соединение у каждого клиента своё, а согласованность обеспечивают файлы в папке базы. Рядом с 1Cv8.1CD лежит файл блокировок 1Cv8.1CL.
Типичная ситуация: клиент аварийно закрылся, и в списке остался «призрак». Тогда сначала убедитесь, что в базе действительно никто не работает: обойдите пользователей, проверьте в диспетчере задач на файловом сервере открытые файлы (в оснастке общих папок есть список открытых файлов, там видно, кто держит 1Cv8.1CD).
Если файл базы держит конкретный компьютер, закройте у него процесс 1С. Закрытие файла из оснастки общих папок возможно, но это жёсткий разрыв: клиент потеряет данные, а файл базы при записи в этот момент может повредиться.
Удалять 1Cv8.1CL вручную можно только тогда, когда вы абсолютно уверены, что ни один клиент базу не использует, и после копии каталога базы целиком. Если ошибётесь, пострадают данные тех, кто в это время пишет в базу. Для рабочей базы лучше сначала проверить целостность тестированием и исправлением.
Отладчик здесь не помощник. Он предназначен для разбора кода, а не для разрыва чужих сеансов, и ожидать от него отключения пользователя не стоит.
Разбор причины: почему сеансы зависают
Если вы отключаете одних и тех же людей каждую неделю, дело не в них. Журнал регистрации покажет, что происходило перед зависанием.
В конфигураторе откройте Администрирование → Журнал регистрации. Что смотреть:
- Отфильтруйте события по пользователю и по времени, когда он перестал отвечать.
- Обратите внимание на события с уровнем «Ошибка» и «Предупреждение».
- Найдите длинные транзакции: событие «Транзакция. Начало» без последующей фиксации.
- Посмотрите на блокировки: ошибки вида «Превышено время ожидания блокировки» говорят, что два сеанса не поделили данные.
Частые причины:
- 📄 Пользователь редактирует документ, а второй пытается провести ту же номенклатуру: возникает ожидание на управляемой блокировке.
- 🌐 Нестабильная сеть между клиентом и сервером или файловой папкой.
- 🧮 Тяжёлые отчёты и обработки в рабочее время.
- 💾 Антивирус сканирует файл базы или кэш.
Сценарий: обновление конфигурации и сеансы, которые мешают
Пример из практики. Нужно поставить обновление в базу на двадцать человек, до обеда время есть. Порядок такой:
- За день предупредите всех: «с 18:00 база недоступна, закончите работу и закройте 1С».
- В 17:45 включите блокировку начала сеансов с сообщением «Идёт обновление, вход откроется в 19:00».
- В 18:00 откройте
Администрирование → Активные пользователии посмотрите, кто остался. Обычно это два-три человека с забытыми окнами. - Позвоните им. Если не отвечают, отключите сеансы по одному, сверяя имя и компьютер.
- Сделайте выгрузку
.dtи убедитесь, что файл появился и не нулевого размера. - Выполните обновление и проверьте работу под своей учётной записью.
- Снимите блокировку и напишите в общий чат, что база открыта.
Для файловой базы после шага 4 полезно открыть список ещё раз: пока вы звонили, кто-то мог войти до включения блокировки или она могла не сработать из-за неверной даты.
Фоновые задания и обмены
Отдельная история с сеансами, которые запускает не человек. Это регламентные задания (обмен данными, загрузка курсов валют, расчёт итогов) и сеансы внешних систем по COM или веб-сервису.
- ⚙️ Если в списке виден сеанс обмена, дождитесь его окончания. Прерывание на середине передачи пакета приведёт к тому, что при следующем обмене придётся разбираться с конфликтами.
- 🔌 Для регламентных заданий на время работ включайте блокировку регламентных заданий в тех же параметрах информационной базы. Иначе планировщик через минуту запустит новое задание, и монопольный доступ снова сорвётся.
- 🔗 Внешние соединения (интеграция с сайтом, ТСД, кассами) отключаются так же, как и пользовательские, но предупредите владельцев систем: после разрыва они часто не переподключаются сами.
Если база нужна вам на час, а обмен идёт каждые десять минут, выставьте блокировку и вернитесь к обмену после завершения работ.
Как не доводить до принудительного отключения
Лучшее отключение то, которое не понадобилось. Несколько мер:
- 🕐 Договоритесь о времени работ. Для обновления и реструктуризации отведите окно, когда в базе никого нет.
- 🔒 Заранее включайте блокировку начала сеансов с понятным сообщением и временем возврата.
- 🧹 Настройте на сервере завершение простаивающих сеансов, чтобы забытые окна не висели сутками. Параметры тайм-аутов задаются в настройках кластера и самой базы, точное название зависит от того, чем вы управляете.
- 📅 Тяжёлые операции (пересчёт итогов, закрытие месяца) ставьте на ночь.
- 📝 Для разработки используйте отдельную копию базы, а не рабочую.