К статье
Практический материал

Администрирование · 11 мин

Как выкинуть пользователя из 1С 7.7

Как принудительно завершить сеанс пользователя в 1С 7.7: монитор пользователей, отключение через сервер, блокировка базы, обработка зависших сеансов и риски потери данных.

В 1С 7.7 нет штатной консоли управления сеансами, как в современных версиях платформы, поэтому задача «выкинуть пользователя» решается разными способами в зависимости от режима работы базы: файлового (dbf) или клиент-серверного (SQL). В файловом варианте администратор опирается на монитор пользователей и управление сетевыми подключениями, в SQL-варианте — на средства самого сервера баз данных.

Прежде чем принудительно завершать чей-то сеанс, важно понимать последствия: у пользователя могут быть незаписанные документы, открытые транзакции и монопольные блокировки. Резкое отключение в момент записи данных способно повредить индексы файловой базы или оставить «подвисшие» блокировки в SQL. Поэтому корректный порядок — сначала попытаться предупредить пользователя, и только потом применять принудительные меры.

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

Как посмотреть, кто работает в базе: монитор пользователей

Первый шаг перед любыми действиями — определить, кто именно подключен к базе. В 1С 7.7 для этого служит встроенный монитор пользователей. Он открывается из режима «Предприятие» через меню «Администрирование» → «Монитор пользователей» (в некоторых конфигурациях пункт может называться «Активные пользователи»).

Монитор показывает список подключенных пользователей, имена их компьютеров, время входа и режим работы. По этим данным можно понять, кто держит монопольный режим, кто просто забыл закрыть программу, ушедя домой, и чей сеанс нужно завершать.

Обратите внимание: сам монитор не умеет принудительно отключать пользователей — это инструмент наблюдения. Зная имя компьютера и пользователя, вы либо связываетесь с человеком и просите выйти, либо применяете технические способы отключения, описанные ниже.

Мягкий способ: попросить пользователя выйти

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

Если пользователь недоступен (ушел, не закрыв программу), можно воспользоваться отправкой сообщения на его компьютер. В доменной сети Windows это делается командой msg, в простых одноранговых сетях — через сторонние мессенджеры или звонок. Сообщение не закроет сеанс, но даст человеку шанс сохранить работу.

Мягкий способ всегда предпочтителен, если задача не критична по времени. Принудительное отключение — это крайняя мера, к которой прибегают, когда нужно срочно получить монопольный доступ (например, для обновления конфигурации или тестирования и исправления), а пользователь не отвечает.

Отключение пользователя в файловом режиме через сервер

В файловом варианте база 1С 7.7 лежит в общей сетевой папке, а сеансы пользователей — это открытые по сети файлы. Управлять ими можно на компьютере, где физически расположена база (сервере или выделенной машине).

Порядок действий на сервере с базой:

Порядок действий
  1. 1
    На сервере, где лежит база, откройте «Управление компьютером»: правый клик по «Мой компьютер» → «Управление».
  2. 2
    Перейдите в раздел «Общие папки» → «Сеансы» (или «Открытые файлы»).
  3. 3
    Найдите в списке нужного пользователя или его компьютер — будет видно, какие файлы базы он держит открытыми.
  4. 4
    Щелкните по сеансу правой кнопкой и выберите «Закрыть сеанс» (или «Закрыть открытый файл» для точечного отключения).
  5. 5
    Проверьте в мониторе пользователей 1С, что сеанс исчез из списка активных.

После закрытия сеанса на сервере у пользователя на экране появится ошибка доступа к файлам базы, и 1С завершит работу. Если сеанс был в момент записи данных, есть риск повреждения индексных файлов — поэтому после таких отключений рекомендуется запустить тестирование и исправление информационной базы.

Альтернативный вариант — перезапуск службы «Сервер» (LanmanServer) на машине с базой. Это разорвет все сетевые подключения сразу, то есть выкинет вообще всех пользователей. Способ грубый, но эффективный, когда нужно очистить базу полностью, например перед регламентными работами.

Отключение пользователя в клиент-серверном (SQL) варианте

Если 1С 7.7 работает с базой на Microsoft SQL Server, сеансы пользователей — это подключения к SQL Server. Отключить конкретного пользователя можно через SQL Server Enterprise Manager (для старых версий) или SQL Server Management Studio.

В Management Studio откройте «Activity Monitor» (Монитор активности) или выполните запрос sp_who, чтобы увидеть список подключений к нужной базе. Найдите процесс (SPID) пользователя по логину или имени компьютера и завершите его командой KILL с номером процесса.

sql
EXEC sp_who2;
-- найдите SPID нужного пользователя, затем:
KILL 53;

Учтите, что команда KILL откатывает текущую транзакцию пользователя. Если в этот момент шла массовая проводка документов, откат может занять заметное время — сервер будет занят, пока транзакция не отменится полностью. Это нормальное поведение, прерывать его перезапуском службы SQL Server не стоит без крайней необходимости.

После отключения проверьте, что в мониторе пользователей 1С сеанс исчез. Иногда «мертвые» подключения висят в SQL дольше, чем показывает 1С, — ориентируйтесь в первую очередь на данные самого сервера.

Как снять монопольный режим и выгнать всех сразу

Частая ситуация: нужно войти в конфигуратор или запустить обработку в монопольном режиме, а база занята. Если пользователей много, отключать каждого по одному долго — проще выгнать всех разом.

