Зависший сеанс в файловой базе 1С: как отключить пользователя

· 9 мин

Содержание

Чтобы выбить пользователя из файловой базы 1С, откройте базу в Конфигураторе, зайдите в Администрирование → Активные пользователи и завершите нужный сеанс. Не помогло — закройте процесс 1cv8.exe на компьютере пользователя или на файловом сервере. Последний рубеж — служебные файлы блокировки в каталоге базы.

Типичная картина: нужно обновить конфигурацию или загрузить .dt, а база пишет, что работают другие пользователи. Бухгалтер ушёл на обед и не закрыл 1С. Или у человека завис сеанс, а он вообще уехал домой. Ниже — способы от мягких к жёстким.

Файловая база не имеет сервера, который «держит» сеансы. Каждый клиент напрямую открывает файл 1Cv8.1CD. Поэтому грубое отключение чревато порчей данных. Перед любыми жёсткими действиями сделайте копию каталога базы.

Сначала выясните, кто в базе и что он делает

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

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

В обычном режиме то же окно открывается через раздел Администрирование — ищите пункт «Активные пользователи» в подразделе поддержки и обслуживания либо найдите его через поиск по командам интерфейса.

Что искать:

  • 👤 Приложение «Конфигуратор» — кто-то сидит в разработке. Его закрытие нужно согласовать особенно.
  • 🖥 Имя компьютера — по нему вы поймёте, куда идти или кому звонить.
  • ⏱ Старое время последней активности — сеанс, скорее всего, завис или человек отошёл.
  • 🔁 Два сеанса одного пользователя — частый случай: первый завис, второй открыли заново.

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

Мягкое отключение через окно активных пользователей

Если у вас есть права администратора, действуйте так.

  1. В окне активных пользователей выделите нужный сеанс.
  2. Если на панели есть кнопка завершения сеанса, нажмите её и подтвердите.
  3. Через несколько секунд обновите список. Сеанс должен исчезнуть.

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

Для ситуаций, когда нужно отключить всех сразу, пригодится блокировка входа плюс завершение работы. В конфигурациях на базе БСП в окне активных пользователей есть блокировка работы пользователей: вы задаёте время начала блокировки, сообщение и код разрешения. Пользователи видят предупреждение и успевают сохранить работу. После наступления времени новые сеансы не пускают, а существующие закрываются.

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

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\Buh" /UC РазрешитьЗапуск

Путь к программе и каталогу базы подставьте свои. Параметр /UC задаёт код разрешения на запуск при включённой блокировке.

Завершить работу всех пользователей одной командой

В типовых конфигурациях с БСП есть параметр запуска, который завершает сеансы всех пользователей:

/C"ЗавершитьРаботуПользователей"

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

Когда сеанс не закрывается: снимаем процесс

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

Вариант 1: Диспетчер задач на рабочем месте

  1. Попросите пользователя (или подключитесь удалённо) открыть Диспетчер задач.
  2. Найдите процесс 1cv8.exe (тонкий клиент называется 1cv8c.exe).
  3. Если открыто несколько баз, ориентируйтесь на заголовок окна и на пользователя в колонке.
  4. Нажмите «Снять задачу».

Вариант 2: командная строка

Когда по сети виден только список процессов, удобно снять по идентификатору:

tasklist /s ИМЯ_КОМПЬЮТЕРА /fi "imagename eq 1cv8.exe"
taskkill /s ИМЯ_КОМПЬЮТЕРА /pid 4820 /f

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

Вариант 3: терминальный сервер

Если люди работают через RDP, 1С выполняется на терминальном сервере, и процессов 1cv8.exe там много. Откройте Диспетчер задач → Подробности, добавьте колонку «Имя пользователя» и снимайте только процессы нужного человека. Иногда проще завершить его сеанс Windows целиком.

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

Если процесс снят, а база всё равно «занята»

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

  • 🕒 Список ещё не обновился. Платформа проверяет «живость» клиента не мгновенно. Подождите минуту-две и обновите окно.
  • 📁 Остался служебный файл блокировки в каталоге базы.

Каталог базы содержит основной файл 1Cv8.1CD и служебные файлы. Нас интересуют те, что имеют расширение .lck.

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

  1. Убедитесь, что в базе действительно никого нет. Проверьте процессы 1cv8.exe и 1cv8c.exe на всех компьютерах, у кого может быть открыта эта база. Проверьте и сам сервер: нет ли там запущенных заданий, фоновых обменов и копирования.
  2. Сделайте копию всего каталога базы целиком.
  3. Закройте всё, что может держать файлы: антивирус, программу резервного копирования, проводник с открытым каталогом.
  4. Удалите файлы .lck из каталога базы. Файл 1Cv8.1CD не трогайте ни при каких условиях.
  5. Запустите базу и проверьте список активных пользователей.

Файл 1Cv8.1CD — это вся ваша база. Удалять, переименовывать и перемещать его нельзя.

Если Windows не даёт удалить файл блокировки, значит, он кем-то открыт. Чаще всего это зависший процесс клиента на каком-то компьютере, который вы не нашли. Найти владельца помогут средства просмотра открытых файлов на сервере: в Управление компьютером → Общие папки → Открытые файлы видно, кто держит файлы по сети.

