Что делать, если 1С не отвечает: завершаем процесс, сеанс и блокировку

· 10 мин

Содержание

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

Но сначала проверьте, что 1С действительно висит, а не считает. Проведение за большой период или закрытие месяца легко держат окно серым 10-15 минут. Если снять такую задачу, документы останутся непроведёнными, а транзакция откатится.

Зависла или просто работает: как отличить за две минуты

Откройте Диспетчер задач и найдите процесс 1С. Смотрите на три вещи.

  • ⏱ Загрузка процессора. Процесс держит 10-100% одного ядра и цифра прыгает — идёт расчёт. Ноль процентов стабильно — вероятно, ждёт ответа от сервера, диска или блокировки.
  • 💾 Память. Память растёт, значит, 1С что-то собирает. Рост остановился на гигабайтах, а процессор молчит — признак настоящего зависания.
  • 💿 Диск. Загрузка диска 100% (особенно при файловой базе на сетевой папке) — причина не в 1С, а в хранилище.

Главное правило: подождите 5-10 минут, если вы запустили тяжёлую операцию. Если окно не реагирует на клики, а процессор на нуле, ждать дальше бессмысленно.

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

Что стоит сделать до завершения

  1. Подождите 5-10 минут и не нажимайте в окне ничего: каждый клик ставится в очередь событий.
  2. Проверьте, нет ли за зависшим окном диалога с вопросом. Иногда 1С показывает его позади основного окна, и клиент ждёт ответа. Переключитесь через Alt+Tab.
  3. Если это тяжёлая обработка, посмотрите, растёт ли размер журнала или временных файлов в папке пользователя.

Снимаем задачу в Windows: Диспетчер и командная строка

Это основной способ для клиентского компьютера. Он работает и в файловой, и в клиент-серверной базе, но влияет только на ваш клиентский процесс.

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

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

💡 Перед завершением можно создать дамп: правая кнопка по процессу → «Создать файл дампа». Он понадобится, если ошибка повторяется, и вы хотите отдать его на разбор специалисту или в линию поддержки. Для разового зависания это лишнее.

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

Когда Диспетчер сам завис или вы работаете на удалённом сервере, подойдёт taskkill. Запускайте командную строку от имени администратора.

Завершить все зависшие тонкие клиенты на машине:

taskkill /F /FI "STATUS eq NOT RESPONDING" /IM 1cv8c.exe

Завершить конкретный процесс по номеру (PID берётся из Диспетчера или из tasklist):

tasklist /FI "IMAGENAME eq 1cv8c.exe"
taskkill /F /PID 5124

Ключ /F принудительный: процесс убивается без запроса. Без него команда просто вежливо просит окно закрыться.

На терминальном сервере (RDS) в списке будут процессы всех пользователей. Не используйте taskkill /IM 1cv8c.exe без фильтра по STATUS или USERNAME: уроните всем работающим. Добавьте /FI "USERNAME eq ИМЯ" или завершайте по PID.

На терминальном сервере в Диспетчере задач на вкладке «Пользователи» видно, кому принадлежит сеанс. Если у человека завис весь профиль, а не только 1С, надёжнее выйти из сеанса командой logoff <номер сеанса>, номера покажет query user.

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

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

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

  1. Запустите консоль и раскройте цепочку Центральные серверы 1С:Предприятия → ваш сервер → Кластеры → Local cluster → Информационные базы.
  2. Выберите нужную базу и откройте узел «Сеансы». Здесь видно пользователя, компьютер, приложение, время последней активности и объём вызовов.
  3. Выделите сеанс пользователя, у которого зависла 1С, и удалите его командой контекстного меню.
  4. Если сеанс остаётся в списке, перейдите в узел «Соединения» этой же базы, найдите соединение с тем же компьютером и разорвите его.

Сеанс с Фоновым заданием или Регламентным заданием в приложении — не пользователь. Это задание сервера; такие сеансы удаляйте, только если уверены, что задание зависло (например, висит часами с нулевой активностью).

💡 Если консоль не подключается к серверу или падает с ошибкой про radmin.dll, перерегистрируйте библиотеку. Это один из частых приёмов администратора, особенно после смены версии платформы. В командной строке от имени администратора выполните:

regsvr32 "C:\Program Files\1cv8\8.3.XX.YYYY\bin\radmin.dll"

Вместо 8.3.XX.YYYY подставьте папку установленной версии платформы. Консоль и сервер должны быть одной версии.

Через rac из командной строки

Утилита rac (клиент сервера администрирования) лежит в bin рядом с остальной платформой. Ей пользуются, когда консоль недоступна или нужно автоматизировать завершение сеансов. Запущенным должен быть сервис ras.

Найдите идентификатор кластера:

rac cluster list

Выведите сеансы кластера:

rac session list --cluster=<идентификатор кластера>

Завершите нужный сеанс по его идентификатору:

rac session terminate --session=<идентификатор сеанса> --cluster=<идентификатор кластера>

Идентификаторы — длинные строки вида GUID. Копируйте их из вывода предыдущей команды целиком. Остальные параметры, фильтры и подкоманды смотрите в справке rac help.

Завершение сеанса обрывает всё, что пользователь делал в нём прямо сейчас. Несохранённые документы пропадут. Если он ещё работает, предупредите его.

Когда зависла сама служба сервера

Если не отвечают даже консоль и rac, дело в службе «Агент сервера 1С:Предприятия» либо в рабочем процессе rphost.exe. Один зависший rphost затрагивает только базы, которые на нём обслуживаются, и остальные пользователи продолжат работу.

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

Теперь вы знаете, какие инструменты есть. Чтобы выбрать нужный, ответьте себе на вопросы ниже.

