Зависла 1С: как снять задачу и не потерять данные
Содержание
Сначала попробуйте мягкие способы: подождать пару минут, нажать Ctrl+Break, закрыть окно через Alt+F4. Не помогло, а окно «Не отвечает» — снимайте процесс 1cv8.exe в диспетчере задач (Ctrl+Shift+Esc). В клиент-серверной базе зависший сеанс завершают в консоли кластера серверов, а не на компьютере пользователя.
Чем жёстче способ, тем выше риск потерять несохранённые данные и повредить базу. Поэтому идите по лестнице: от безопасного к радикальному.
Если у пользователя была открыта длинная операция записи (проведение пачки документов, закрытие месяца), принудительное снятие может оставить документы непроведёнными. Сначала убедитесь, что это действительно зависание, а не тяжёлая операция.
Зависла или просто думает: быстрая диагностика
Прежде чем убивать процесс, определите, что происходит. 1С часто «белеет» на 1–3 минуты при честной работе: закрытие периода , обновление итогов, запрос по большому регистру.
Признаки того, что процесс жив:
- 🟢 в диспетчере задач
1cv8.exeгрузит процессор или диск (хотя бы 5–10% и меняется); - 🟢 растёт потребление памяти процессом;
- 🟢 на сервере в консоли кластера у сеанса растёт «Вызовов» и «Время вызова»;
- 🟢 курсор — песочные часы, но окно перерисовывается при перетаскивании.
Признаки настоящего зависания:
- 🔴 окно «Не отвечает», загрузка процесса 0% уже несколько минут;
- 🔴 в клиент-серверной базе «Текущий вызов» один и тот же 10+ минут при нулевой нагрузке;
- 🔴 сеанс висит в списке, хотя пользователь давно закрыл программу.
Ctrl+Break, потом Alt+F4. Не помогло — снимите процесс 1cv8.exe в диспетчере задач на этом компьютере.Снять задачу в 1С комбинацией клавиш
Универсальной «горячей клавиши, убивающей 1С», нет. Но есть три сочетания, которые работают по нарастающей.
| Сочетание | Что делает | Когда |
|---|---|---|
Ctrl+Break | Прерывает выполняющийся серверный или клиентский код 1С | Долгий отчёт, обработка, цикл |
Alt+F4 | Просит окно закрыться | Окно подаёт признаки жизни |
Ctrl+Shift+Esc | Открывает диспетчер задач Windows | Окно «Не отвечает» |
Порядок такой:
- Нажмите
Ctrl+Breakи подождите 30–60 секунд. Платформа покажет вопрос о прерывании или сама вернёт управление. - Если реакции нет, нажмите
Alt+F4на зависшем окне. - Если оно не закрылось, откройте диспетчер задач через
Ctrl+Shift+Esc.
Клавиша Break на ноутбуках часто спрятана под Fn: попробуйте Fn+Pause или Ctrl+Fn+B. Сочетание зависит от модели.
Как в 1С снять задачу в файловой базе
Файловая база не имеет сервера. Клиентский процесс 1cv8.exe (или 1cv8c.exe для тонкого клиента
) сам читает и пишет файлы базы. Зависание — это проблема конкретного компьютера или блокировки файла.
Через диспетчер задач
Ctrl+Shift+Esc→ вкладка «Процессы» или «Подробности».- Найдите
1cv8.exe. Если открыто несколько баз, процессов будет несколько. Ориентируйтесь на время запуска и потребление памяти. - Правая кнопка → «Снять задачу» (в «Подробностях» — «Завершить дерево процессов»).
Через командную строку
Подходит, если диспетчер сам тормозит или нужно снять процесс удалённо.
tasklist /fi "imagename eq 1cv8.exe"
taskkill /pid 4812 /f
Снять все клиенты 1С на машине сразу (осторожно, закроются все базы):
taskkill /im 1cv8.exe /f
taskkill /im 1cv8c.exe /f
Для удалённой машины добавьте ключи /s имя_компьютера /u пользователь. На терминальном сервере сначала посмотрите, чей процесс: tasklist /v покажет владельца в столбце «Имя пользователя».
Если мешает файл блокировки
После аварийного закрытия в каталоге базы может остаться служебный файл 1Cv8.cdn, и база считается занятой. Сначала убедитесь, что на всех машинах процессов 1cv8.exe с этой базой нет. Только потом удаляйте файл блокировки.
Перед любыми действиями с каталогом базы сделайте копию папки целиком. Файл 1CD ни в коем случае не редактируйте и не «чистите» руками.
Завершить сеанс в клиент-серверной базе
На сервере пользовательский клиент — лишь окно. Настоящая работа идёт в процессе rphost. Если снять 1cv8.exe на компьютере, сеанс на сервере может висеть ещё до таймаута. Поэтому правильный путь — завершить сеанс на стороне кластера.
Консоль администрирования серверов
- Откройте оснастку «Администрирование серверов 1С:Предприятия».
- Раскройте «Центральные серверы» → нужный кластер → «Информационные базы».
- Выберите базу и откройте «Сеансы».
- Найдите сеанс по пользователю и времени последней активности.
- Правая кнопка → «Удалить» (в разных версиях консоли пункт называется по-разному, ищите завершение сеанса).
Столбцы, которые помогают понять, кого завершать:
- 👤 «Пользователь» и «Компьютер» — чей сеанс;
- ⏱ «Время последней активности» — давно ли что-то делал;
- 🔧 «Текущий вызов» — что выполняет прямо сейчас;
- 📊 «Вызовов всего» и «Время вызовов» — активность за всё время сеанса.
Если нужно сначала разобраться со всеми соединениями (сервис, регламентные задания), загляните в список «Соединения» того же узла.
Из самой базы
Если вы ещё можете войти, откройте список активных пользователей: в Конфигураторе Администрирование → Активные пользователи, в обычном режиме — через «Все функции» и поиск по слову «Активные» (путь зависит от конфигурации). Выберите зависший сеанс и завершите его.
Через утилиту rac
Когда консоль недоступна или нужно автоматизировать, используйте командную утилиту rac из каталога платформы.
rac cluster list
rac session list --cluster=<идентификатор_кластера>
rac session terminate --cluster=<идентификатор_кластера> --session=<идентификатор_сеанса>
Идентификаторы в выводе — длинные GUID. Копируйте их полностью.
Если сервер зависает целиком
Бывает, что один «тяжёлый» вызов блокирует остальных. Тогда в консоли проверьте, не висит ли блокировка у другого сеанса, и сравните с блокировками в СУБД. Перезапускать службу агента сервера нужно только в крайнем случае, и только после предупреждения всех пользователей. Рабочие процессы rphost перезапустит сам кластер, а ragent и rmngr без нужды не трогайте.
На Linux аналог диспетчера задач — kill. Сначала мягкий сигнал, потом жёсткий:
ps aux | grep rphost
kill 12345
kill -9 12345
Если файловая база повреждена: утилита chdbfl
Иногда причина зависания — не процесс, а сама база: оборвалась запись, отключилось питание, база на сетевой папке потеряла связь. После снятия задачи 1С не открывается или снова виснет на старте. Для файлового варианта есть проверка chdbfl.exe в каталоге bin установленной платформы.
Порядок действий:
- Убедитесь, что к базе никто не подключён.
- Скопируйте файл
1Cv8.1CDв безопасное место. - Запустите
chdbfl.exe, укажите файл базы. - Сначала запустите проверку без галочки исправления и посмотрите отчёт.
- Если ошибки найдены, повторите с флагом исправления.
- Откройте базу и проверьте ключевые документы и остатки.
Более надёжный путь — выгрузка/загрузка базы через Конфигуратор
(Администрирование → Выгрузить информационную базу) и тестирование и исправление (Администрирование → Тестирование и исправление).
chdbfl не лечит клиент-серверные базы. Там структуру проверяют средствами СУБД и тестированием и исправлением через Конфигуратор.
Что искать в журналах, когда зависания повторяются
Одно зависание — случайность. Если оно приходит каждый день, ищите причину в логах.
Журнал регистрации
Открывается из Конфигуратора (Администрирование → Журнал регистрации) или из пользовательского режима. Что смотреть:
- события «Ошибка» и «Предупреждение» за 5–10 минут до зависания;
- события блокировок и тайм-аутов;
- какой пользователь и какое приложение выполнялось (фоновое задание, клиент, веб-сервис).
Отбор по времени и уровню значительно сокращает список.
Технологический журнал
Он нужен, если журнал регистрации молчит. Настраивается файлом logcfg.xml в каталоге conf платформы. Для поиска зависаний обычно включают сбор событий с длительностью, например CALL, SDBL, DBMSSQL, TLOCK, TTIMEOUT, DEADLOCK. Ограничивайте сбор по длительности и времени хранения. Иначе журнал за день займёт десятки гигабайт и сам нагрузит диск.
Типичные находки:
| Событие | Что показывает |
|---|---|
TLOCK, TTIMEOUT, TDEADLOCK | Конфликт управляемых блокировок |
DBMSSQL с большой длительностью | Медленный запрос к СУБД |
CALL с большой длительностью | Тяжёлый серверный вызов |
EXCP | Исключения платформы |
Почему 1С зависает: частые причины
/ClearCache.EXCEL.EXE и повторите.1CD. Исключите каталог базы из проверки и проверьте стабильность связи.Профилактика: как реже снимать задачи
Большая часть зависаний лечится регулярной профилактикой. Не нужно делать всё сразу, начните с первых трёх пунктов.
Что стоит добавить к чек-листу:
- 🛠 для файловой базы 20+ пользователей пора переходить на клиент-сервер;
- 🗄 для сервера: достаточно оперативной памяти, диски на SSD,
tempdbи журнал транзакций на быстрых носителях; - 🔁 для долгих процессов: выносите в фоновые задания и запускайте ночью;
- 🧹 периодически чистите кэш клиента и временные файлы.
Что делать, если не помогло
Если задача снята, а проблема возвращается, идите дальше по цепочке.
- Запустите базу под другим пользователем и на другом компьютере. Так вы поймёте, дело в клиенте или в базе.
- Запустите с параметром
/ClearCache, затем пересоздайте список баз в стартовом окне. - Выполните тестирование и исправление информационной базы (без реструктуризации сначала).
- Сравните версию платформы на клиенте и на сервере: расхождение даёт странные зависания.
- Обратитесь к специалисту по обслуживанию с логами: журнал регистрации и технологический журнал за период сбоя.
Ctrl+Break. Если окно ожило, зависания не было.Alt+F4, затем при необходимости «Снять задачу» в диспетчере.chdbfl.Частые вопросы
Потеряю ли я данные, если сниму задачу 1С?
Можно ли снять задачу у другого пользователя, не заходя к нему?
rac. В файловой можно удалённо снять процесс командой taskkill с ключом /s.