Кто вообще может отключать сеансы

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

Если вы заходите в Конфигуратор и получаете отказ, проверьте две вещи.

  • 🔑 Роль. У вашего пользователя должна быть роль администратора (в типовых конфигурациях — полные права).
  • 🧱 Вход под своим именем. Если вы заходите под общей учётной записью «Бухгалтер», прав может не хватить. Войдите под отдельным администратором.

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

Автоматизация: ночное освобождение базы

Если окно обслуживания каждый день одно и то же, не делайте это руками. Схема простая и держится на планировщике заданий Windows.

  1. В 23:30 запускается задание, которое вызывает клиент 1С с параметром завершения работы пользователей и кодом разрешения.
  2. Через 5-10 минут второе задание проверяет, остались ли процессы 1cv8.exe с нужной базой, и при необходимости снимает их.
  3. Третье задание копирует каталог базы в архив.
  4. Утром базу открывают как обычно.

Для второго шага пригодится короткий bat-файл. Он снимает все клиентские процессы на файловом сервере, где живут терминальные сеансы:

taskkill /im 1cv8.exe /f
taskkill /im 1cv8c.exe /f

Не запускайте такой bat в рабочее время и на сервере, где крутятся чужие базы. Он снимает вообще все процессы 1С, а не только по одной базе. Для точечного отключения берите конкретный идентификатор процесса.

Прогоните сценарий на тестовой копии. Сначала убедитесь, что копирование начинается только после того, как все файлы освобождены. Иначе в архив попадёт база в неконсистентном состоянии.

Что делать, если ничего не помогает

Идите по лестнице от простого к жёсткому.

СитуацияЧто делатьРиск
Сеанс виден, клиент откликаетсяЗавершить сеанс из списка активныхМинимальный
Нужно закрыть всех в заданное времяБлокировка работы + код разрешенияМинимальный
Сеанс завис, из списка не закрываетсяСнять 1cv8.exe на рабочем местеНезаписанные данные
Компьютера пользователя нет рядомtaskkill по сети или RDP-сеансНезаписанные данные
Процессов нет, сеанс «призрак»Подождать, удалить .lck после копииНужна копия базы
Файлы заняты, владелец не найденПерезагрузить файловый серверПрервутся все сетевые операции

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

После любого жёсткого отключения запустите базу в Конфигураторе и выберите Администрирование → Тестирование и исправление. Для небольшой базы хватит проверки логической целостности и ссылочной целостности. Для этого понадобится монопольный доступ: убедитесь, что в базе никого нет.

Прежде чем снимать процесс
Выполнено: 0 / 5

Как не выбивать пользователей каждую неделю

Если вы делаете это регулярно, проблема в организации, а не в зависшем клиенте.

  • 🌙 Резервная копия ночью. Настройте планировщик Windows: завершение работы пользователей, копия каталога, запуск. Тогда по утрам база свободна.
  • 🔌 Не оставлять 1С открытой на ночь. Зависшие сеансы чаще всего копятся у тех, кто выключает компьютер крышкой ноутбука.
  • ⚡ Нормальная сеть. Файловая база по Wi-Fi и через нестабильный VPN — прямой путь к обрывам и зависшим сеансам. Если без VPN не обойтись, лучше терминальный сервер .
  • 🛡 Исключения в антивирусе для каталога базы. Сканирование файла 1Cv8.1CD в реальном времени замедляет работу и даёт блокировки.
  • 🧹 Регламент обновлений. Объявите окно, когда все выходят из базы. Это проще, чем гоняться за каждым.
  • 📈 Размер базы. Файловая база удобна до десятка активных пользователей. Если людей больше и зависания постоянны, смотрите в сторону клиент-серверного варианта.

В клиент-серверной версии у вас есть центральный сервер кластера и консоль администрирования, откуда сеанс завершается одним кликом. В файловой базе такой консоли нет: способы выше — это всё, что у вас есть.

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

Можно ли выбить пользователя из файловой базы без Конфигуратора?
Да. Окно активных пользователей доступно и в обычном режиме, если у вас есть права администратора. Для обновления структуры и тестирования вам всё равно понадобится Конфигуратор.
Почему после завершения сеанса пользователь пишет, что его «выкинуло»?
Так и должно быть. Клиент получил команду закрыть работу. Если сообщение не появилось, а программа просто исчезла, значит, процесс был снят принудительно.
Потеряются ли данные, которые человек не записал?
Да. Незаписанные формы и документы в открытом окне не сохраняются. Записанные и проведённые документы останутся в базе.
Можно ли выбить сам Конфигуратор, открытый у коллеги?
Технически да, способом из раздела про процессы. Но он может держать открытую транзакцию или быть посреди обновления. Сначала позвоните ему.
Что будет, если удалить `.lck` при работающих пользователях?
Платформа потеряет информацию о блокировках, и два клиента могут одновременно изменить одни данные. Риск порчи базы. Удаляйте файлы только когда базу никто не держит.