Что именно у вас зависло?

Блокировки и временные файлы: что можно удалять, а что нет

Часть зависаний вызвана не процессом, а остатками блокировок. Различайте три случая.

Файловая база: файл блокировки

В папке с файловой базой, рядом с 1Cv8.1CD, при работе лежит служебный файл блокировки 1Cv8.cdn. При аварийном завершении он иногда остаётся на месте и мешает открыть базу .

  1. Убедитесь, что 1С закрыта у всех: проверьте по Диспетчеру задач и по открытым файлам на сетевом ресурсе.
  2. Переименуйте 1Cv8.cdn (лучше переименуйте, а не удаляйте — так можно вернуть).
  3. Запустите базу.

Если файл удалить, пока кто-то работает в базе, возможна потеря данных и повреждение файла 1Cv8.1CD. Сначала сделайте копию файла базы и убедитесь, что она открывается.

Клиент-серверная база: блокировки на уровне платформы

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

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

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

Кэш клиента

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

  • %APPDATA%\1C\1cv8
  • %LOCALAPPDATA%\1C\1cv8

Закройте все окна 1С и удалите содержимое этих папок. Список баз в стартовом окне хранится отдельно, в %APPDATA%\1C\1CEStart, и от очистки кэша он не пострадает — не трогайте эту папку, иначе придётся добавлять базы заново.

Тот же результат даёт параметр запуска /ClearCache: добавьте его в строку дополнительных параметров запуска базы. Если параметр не сработал, удалите папки вручную.

После очистки первый запуск идёт медленнее: 1С заново строит интерфейс и подгружает метаданные.

Почему зависает: причины и как их убрать

Разовое зависание бывает у всех. Если оно повторяется, ищите причину. Вот что встречается чаще всего.

ПричинаКак проявляетсяЧто делать
Тяжёлая операция в одном потокеКлиент серый, процессор клиента высокийЗапускать закрытие месяца и пересчёты вне рабочего времени
Файловая база по сетевому дискуЗависает при проведении, диск и сеть загруженыХранить базу на быстром диске, перейти на клиент-серверный вариант при росте числа пользователей
АнтивирусЗависание при открытии базы и обращении к файламДобавить папки 1С и базы в исключения
Блокировки данныхНесколько людей ждут на одном документеРазнести работу по времени, найти длинные транзакции
Нехватка памяти на сервереРабочие процессы разрастаются, всё тормозитДобавить ОЗУ, настроить перезапуск процессов
Устаревшая платформаЗависает после обновления WindowsОбновить платформу до актуального релиза

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

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

Регулярно делайте тестирование и исправление информационной базы (в Конфигураторе, в режиме монопольного доступа) и обслуживайте СУБД: обновление статистики и перестроение индексов. Для PostgreSQL и MS SQL это стандартные регламентные задачи. Без них запросы 1С постепенно замедляются.

Следите за размером журнала регистрации и временных файлов. Раздутый журнал на медленном диске тоже тормозит работу.

Что сделать у себя

Оформите чек-лист для себя или для администратора. Он короткий.

Если 1С зависла
Выполнено: 0 / 6

Если не помогло

Бывает, что процесс убит, сеанс удалён, а база всё равно не открывается или снова зависает. Дальше по порядку:

  1. Перезагрузите компьютер. Это грубо, но убирает зависшие драйверные вызовы и держащие файлы процессы, которые Диспетчер не показывает.
  2. Откройте базу в другом режиме. Если тонкий клиент висит, попробуйте толстый (в списке баз откройте «Изменить» и выберите вариант запуска). Если толстый висит, а тонкий нет, разница подскажет, где копать.
  3. Откройте другую базу. Если остальные открываются, проблема в конкретной базе. Если не открывается ни одна — в платформе, профиле пользователя или сети.
  4. Создайте нового пользователя Windows и запустите 1С из-под него. Это быстрая проверка, не в профиле ли дело.
  5. Проверьте журнал регистрации и системный журнал Windows на ошибки около времени зависания.
  6. Обновите платформу до актуального релиза и перезапустите службу сервера в нерабочее время.

Не пытайтесь «лечить» зависание удалением базы или пересозданием кластера. Для серверной базы сначала восстановите работоспособность через резервную копию и администратора сервера: удаление уничтожит данные и настройки.

Если всё упирается в повреждение файла базы, ищите последнюю рабочую резервную копию, а не чините вслепую.

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

Можно ли просто закрыть окно крестиком, если 1С не отвечает?
Нет, крестик не сработает: окно не обрабатывает события. Нужно завершать процесс в Диспетчере задач. Если успели нажать Ctrl+S или документ записан, данные сохранятся, остальное пропадёт.
Пропадут ли данные, если снять задачу?
Всё, что вы успели записать в базу, останется. Несохранённая форма и незавершённая транзакция (например, проведение) пропадут. Сама база при завершении клиента не повреждается; риск есть у файловой базы при обрыве записи.
Чем отличается 1cv8.exe от 1cv8c.exe?
1cv8c.exe — тонкий клиент, 1cv8.exe — толстый клиент и Конфигуратор. Какой запущен, зависит от настройки способа запуска базы.
Как понять, какой из rphost зависший?
Обычно по загрузке процессора и памяти в Диспетчере задач: зависший процесс держит много памяти и не меняет нагрузку. Чтобы связать его с базой и пользователем, смотрите нагрузку по рабочим процессам в консоли администрирования.
Нужно ли после зависания тестировать базу?
Для клиент-серверной базы обычно нет: СУБД откатит незавершённую транзакцию. Для файловой базы после обрыва записи запустите тестирование и исправление в Конфигураторе в монопольном режиме, предварительно сделав копию.