В файловом варианте это делается перезапуском службы «Сервер» на машине с базой либо закрытием всех сеансов в «Управлении компьютером» (можно выделить все сеансы и закрыть их одним действием). На время регламентных работ общую папку можно вообще снять с общего доступа — тогда никто не сможет подключиться заново, пока вы не вернете доступ.

В SQL-варианте базу можно перевести в однопользовательский режим: в свойствах базы данных установить ограничение доступа SINGLE_USER с откатом текущих подключений. После завершения работ не забудьте вернуть режим MULTI_USER, иначе остальные пользователи не смогут войти.

Маршрут решения

Как выбрать действие

Нужно отключить одного пользователя в файловой базеЗакройте его сеанс через «Управление компьютером» → «Общие папки» → «Сеансы» на сервере с базой
Нужно отключить всех в файловой базеПерезапустите службу «Сервер» или временно снимите общий доступ с папки базы
База на SQL Server, нужен один пользовательНайдите его SPID через sp_who2 и выполните KILL
База на SQL Server, нужен монопольный доступПереведите базу в режим SINGLE_USER WITH ROLLBACK IMMEDIATE, а после работ верните MULTI_USER

Зависшие сеансы: когда пользователь давно вышел, а 1С его «держит»

Типичная проблема 1С 7.7: компьютер пользователя выключился или завис, а в мониторе пользователей он по-прежнему числится активным и мешает монопольному входу. Это «фантомный» сеанс — сетевое подключение фактически мертво, но сервер еще не зафиксировал разрыв.

В файловом режиме такие сеансы снимаются через то же «Управление компьютером»: закройте зависший сеанс вручную. Также помогает удаление lock-файлов в каталоге базы (файлы с расширением .lck или служебные файлы пользователей), но делать это нужно только когда точно никто не работает.

В SQL-варианте «фантомы» видны в sp_who2 как подключения с давним временем последнего запроса. Их завершают той же командой KILL. Если зависшие сеансы появляются регулярно, стоит проверить стабильность сети и настройки таймаутов — частые разрывы говорят о проблемах с оборудованием или сетевыми картами.

Типичные ошибки
01
Отключение пользователя в момент записи данных — приводит к повреждению индексов dbf и необходимости восстановления базы
02
Удаление файлов .lck в каталоге базы, пока кто-то еще реально работает, — вызывает ошибки доступа и рассинхронизацию данных
03
KILL процесса в SQL без проверки, чем он занят, — откат большой транзакции может надолго заблокировать сервер
04
Перевод базы в SINGLE_USER и забытый возврат в MULTI_USER — утром никто не сможет войти в 1С
05
Перезагрузка сервера с базой без предупреждения — потеря несохраненных данных у всех пользователей сразу

Проверка результата и профилактика

После любого принудительного отключения убедитесь, что цель достигнута: откройте монитор пользователей и проверьте, что список пуст или нужный сеанс отсутствует. Затем попробуйте выполнить то действие, ради которого отключали пользователя, — например, войти в конфигуратор в монопольном режиме.

Если отключение было аварийным (сеанс рвался во время записи), запустите тестирование и исправление информационной базы из конфигуратора. Перед этим обязательно сделайте резервную копию каталога базы — операции восстановления необратимы, и копия будет единственной страховкой.

Чтобы ситуация с «выкидыванием» пользователей не повторялась, внедрите простые правила: регламент обязательного выхода из 1С в конце дня, автоматическое завершение сеансов по расписанию на сервере (скрипт, закрывающий сетевые сеансы ночью) и предупреждение пользователей перед регламентными работами заранее, а не в момент отключения.

Итог

Что важно запомнить

Активных пользователей смотрите в мониторе (Администрирование → Монитор пользователей). В файловой базе сеансы закрываются через «Управление компьютером» на сервере, в SQL-базе — командой KILL по SPID. Принудительное отключение во время записи опасно для данных, поэтому после него выполняйте тестирование и исправление, а резервную копию делайте заранее.

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

Можно ли выкинуть пользователя прямо из монитора пользователей в 1С 7.7?

Нет, монитор в 7.7 только отображает список активных сеансов и не содержит функций отключения. Используйте его для идентификации пользователя, а само отключение выполняйте средствами Windows (закрытие сетевого сеанса) или SQL Server (команда KILL).

Пользователь выключил компьютер, но в мониторе он виден. Что делать?

Это зависший сеанс: сервер еще не зафиксировал разрыв соединения. Закройте его вручную через «Управление компьютером» → «Общие папки» → «Сеансы» на машине с базой. Обычно после этого монопольный доступ становится доступен.

Опасно ли принудительно завершать сеанс пользователя?

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

Как быстро выгнать всех пользователей для обновления конфигурации?

В файловом режиме — перезапустите службу «Сервер» на машине с базой или закройте все сеансы в «Управлении компьютером», а папку временно снимите с общего доступа. В SQL-варианте — переведите базу в режим SINGLE_USER, не забыв потом вернуть MULTI_USER.

Где лежат файлы блокировок 1С 7.7 и можно ли их удалять?

Служебные lock-файлы находятся в каталоге информационной базы. Удалять их можно только при гарантированном отсутствии работающих пользователей — иначе активные сеансы потеряют связь с базой, а данные могут рассинхронизироваться.

Почему после KILL в SQL Server сеанс не исчезает сразу?

Команда KILL инициирует откат текущей транзакции, и пока откат не завершится, процесс остается в списке со статусом ROLLBACK. При больших транзакциях это может занять продолжительное время — дождитесь завершения, не перезапуская службу сервера.