Зависла 1С: снимаем клиент, сеанс и рабочий процесс сервера

· 9 мин

Содержание

Чтобы принудительно завершить зависший процесс 1С на своём компьютере, откройте Диспетчер задач (Ctrl+Shift+Esc), найдите 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор) и нажмите «Снять задачу». Если база клиент-серверная и после этого сеанс всё ещё «висит», его удаляют в консоли администрирования серверов или командой rac session terminate.

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

С чего начать: что именно зависло

Сначала поймите, где проблема. От этого зависит, кого вы «убьёте» и кто ещё пострадает.

СимптомЧто завислоЧем лечить
Окно 1С белое, в заголовке «Не отвечает», у других всё работаетКлиентский процесс на одном ПКДиспетчер задач или taskkill
Окно закрыли, но при входе пишет, что сеанс уже открыт или превышено число лицензий«Висячий» сеанс на сервереКонсоль кластера или rac
Тормозят или не входят все пользователи одной базыДолгая транзакция или блокировкаНайти сеанс-виновник и завершить его
Не входят все пользователи всех баз, rphost.exe съел памятьРабочий процесс сервераПерезапуск процесса или службы агента
Файловая база не открывается: «база уже используется»Чужой процесс держит файл 1Cv8.1CDЗакрыть процесс или открытый файл в общей папке

Три вопроса, которые экономят время:

  • 🖥️ Зависло у одного или у всех? Если у одного — сервер не трогайте вообще.
  • ⏳ Процесс думает или стоит? Загрузка процессора 15–25% на одном ядре и растущая память — 1С что-то считает (закрытие месяца , пересчёт итогов). Подождите 10–15 минут, прежде чем рубить.
  • 💾 Идёт ли запись? Если пользователь проводил пакет документов или загружал данные, принудительное завершение откатит незавершённую транзакцию. Данные целы, но работу придётся повторить.

Нельзя прерывать обновление конфигурации, загрузку .dt, реструктуризацию и тестирование и исправление базы. Обрыв на середине может оставить базу в нерабочем состоянии. Если Конфигуратор завис именно на этих операциях — сначала убедитесь, что есть свежая резервная копия.

Снять зависший клиент 1С в Диспетчере задач и через taskkill

Это первый и самый безопасный уровень. Вы завершаете программу только у себя, сервер и другие пользователи не задеты.

Через Диспетчер задач

  1. Нажмите Ctrl+Shift+Esc.
  2. Откройте вкладку «Подробности» — там видны имена файлов процессов.
  3. Найдите нужный процесс (таблица ниже).
  4. Правой кнопкой → «Снять задачу». Если процесс не уходит — «Завершить дерево процессов».
ПроцессЧто это
1cv8c.exeТонкий клиент
1cv8.exeТолстый клиент и Конфигуратор
1cestart.exeОкно выбора базы (стартер)
ragent.exe, rmngr.exe, rphost.exeСерверные процессы — на рабочем ПК их быть не должно

На терминальном сервере откройте вкладку «Пользователи», разверните нужного сотрудника и завершите только его процесс 1С. Не трогайте чужие строки.

Через командную строку

Когда Диспетчер задач сам не отвечает или нужно снять сразу несколько окон, удобнее taskkill. Запустите cmd от имени администратора.

:: посмотреть, какие процессы 1С запущены
tasklist /FI "IMAGENAME eq 1cv8*"

:: завершить все тонкие клиенты на этом компьютере
taskkill /IM 1cv8c.exe /F

:: завершить процесс по номеру PID из tasklist
taskkill /PID 12345 /F /T

Ключ /F — принудительно, /T — вместе с дочерними процессами.

На терминальном сервере снимайте процессы только конкретного пользователя, иначе выбьете всех:

tasklist /V /FI "IMAGENAME eq 1cv8c.exe"
taskkill /F /IM 1cv8c.exe /FI "USERNAME eq ivanov"

То же в PowerShell:

Get-Process 1cv8* | Select-Object Id, ProcessName, StartTime
Stop-Process -Name 1cv8c -Force

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

Файловая база: кто держит файл

В файловом варианте серверных сеансов нет, базу держит процесс 1С на том компьютере, где он запущен. Если тот ПК выключен или недоступен, а база лежит в общей папке, откройте на компьютере с папкой оснастку Управление компьютером → Общие папки → Открытые файлы. Найдите 1Cv8.1CD и закройте открытый файл.

Из командной строки то же самое:

net file
net file 57 /close

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

Завершить сеанс в консоли администрирования серверов 1С

В клиент-серверной базе «зависший пользователь» — это чаще всего сеанс, который остался на сервере после обрыва связи или аварийного закрытия клиента. Он занимает лицензию и может держать блокировки.

Пошагово

  1. Запустите «Администрирование серверов 1С Предприятия» на сервере или на ПК, где установлены компоненты администрирования.
  2. Разверните: Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → кластер → Информационные базы → нужная база → Сеансы.
  3. Найдите сеанс по пользователю, компьютеру и времени начала.
  4. Правой кнопкой → «Удалить». Подтвердите.

Если консоль просит логин и пароль — это администратор кластера или администратор информационной базы, а не пользователь Windows.

Как найти сеанс-виновник при блокировках

Когда тормозят все, ищите сеанс с долгим текущим вызовом. В списке сеансов есть колонки со временем текущего вызова и временем, проведённым в СУБД. Сеанс, у которого эти значения растут минутами, — главный кандидат.

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

Если консоль не открывается

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

regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"

Номер версии в пути замените на установленный у вас. Разрядность radmin.dll должна совпадать с разрядностью консоли.

Принудительное завершение сеанса 1С командой rac

Утилита rac удобна, когда консоли нет под рукой, сервер на Linux или завершение нужно встроить в скрипт. Она лежит в папке bin платформы и работает через сервер администрирования ras.

Шаг 1. Запустить ras

Если ras не установлен службой, запустите его вручную на сервере 1С:

ras cluster --port=1545 localhost:1540

Здесь 1540 — порт агента сервера, 1545 — порт, на котором ras будет ждать rac.

Шаг 2. Узнать идентификатор кластера

rac localhost:1545 cluster list

В выводе нужна строка cluster — это UUID кластера.

Шаг 3. Найти сеанс

rac localhost:1545 session list --cluster=<UUID кластера>

Для каждого сеанса выводятся session, user-name, host, app-id и время начала. Ищите нужного пользователя.

Если на кластере задан администратор, добавляйте к каждой команде --cluster-user=<имя> --cluster-pwd=<пароль>.

Шаг 4. Завершить сеанс

rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>

Сеанс исчезает из списка, лицензия освобождается. Полный перечень команд и параметров для вашей версии выводит rac help и rac session help.

Перед тем как завершать чужой сеанс
Выполнено: 0 / 4

Перезапуск рабочего процесса и службы агента сервера 1С

Это крайняя мера. Она нужна, когда сеансы не удаляются, консоль не отвечает, а rphost.exe занял всю память или процессор.

Остановка службы или процесса rphost обрывает сеансы ВСЕХ пользователей на этом сервере, во всех базах. Делайте это в обед, вечером или после общего предупреждения. Незаписанные данные у людей пропадут.

Вариант 1. Завершить один rphost

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

taskkill /PID 4820 /F

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

Вариант 2. Перезапустить службу агента

В Windows служба называется по шаблону «Агент сервера 1С:Предприятия 8.3 (x86-64)», внутреннее имя зависит от способа установки. Узнайте точное имя:

Get-Service *1C*

Затем перезапустите:

Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)" -Force

Если служба зависла в состоянии «Остановка» больше минуты, завершите ragent.exe, rmngr.exe и все rphost.exe через taskkill /F, потом запустите службу заново.

В Linux найдите юнит и перезапустите его:

systemctl list-units --type=service | grep -i 1c
sudo systemctl restart <имя юнита>

