Принудительное отключение сеанса 1С из конфигуратора: пошагово

· 9 мин

Содержание

Открыли конфигуратор, чтобы обновить конфигурацию , а 1С отвечает: «Не удалось установить монопольный доступ». В базе кто-то сидит. Звонить по кабинетам долго, а нужный человек ушёл на обед, оставив сеанс открытым.

Выкинуть пользователя из базы можно прямо из конфигуратора: Администрирование → Активные пользователи, выбираете сеанс и отключаете его. Если сеанс не отключается, остаются запасные пути: блокировка входа, консоль кластера для серверной базы, в крайнем случае работа с файлами базы. Порядок действий и риски по каждому способу описаны ниже.

Отключённый сеанс теряет всё, что пользователь не успел записать. Документ в режиме редактирования, не проведённый и не записанный, пропадёт. Сначала пробуйте договориться, принудительное отключение — запасной вариант.

Перед отключением: что проверить

Минута на проверку сэкономит чужую работу. Выясните три вещи.

  1. Кто в базе. Список активных пользователей покажет имя, компьютер, приложение и время начала сеанса. Если видите «Конфигуратор» от вашего же имени с другого компьютера — это забытый сеанс разработчика, а не бухгалтер.
  2. Какого типа база. Файловая лежит в папке на диске или в сетевой папке. Серверная работает через кластер 1С:Предприятия. Способы отключения у них разные.
  3. Зачем вам монопольный доступ. Он нужен для обновления структуры базы, загрузки .dt, тестирования и исправления, реструктуризации. Для простого просмотра модулей или правки макета отключать никого не нужно.

Если база рабочая, предупредите людей заранее и убедитесь, что есть свежая копия. Выгрузка .dt через конфигуратор (Администрирование → Выгрузить информационную базу) делается как раз в монопольном режиме, так что сначала вам всё равно придётся освободить базу.

Перед принудительным отключением
Выполнено: 0 / 4

Штатный способ: список активных пользователей

Это основной путь, и в большинстве случаев его хватает.

Открываем список

  1. Запустите конфигуратор нужной базы. Если база занята, он всё равно откроется — монопольный доступ нужен только для отдельных операций.
  2. Выберите в меню Администрирование → Активные пользователи.
  3. В окне увидите таблицу сеансов: пользователь, компьютер, приложение (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 вручную можно только тогда, когда вы абсолютно уверены, что ни один клиент базу не использует, и после копии каталога базы целиком. Если ошибётесь, пострадают данные тех, кто в это время пишет в базу. Для рабочей базы лучше сначала проверить целостность тестированием и исправлением.

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

Разбор причины: почему сеансы зависают

Если вы отключаете одних и тех же людей каждую неделю, дело не в них. Журнал регистрации покажет, что происходило перед зависанием.

В конфигураторе откройте Администрирование → Журнал регистрации. Что смотреть:

  1. Отфильтруйте события по пользователю и по времени, когда он перестал отвечать.
  2. Обратите внимание на события с уровнем «Ошибка» и «Предупреждение».
  3. Найдите длинные транзакции: событие «Транзакция. Начало» без последующей фиксации.
  4. Посмотрите на блокировки: ошибки вида «Превышено время ожидания блокировки» говорят, что два сеанса не поделили данные.

Частые причины:

  • 📄 Пользователь редактирует документ, а второй пытается провести ту же номенклатуру: возникает ожидание на управляемой блокировке.
  • 🌐 Нестабильная сеть между клиентом и сервером или файловой папкой.
  • 🧮 Тяжёлые отчёты и обработки в рабочее время.
  • 💾 Антивирус сканирует файл базы или кэш.

Сценарий: обновление конфигурации и сеансы, которые мешают

Пример из практики. Нужно поставить обновление в базу на двадцать человек, до обеда время есть. Порядок такой:

  1. За день предупредите всех: «с 18:00 база недоступна, закончите работу и закройте 1С».
  2. В 17:45 включите блокировку начала сеансов с сообщением «Идёт обновление, вход откроется в 19:00».
  3. В 18:00 откройте Администрирование → Активные пользователи и посмотрите, кто остался. Обычно это два-три человека с забытыми окнами.
  4. Позвоните им. Если не отвечают, отключите сеансы по одному, сверяя имя и компьютер.
  5. Сделайте выгрузку .dt и убедитесь, что файл появился и не нулевого размера.
  6. Выполните обновление и проверьте работу под своей учётной записью.
  7. Снимите блокировку и напишите в общий чат, что база открыта.

Для файловой базы после шага 4 полезно открыть список ещё раз: пока вы звонили, кто-то мог войти до включения блокировки или она могла не сработать из-за неверной даты.

Фоновые задания и обмены

Отдельная история с сеансами, которые запускает не человек. Это регламентные задания (обмен данными, загрузка курсов валют, расчёт итогов) и сеансы внешних систем по COM или веб-сервису.

  • ⚙️ Если в списке виден сеанс обмена, дождитесь его окончания. Прерывание на середине передачи пакета приведёт к тому, что при следующем обмене придётся разбираться с конфликтами.
  • 🔌 Для регламентных заданий на время работ включайте блокировку регламентных заданий в тех же параметрах информационной базы. Иначе планировщик через минуту запустит новое задание, и монопольный доступ снова сорвётся.
  • 🔗 Внешние соединения (интеграция с сайтом, ТСД, кассами) отключаются так же, как и пользовательские, но предупредите владельцев систем: после разрыва они часто не переподключаются сами.

Если база нужна вам на час, а обмен идёт каждые десять минут, выставьте блокировку и вернитесь к обмену после завершения работ.

Как не доводить до принудительного отключения

Лучшее отключение то, которое не понадобилось. Несколько мер:

  • 🕐 Договоритесь о времени работ. Для обновления и реструктуризации отведите окно, когда в базе никого нет.
  • 🔒 Заранее включайте блокировку начала сеансов с понятным сообщением и временем возврата.
  • 🧹 Настройте на сервере завершение простаивающих сеансов, чтобы забытые окна не висели сутками. Параметры тайм-аутов задаются в настройках кластера и самой базы, точное название зависит от того, чем вы управляете.
  • 📅 Тяжёлые операции (пересчёт итогов, закрытие месяца) ставьте на ночь.
  • 📝 Для разработки используйте отдельную копию базы, а не рабочую.

Частые вопросы

Можно ли отключить пользователя, не заходя в конфигуратор?
Да. Из обычного клиента это делается в разделе администрирования (поддержка и обслуживание). Для серверной базы можно использовать консоль кластера.
Пользователь потеряет данные при отключении?
Потеряет всё, что не записано. Записанные и проведённые документы остаются в базе.
Почему после отключения пользователь снова в базе?
Он запустил 1С повторно. Включите блокировку начала сеансов на время работы и снимите её после.
Нужны ли права, чтобы отключать сеансы?
Да, нужны права администратора информационной базы. У обычного пользователя пункта «Активные пользователи» в конфигураторе не будет.
Как узнать, фоновое это задание или человек?
По столбцу «Приложение» в списке активных пользователей: фоновые задания помечены отдельно и обычно не имеют имени живого пользователя.