Администрирование · 11 мин
Как выкинуть пользователя из 1С 7.7
Как принудительно завершить сеанс пользователя в 1С 7.7: монитор пользователей, отключение через сервер, блокировка базы, обработка зависших сеансов и риски потери данных.
В 1С 7.7 нет штатной консоли управления сеансами, как в современных версиях платформы, поэтому задача «выкинуть пользователя» решается разными способами в зависимости от режима работы базы: файлового (dbf) или клиент-серверного (SQL). В файловом варианте администратор опирается на монитор пользователей и управление сетевыми подключениями, в SQL-варианте — на средства самого сервера баз данных.
Прежде чем принудительно завершать чей-то сеанс, важно понимать последствия: у пользователя могут быть незаписанные документы, открытые транзакции и монопольные блокировки. Резкое отключение в момент записи данных способно повредить индексы файловой базы или оставить «подвисшие» блокировки в SQL. Поэтому корректный порядок — сначала попытаться предупредить пользователя, и только потом применять принудительные меры.
Ниже разобраны рабочие способы: просмотр активных пользователей через монитор, отключение через управление компьютером и сервер, снятие монопольного режима, работа с зависшими сеансами и профилактика ситуаций, когда кого-то приходится «выкидывать» регулярно.
Как посмотреть, кто работает в базе: монитор пользователей
Первый шаг перед любыми действиями — определить, кто именно подключен к базе. В 1С 7.7 для этого служит встроенный монитор пользователей. Он открывается из режима «Предприятие» через меню «Администрирование» → «Монитор пользователей» (в некоторых конфигурациях пункт может называться «Активные пользователи»).
Монитор показывает список подключенных пользователей, имена их компьютеров, время входа и режим работы. По этим данным можно понять, кто держит монопольный режим, кто просто забыл закрыть программу, ушедя домой, и чей сеанс нужно завершать.
Обратите внимание: сам монитор не умеет принудительно отключать пользователей — это инструмент наблюдения. Зная имя компьютера и пользователя, вы либо связываетесь с человеком и просите выйти, либо применяете технические способы отключения, описанные ниже.
Мягкий способ: попросить пользователя выйти
Самый безопасный вариант — договориться. Если пользователь на месте, попросите его завершить работу штатно: закрыть все документы и выйти из программы через «Файл» → «Выход». При штатном выходе все данные сохраняются корректно, блокировки снимаются, и риск повреждения базы отсутствует.
Если пользователь недоступен (ушел, не закрыв программу), можно воспользоваться отправкой сообщения на его компьютер. В доменной сети Windows это делается командой msg, в простых одноранговых сетях — через сторонние мессенджеры или звонок. Сообщение не закроет сеанс, но даст человеку шанс сохранить работу.
Мягкий способ всегда предпочтителен, если задача не критична по времени. Принудительное отключение — это крайняя мера, к которой прибегают, когда нужно срочно получить монопольный доступ (например, для обновления конфигурации или тестирования и исправления), а пользователь не отвечает.
Отключение пользователя в файловом режиме через сервер
В файловом варианте база 1С 7.7 лежит в общей сетевой папке, а сеансы пользователей — это открытые по сети файлы. Управлять ими можно на компьютере, где физически расположена база (сервере или выделенной машине).
Порядок действий на сервере с базой:
- 1На сервере, где лежит база, откройте «Управление компьютером»: правый клик по «Мой компьютер» → «Управление».
- 2Перейдите в раздел «Общие папки» → «Сеансы» (или «Открытые файлы»).
- 3Найдите в списке нужного пользователя или его компьютер — будет видно, какие файлы базы он держит открытыми.
- 4Щелкните по сеансу правой кнопкой и выберите «Закрыть сеанс» (или «Закрыть открытый файл» для точечного отключения).
- 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 с номером процесса.
EXEC sp_who2;
-- найдите SPID нужного пользователя, затем:
KILL 53;Учтите, что команда KILL откатывает текущую транзакцию пользователя. Если в этот момент шла массовая проводка документов, откат может занять заметное время — сервер будет занят, пока транзакция не отменится полностью. Это нормальное поведение, прерывать его перезапуском службы SQL Server не стоит без крайней необходимости.
После отключения проверьте, что в мониторе пользователей 1С сеанс исчез. Иногда «мертвые» подключения висят в SQL дольше, чем показывает 1С, — ориентируйтесь в первую очередь на данные самого сервера.
Как снять монопольный режим и выгнать всех сразу
Частая ситуация: нужно войти в конфигуратор или запустить обработку в монопольном режиме, а база занята. Если пользователей много, отключать каждого по одному долго — проще выгнать всех разом.
В файловом варианте это делается перезапуском службы «Сервер» на машине с базой либо закрытием всех сеансов в «Управлении компьютером» (можно выделить все сеансы и закрыть их одним действием). На время регламентных работ общую папку можно вообще снять с общего доступа — тогда никто не сможет подключиться заново, пока вы не вернете доступ.
В SQL-варианте базу можно перевести в однопользовательский режим: в свойствах базы данных установить ограничение доступа SINGLE_USER с откатом текущих подключений. После завершения работ не забудьте вернуть режим MULTI_USER, иначе остальные пользователи не смогут войти.
Как выбрать действие
Зависшие сеансы: когда пользователь давно вышел, а 1С его «держит»
Типичная проблема 1С 7.7: компьютер пользователя выключился или завис, а в мониторе пользователей он по-прежнему числится активным и мешает монопольному входу. Это «фантомный» сеанс — сетевое подключение фактически мертво, но сервер еще не зафиксировал разрыв.
В файловом режиме такие сеансы снимаются через то же «Управление компьютером»: закройте зависший сеанс вручную. Также помогает удаление lock-файлов в каталоге базы (файлы с расширением .lck или служебные файлы пользователей), но делать это нужно только когда точно никто не работает.
В SQL-варианте «фантомы» видны в sp_who2 как подключения с давним временем последнего запроса. Их завершают той же командой KILL. Если зависшие сеансы появляются регулярно, стоит проверить стабильность сети и настройки таймаутов — частые разрывы говорят о проблемах с оборудованием или сетевыми картами.
Проверка результата и профилактика
После любого принудительного отключения убедитесь, что цель достигнута: откройте монитор пользователей и проверьте, что список пуст или нужный сеанс отсутствует. Затем попробуйте выполнить то действие, ради которого отключали пользователя, — например, войти в конфигуратор в монопольном режиме.
Если отключение было аварийным (сеанс рвался во время записи), запустите тестирование и исправление информационной базы из конфигуратора. Перед этим обязательно сделайте резервную копию каталога базы — операции восстановления необратимы, и копия будет единственной страховкой.
Чтобы ситуация с «выкидыванием» пользователей не повторялась, внедрите простые правила: регламент обязательного выхода из 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. При больших транзакциях это может занять продолжительное время — дождитесь завершения, не перезапуская службу сервера.