Вариант 3. Очистить кэш сеансов

Если после перезапуска «призрачные» сеансы снова появляются, а консоль падает при открытии списка сеансов, помогает очистка сеансовых данных:

  1. Остановите службу агента сервера.
  2. Откройте каталог кластера: по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541\.
  3. Перенесите в отдельную папку подкаталоги, имя которых начинается с snccntx.
  4. Запустите службу.

Остальное содержимое reg_1541 не трогайте. Не удаляйте файлы 1CV8Clst.lst и 1CV8Reg.lst — в них список баз и настройки кластера, без них базы придётся регистрировать заново.

СпособКогдаКого заденет
Снять 1cv8c.exeОкно не отвечает у одного человекаТолько его
Удалить сеанс в консоли или racВисит сеанс, занята лицензия, блокировкаТолько владельца сеанса
Завершить один rphostПроцесс съел память, остальные в нормеСеансы этого процесса
Перезапустить службу агентаНе отвечает весь серверВсех пользователей всех баз
Очистить snccntxСеансы-призраки после перезапускаВсех, нужна остановка службы

Почему 1С зависает и как сделать так, чтобы не пришлось «убивать»

Принудительное завершение снимает симптом. Если приходится делать это раз в неделю, ищите причину.

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

  • 🔒 Блокировки. Один пользователь проводит документы за месяц, остальные ждут. Помогает перенос тяжёлых операций на вечер.
  • 🧠 Утечка памяти в rphost. Процесс растёт до нескольких гигабайт и перестаёт отвечать.
  • 🌐 Обрывы сети и VPN. Клиент отваливается, сеанс остаётся на сервере и держит лицензию.
  • 📦 Расширения и внешние обработки с бесконечным циклом или тяжёлым запросом.
  • 💽 Нехватка места на диске с базой, каталогом srvinfo или временными файлами СУБД.
  • 🦠 Антивирус, который проверяет файлы базы и каталог кластера на лету.

Что настроить

  1. Перезапуск рабочих процессов. В свойствах кластера задайте интервал перезапуска и допустимый объём памяти рабочих процессов. Кластер будет плавно заменять «распухший» rphost новым, не обрывая сеансы.
  2. Исключения антивируса. Добавьте каталог srvinfo, папку с файловыми базами и процессы rphost.exe, rmngr.exe, ragent.exe.
  3. Регламентное окно. Закрытие месяца, обновления и пересчёт итогов — после рабочего дня.
  4. Технологический журнал. Если зависания повторяются, включите сбор событий о длительных вызовах и блокировках и разберите, какой код их даёт.
  5. Блокировка перед обслуживанием. Перед обновлением выгоняйте пользователей штатно — через блокировку сеансов в консоли или в разделе Администрирование → Обслуживание типовой конфигурации. Тогда людям приходит предупреждение, а не обрыв.
Сохранятся ли данные после принудительного завершения 1С?
Записанные документы сохранятся. Незавершённая транзакция откатится: документ, который проводился в момент снятия, останется непроведённым или не сохранится.
Почему после снятия задачи 1С пишет, что лицензий не хватает?
На сервере остался сеанс завершённого клиента и держит лицензию. Удалите его в консоли кластера или командой rac session terminate, либо подождите, пока сервер закроет его сам.
Можно ли завершить сеанс другого пользователя без прав администратора?
Нет. Для консоли и rac нужны права администратора кластера, а для снятия чужого процесса на терминальном сервере — права администратора Windows.
Чем удаление сеанса отличается от перезапуска службы?
Удаление сеанса затрагивает одного пользователя. Перезапуск службы агента обрывает все сеансы всех баз на сервере.
Как завершить Конфигуратор, который завис при обновлении?
Если идёт реструктуризация, лучше ждать: она может длиться часами на большой базе. Снимайте 1cv8.exe, только если процесс полчаса не грузит ни процессор, ни диск, и сразу готовьтесь восстанавливать базу из резервной копии.