1С зависла и не закрывается: снимаем процесс, сеанс или службу так, чтобы база уцелела
Содержание
Принудительно выключить 1С на своём компьютере проще всего через Диспетчер задач: вкладка «Подробности», процесс 1cv8.exe (толстый клиент) или 1cv8c.exe (тонкий клиент), кнопка «Снять задачу». Для серверной базы правильнее завершить не процесс, а сеанс пользователя в консоли кластера — тогда сервер сам откатит незавершённую транзакцию.
Частое заблуждение — что «убить» 1С значит гарантированно испортить базу. Это не так. Платформа пишет данные транзакциями, и обрыв посреди проведения обычно просто откатывает документ. Реальный риск появляется в двух случаях: файловая база в момент записи на сетевой диск и обрыв обновления конфигурации или загрузки .dt.
Когда без принудительного выключения не обойтись
Сначала подождите. Долгое проведение, закрытие месяца или формирование тяжёлого отчёта часто выглядит как зависание, хотя программа работает. Если в Диспетчере задач процесс 1С грузит процессор или диск — он чем-то занят.
Выключать принудительно стоит, когда:
- 🧊 окно не отвечает 10–15 минут, а процесс не потребляет ни процессор, ни диск;
- 🔒 сеанс «завис» на сервере и держит блокировку, из-за которой другие не могут провести документы;
- 🛠 нужно обновить конфигурацию , а один пользователь ушёл домой и оставил 1С открытой;
- 👻 окна 1С нет, но процесс висит в списке и не даёт запустить программу заново;
- 💥 сервер 1С перестал отвечать всем пользователям сразу.
Если идёт обновление конфигурации
, загрузка информационной базы из .dt или «Тестирование и исправление» — не прерывайте процесс, даже если кажется, что он завис. Эти операции на крупной базе идут часами. Обрыв здесь — самый частый путь к восстановлению из копии.
Какой способ выбрать
| Ситуация | Способ | Что оборвётся |
|---|---|---|
| Зависло окно 1С на своём ПК | Диспетчер задач | Только ваш сеанс |
| Процессов несколько или нужен скрипт | taskkill | Все сеансы 1С на этом ПК |
| Пользователь работает на терминальном сервере | Завершение процесса или выход его RDP-сессии | Сеанс этого пользователя |
| Серверная база, один «застрявший» сеанс | Консоль кластера или rac | Только выбранный сеанс |
| Серверная база, нужно выгнать всех | Блокировка начала сеансов | Все сеансы базы с предупреждением |
| Сервер 1С не отвечает никому | Перезапуск службы агента | Все сеансы всех баз сервера |
Способ 1. Снять задачу 1С в Диспетчере задач
Подходит для файловой и серверной базы, если зависло окно на вашем компьютере.
- Нажмите
Ctrl+Shift+Esc. - Если окно маленькое — нажмите «Подробнее».
- Перейдите на вкладку «Подробности».
- Найдите процесс:
1cv8c.exe— тонкий клиент,1cv8.exe— толстый клиент или Конфигуратор. - Выделите его и нажмите «Снять задачу».
Если открыто несколько баз, процессов тоже несколько. Чтобы понять, какой из них ваш зависший, добавьте колонку «Командная строка»: щёлкните правой кнопкой по заголовку таблицы → «Выбрать столбцы». В командной строке видно путь к базе или имя сервера.
Процесс 1cv8s.exe (стартер) и 1cestart.exe (окно выбора базы) снимать обычно не нужно — они не держат данные.
Способ 2. Завершить процесс командой taskkill
Командная строка нужна, когда Диспетчер задач сам не открывается, процессов много или вы хотите сделать ярлык «аварийного выхода».
Запустите cmd от имени администратора и посмотрите, что запущено:
tasklist /FI "IMAGENAME eq 1cv8*"
Завершить все клиенты 1С на этом компьютере:
taskkill /IM 1cv8c.exe /F
taskkill /IM 1cv8.exe /F
Завершить конкретный процесс по номеру (PID берите из вывода tasklist):
taskkill /PID 12345 /F
Ключ /F означает «без запроса на закрытие». Без него Windows вежливо попросит программу закрыться, и зависшая 1С эту просьбу проигнорирует.
taskkill /IM 1cv8.exe /F на терминальном сервере снимет 1С у всех пользователей, а не только у вас. Там добавляйте фильтр по пользователю: taskkill /FI "USERNAME eq ivanov" /IM 1cv8c.exe /F.
Способ 3. Выключить 1С у удалённого пользователя
Когда пользователь работает через удалённый рабочий стол, его 1С живёт на терминальном сервере. Есть два варианта.
Через Диспетчер задач сервера
На терминальном сервере откройте Диспетчер задач → вкладка «Пользователи». Разверните нужного пользователя, найдите процесс 1С и снимите задачу. Остальные его программы останутся открыты.
Через сеанс Windows
Если зависло всё, а не только 1С, завершите сеанс пользователя целиком. В командной строке сервера:
query session
logoff 3
Где 3 — ID сеанса из первой команды. Пользователь потеряет все несохранённые файлы, не только 1С, поэтому сначала предупредите его.
Снять процесс на другом компьютере в сети можно и без захода на него, если у вас есть права администратора:
taskkill /S PC-BUH02 /IM 1cv8c.exe /F
Для файловой базы это единственный способ «выгнать» пользователя без его участия: у файлового варианта нет сервера, который знал бы обо всех сеансах.
Способ 4. Завершить сеанс в кластере серверов 1С
В клиент-серверной базе процесс на компьютере пользователя — только окно. Данные обрабатывает рабочий процесс сервера rphost.exe. Если снять клиент, сервер может ещё какое-то время держать «осиротевший» сеанс и его блокировки. Поэтому для серверной базы правильный путь — завершить сеанс на сервере.
Через консоль администрирования
- Откройте «Администрирование серверов 1С Предприятия».
- Разверните: сервер → «Кластеры» → ваш кластер → «Информационные базы» → нужная база → «Сеансы».
- Найдите сеанс по имени пользователя и компьютеру.
- Правой кнопкой → «Удалить».
Сервер прервёт сеанс и откатит его незавершённую транзакцию. Пользователь увидит сообщение о разрыве соединения.
Если консоль не открывается с ошибкой о незарегистрированной оснастке, зарегистрируйте radmin.dll из каталога bin той же версии платформы, что и сервер:
regsvr32 "C:\Program Files\1cv8\8.3.24.1586\bin\radmin.dll"
Номер версии в пути подставьте свой.
Через rac из командной строки
Утилита rac работает через службу ras, которую нужно предварительно запустить на сервере. Порядок команд:
rac cluster list
rac session list --cluster=<uuid кластера>
rac session terminate --cluster=<uuid кластера> --session=<uuid сеанса>
Если на кластере задан администратор, добавьте параметры --cluster-user и --cluster-pwd. Остальные ключи смотрите в справке rac help session.
Если зависший сеанс «воскресает» после удаления или удалить его не получается, посмотрите на рабочие процессы кластера: иногда виноват один rphost, который перестал отвечать. Его можно завершить, но вместе с ним оборвутся все сеансы, которые он обслуживал, — делайте это вне рабочего времени или после предупреждения.
Способ 5. Аварийно остановить службу сервера 1С
Последний вариант для клиент-серверной базы — перезапустить службу агента сервера. Это нужно, когда кластер не отвечает ни пользователям, ни консоли.
Остановка службы обрывает сеансы всех пользователей во всех базах этого сервера. Предупредите людей и дайте им пару минут сохранить документы.
- Нажмите
Win+R, введитеservices.msc. - Найдите службу «Агент сервера 1С:Предприятия 8.3» (в английской сборке —
1C:Enterprise 8.3 Server Agent, в названии есть разрядность). - Правой кнопкой → «Остановить». Подождите до 1–2 минут.
- Откройте Диспетчер задач и проверьте, что процессов
ragent.exe,rmngr.exeиrphost.exeне осталось. Если висят — снимите их. - Запустите службу снова.
Из командной строки то же самое делается через sc stop и sc start, но точное имя службы на разных серверах отличается. Узнайте его так:
sc query state= all | findstr /I "1C"
Если на сервере работает СУБД (PostgreSQL или MS SQL) — её службу не трогайте. Перезапуск СУБД без необходимости только добавит рисков.
Чем грозит принудительное выключение и как снизить риск
| Что может случиться | Где бывает | Что делать |
|---|---|---|
| Пропал несохранённый документ | Везде | Ввести заново, проверить нумерацию |
| Сеанс висит в списке активных | Серверная база | Удалить сеанс в консоли кластера |
| База не открывается, ошибка формата или чтения | Файловая база | Проверка утилитой chdbfl.exe или «Тестирование и исправление» |
| Не открывается после обрыва обновления | Обе | Восстановление из резервной копии |
| Битый кэш, странные ошибки интерфейса | Обе | Запуск с ключом /ClearCache |
Файловая база страдает чаще серверной. Файл 1Cv8.1CD пишется напрямую с компьютера пользователя, и если обрыв пришёлся на запись по сети, страницы файла могут остаться в несогласованном состоянии.
Что делать после аварийного выхода из файловой базы:
- Убедитесь, что все остальные пользователи вышли.
- Сделайте копию файла
1Cv8.1CD— просто скопируйте каталог базы. - Запустите
chdbfl.exeиз каталогаbinплатформы, укажите путь к файлу базы, сначала проверьте без исправления. - Если найдены ошибки — запустите исправление на копии, а не на оригинале.
Для серверной базы обычно хватает перезапуска клиента. Если появились ошибки при проведении — запустите в Конфигураторе Администрирование → Тестирование и исправление. Эта операция требует монопольного доступа, поэтому делайте её, когда в базе никого нет.
Чтобы последствия были минимальными:
- 💾 настройте ежедневную выгрузку
.dtили резервное копирование средствами СУБД; - 🗄 держите файловую базу на локальном диске сервера, а не на общей папке рабочей станции;
- 🔌 подключите сервер и хранилище к ИБП — выключение питания хуже любого
taskkill; - ⏳ запускайте тяжёлые обработки вечером, чтобы их не хотелось прервать посреди дня.
Как выгнать всех из базы без «убийства» процессов
Для плановых работ принудительное выключение не нужно. Есть штатный механизм, который предупреждает людей и закрывает их сеансы сам.
Блокировка начала сеансов в программе
В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) есть обработка «Блокировка работы пользователей». В БП 3.0 её ищите в разделе Администрирование → Обслуживание. В ней:
- задаёте время начала блокировки и текст сообщения;
- указываете код разрешения — с ним вы сами сможете зайти в заблокированную базу;
- включаете блокировку.
Пользователи получат предупреждение, а к назначенному времени их сеансы завершатся. Войти в базу с кодом разрешения можно, добавив в строку запуска параметр /UC с этим кодом.
Блокировка в консоли кластера
Для серверной базы то же самое можно сделать в свойствах информационной базы в консоли кластера: флажок «Блокировка начала сеансов включена», время, сообщение и код разрешения. Новые сеансы не откроются, а действующие останутся — их затем удаляют вручную.
Автозавершение неактивных сеансов
Чтобы реже сталкиваться с «забытыми» сеансами, в свойствах пользователя или в настройках конфигурации можно ограничить время бездействия — смотрите параметры безопасности в разделе Администрирование вашей конфигурации. Это снижает число ситуаций, когда кого-то приходится выкидывать перед обновлением.
Частые ошибки при аварийном завершении 1С
- ❌ Снимать процесс клиента в серверной базе и считать, что всё закончилось. Сеанс на сервере может остаться и держать лицензию и блокировки. Проверьте список сеансов в консоли.
- ❌ Перезагружать весь сервер ради одного пользователя. Это обрывает работу всем. Хватит удаления одного сеанса.
- ❌ Исправлять файловую базу без копии.
chdbfl.exeв режиме исправления может удалить повреждённые данные безвозвратно. - ❌ Прерывать «Тестирование и исправление», потому что «долго». На базе в десятки гигабайт оно идёт часами. Обрыв оставляет базу в худшем состоянии, чем до начала.
- ❌ Удалять каталоги кэша при запущенной 1С. Сначала закройте все клиенты, потом чистите кэш или запускайте с
/ClearCache.