1С зависла и не отвечает: как её закрыть и не потерять базу

· 13 мин

Содержание

Если 1С зависла и всё перестало отвечать, принудительно закрыть её можно за десять секунд: Ctrl + Shift + Esc → вкладка Подробности → процесс 1cv8.exe (или 1cv8c.exe у тонкого клиента ) → кнопка Снять задачу. Данные уже проведённых документов при этом не пострадают — потеряется только то, что вы набрали в открытой форме и не записали.

Но торопиться с «убийством» процесса стоит не всегда. В половине случаев программа не зависла, а ждёт ответа сервера или считает тяжёлый отчёт — и через минуту-две отойдёт сама. Ещё важнее то, что происходит после: в файловой базе остаются служебные файлы блокировок, в клиент-серверной — «мёртвый» сеанс, который мешает зайти заново.

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

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

Главный признак настоящего зависания — процесс не грузит ни процессор, ни диск, а окно побелело и Windows подписала его «Не отвечает».

Откройте диспетчер задач (Ctrl + Shift + Esc), вкладка Подробности, и посмотрите на строку с 1cv8.exe:

Что видно в диспетчереЧто происходит на самом делеЧто делать
ЦП 0 %, диск 0, статус «Не отвечает»Клиент действительно повисМожно снимать задачу
ЦП 12–25 %, память растётПрограмма считает (отчёт, закрытие месяца)Подождать 5–15 минут
ЦП 0 %, но сеть активнаКлиент ждёт ответа сервера 1С или СУБДСмотреть сервер, не клиент
Память упёрлась в 3,8–4 ГБ32-разрядный клиент исчерпал адресное пространствоСнять задачу, перейти на 64-бит

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

Второй источник правды — журнал регистрации. Зайти в него можно и из другого сеанса: Администрирование → Обслуживание → Журнал регистрации в Бухгалтерии 3.0 и ЗУП 3.1, или из конфигуратора Администрирование → Журнал регистрации. Если последняя запись по вашему пользователю — старт длительной операции, значит идёт работа, а не ступор.

Диагностика: выберите симптом

Что проверить до того, как закрывать программу насильно

Тридцать секунд подготовки экономят час восстановления.

  1. 🔍 Посмотрите, не идёт ли у вас долгая регламентная операция: закрытие месяца, расчёт зарплаты, расчёт себестоимости, групповое перепроведение.
  2. 👥 Уточните у коллег, зависло ли у них. Массовое зависание = сервер, индивидуальное = клиент.
  3. 📋 Зафиксируйте, какой документ был открыт и что вы успели ввести — после перезапуска придётся восстанавливать вручную.
  4. 💾 Если есть второй рабочий сеанс (другой компьютер, браузер) — убедитесь, что база в принципе отвечает.
  5. 🗂 Для файловой базы проверьте, где она лежит и есть ли свежая резервная копия.

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

Способ 1. Мягкая отмена: Ctrl + Break и отказ от операции

Прежде чем снимать задачу, нажмите в окне 1С Ctrl + Break. Платформа пытается прервать текущее действие корректно: откатить транзакцию, закрыть форму, вернуть управление пользователю.

Срабатывает не всегда, но когда срабатывает — вы остаётесь в сеансе, база целая, никаких блокировок не висит. Держите клавиши 2–3 секунды и подождите полминуты.

Если открыт конфигуратор и повис отладчик, там же помогает Отладка → Остановить или Shift + F5.

В длительных операциях современных конфигураций (закрытие месяца в Бухгалтерии 3.0, заполнение документов в ЗУП 3.1) есть собственная кнопка Отмена или Прервать. Она останавливает фоновое задание на сервере — именно это и нужно, если расчёт ушёл в бесконечный цикл.

Способ 2. Снять задачу 1cv8 через диспетчер задач

Классика и самый частый сценарий. Если всё зависло наглухо, порядок такой:

  1. Нажмите Ctrl + Shift + Esc. Если диспетчер не открывается — Ctrl + Alt + Del → Диспетчер задач.
  2. Перейдите на вкладку Подробности (в Windows 11 — Подробности внутри «Процессы»).
  3. Отсортируйте по имени и найдите нужный процесс:
    • 1cv8.exe — толстый клиент и конфигуратор;
    • 1cv8c.exe — тонкий клиент;
    • 1cv8s.exe — веб-сервер расширения;
    • ragent.exe, rmngr.exe, rphost.exe — это сервер 1С, их трогать нельзя.
  4. Выделите строку клиента → Снять задачу → подтвердите.
  5. Если процессов 1cv8.exe несколько, ориентируйтесь по столбцу Память и Состояние: зависший обычно самый «тяжёлый» и помечен «Не отвечает».

Добавьте в диспетчере столбец Командная строка (правый клик по заголовку таблицы). В нём видно, к какой именно базе подключён процесс — незаменимо, когда открыто три сеанса разных баз.

После закрытия подождите 10–15 секунд, пока процесс исчезнет из списка. Запуск 1С сразу же, «по горячему», часто и даёт второе зависание.

Способ 3. Командная строка: taskkill закрывает 1С жёстче

Когда интерфейс диспетчера сам еле ворочается, быстрее работает командная строка. Откройте cmd от имени администратора.

Посмотреть все клиентские процессы 1С и их PID:

tasklist | findstr 1cv8

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

taskkill /IM 1cv8.exe /F
taskkill /IM 1cv8c.exe /F

Закрыть один конкретный процесс по номеру (PID из предыдущей команды):

taskkill /PID 7412 /F

Ключ /F означает принудительное завершение без запроса. Без него Windows вежливо попросит процесс закрыться, а зависшая 1С эту просьбу не услышит.

На терминальном сервере удобно убить процессы только своего сеанса, не мешая коллегам:

query session
taskkill /F /FI "SESSION eq 4" /IM 1cv8c.exe

Команда taskkill /IM 1cv8.exe /F на сервере приложений снимет клиентов у всех, кто работает через mstsc. Фильтруйте по сеансу или по PID.

Способ 4. Если 1С не закрывается через диспетчер задач

Бывает, что задачу сняли, а процесс висит в списке и память не освобождается. Значит, поток застрял в системном вызове — чаще всего на сетевом диске с файловой базой или на зависшем драйвере ключа защиты.

Эскалация по шагам:

Пошаговый помощник
Шаг 1. PowerShell с принудительным завершением
Откройте PowerShell от администратора и выполните Get-Process 1cv8*, затем Stop-Process -Name 1cv8 -Force. PowerShell работает на уровень ниже диспетчера задач и закрывает часть «неубиваемых» процессов.

На машине с сетевой файловой базой помогает ещё одна проверка: отвалился ли сам сетевой ресурс. Если \\server\baza не открывается в проводнике, процесс 1С будет висеть до таймаута SMB, и никакой taskkill его раньше не отпустит.

Способ 5. Отключить сеанс на сервере 1С, а не убивать клиента

В клиент-серверном варианте (ERP, УТ 11, крупные базы Бухгалтерии) зависание клиента почти всегда следствие, а не причина. Настоящий виновник — долгий серверный вызов или взаимная блокировка в СУБД.

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

  1. Запустите Администрирование серверов 1С Предприятия.
  2. Раскройте Central 1C:Enterprise 60 servers → <ваш сервер> → Кластеры → Локальный кластер.
  3. Откройте узел Сеансы, найдите строку по имени пользователя и компьютеру.
  4. Посмотрите столбцы Длительность вызова и Захваченная СУБД — так видно, кто именно висит.
  5. Правый клик → Удалить. Сеанс завершается на сервере, клиент отваливается сам.
  6. Если сеанс не удаляется, откройте Соединения и удалите соответствующее соединение.

Через утилиту rac

Когда консоли под рукой нет, работает командная строка из каталога bin платформы:

rac cluster list
rac session list --cluster=<uuid-кластера>
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>

Через саму 1С, без админских утилит

В конфигурациях на «Библиотеке стандартных подсистем» есть встроенный механизм: Администрирование → Обслуживание → Активные пользователи, выделить строку и нажать Завершить сеанс. Нужны права администратора и клиент-серверная база — в файловой кнопка недоступна.

Процесс rphost.exe снимать можно только осознанно. Его завершение обрывает сеансы всех пользователей, которых обслуживал этот рабочий процесс, и откатывает их транзакции.

Файловая и серверная база: чем различается аварийное закрытие

ПараметрФайловая базаКлиент-серверная
Что убиваем1cv8.exe на рабочем местесеанс в консоли кластера
Риск повреждения данныхсредний: пишет сам клиентнизкий: пишет СУБД с журналом транзакций
Что остаётся после сбояфайлы *.cdn, *.lck в каталоге базы«мёртвый» сеанс, лицензия занята
Чем лечимchdbfl.exe, тестирование и исправлениеудаление сеанса, перезапуск rphost
Сколько ждать до самоочисткиблокировка снимается сразу после выходасеанс отваливается по таймауту, до 20 минут

Главный вывод: в файловой базе принудительное закрытие опаснее в разы, потому что запись в 1Cv8.1CD идёт напрямую с клиента, без журнала транзакций СУБД.

После принудительного закрытия: обязательная проверка

Не запускайте 1С сразу и не продолжайте работу, пока не пройдёте короткий чек-лист. Особенно если зависание случилось во время проведения документов или закрытия месяца.

Что сделать после аварийного закрытия 1С
Выполнено: 0 / 9

Снять оставшиеся блокировки файловой базы

Зайдите в каталог базы. После аварийного выхода там могут остаться служебные файлы блокировок — 1Cv8.cdn, файлы с расширением .lck, иногда временный 1Cv8Log. Удалять их можно только когда в базе точно никого нет, иначе вы получите два сеанса, которые одновременно пишут в одну базу.

Ошибка на входе выглядит так: Файл базы данных используется другой программой или Ошибка СУБД: Файл базы данных поврежден.

Проверить физическую целостность

Для файловой базы запустите chdbfl.exe из каталога платформы, например C:\Program Files\1cv8\8.3.27.1486\bin\chdbfl.exe. Укажите путь к 1Cv8.1CD, поставьте галочку Исправлять обнаруженные ошибки и запустите проверку. Перед этим — копия файла базы, без вариантов.

Дальше — логическая проверка в конфигураторе: Администрирование → Тестирование и исправление. На первый прогон достаточно Проверка логической целостности и Реиндексация таблиц, режим Тестирование и исправление.

Очистить кеш

Повторяющиеся зависания после аварийного закрытия почти всегда лечит сброс кеша метаданных. Закройте все сеансы и удалите подкаталоги с длинными GUID-именами:

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

Либо запустите клиент с ключом в свойствах ярлыка:

"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache

Что теряется в разных конфигурациях

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

Бухгалтерия 3.0. Обрыв во время Операции → Закрытие месяца оставляет часть регламентных операций проведёнными, часть — нет. Лечится повторным запуском закрытия месяца; сначала проверьте отчёт Оборотно-сальдовая ведомость и Анализ состояния налогового учёта.

ЗУП 3.1. Самое неприятное — обрыв на документе Начисление зарплаты и взносов. Документ может сохраниться частично заполненным. Безопаснее его удалить и заполнить заново, а не «досчитывать» вручную. Проверка — Зарплата → Отчёты по зарплате → Анализ начислений и удержаний.

УТ 11. Расчёт себестоимости и закрытие месяца идут фоновыми заданиями на сервере. Убитый клиент их не останавливает, расчёт продолжится. Проверяйте Отчёты → Валовая прибыль и Ведомость по товарам на складах.

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

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

Типичные ошибки

🚫 Снимают процесс rphost.exe вместо клиентского. Отваливаются все пользователи сервера, а зависший сеанс как был, так и остался.

🚫 Выключают компьютер кнопкой питания. Самая частая причина фразы Файл базы данных поврежден и недельного восстановления из старой копии.

🚫 Удаляют файл 1Cv8.cdn при работающих пользователях. Два сеанса начинают писать в базу параллельно, итог — битые индексы.

🚫 Запускают 1С повторно через две секунды после снятия задачи. Процесс ещё не освободил файлы, получают ошибку доступа или новое зависание.

🚫 Не делают копию перед chdbfl.exe и тестированием. Исправление с потерей объектов необратимо: платформа честно предупреждает, но галочку ставят не читая.

🚫 Путают зависание с длинным расчётом. Убивают закрытие месяца на 40-й минуте и запускают заново — так можно по кругу ходить весь день.

🚫 Игнорируют журнал регистрации. Причина (нехватка памяти, таймаут блокировки, обрыв сети) там обычно написана прямым текстом.

🚫 Оставляют 32-разрядный сервер и клиент на тяжёлой базе. Упор в 4 ГБ выглядит именно как зависание и повторяется каждый день.

Как снизить число зависаний

  • 🔁 Регулярное обслуживание: тестирование и исправление файловой базы раз в месяц, реиндексация и обновление статистики в СУБД — по расписанию.
  • 📦 Файловую базу держать локально, а не на сетевой папке. Сетевая файловая база — главный генератор «вечных» процессов 1cv8.exe.
  • 💽 Перевод базы объёмом свыше 4–6 ГБ в клиент-серверный режим. Это снимает и проблему блокировок, и проблему памяти клиента.
  • 🧠 64-разрядные версии клиента и сервера, если на базе работают тяжёлые отчёты.
  • ⏰ Долгие операции (закрытие месяца, перепроведение, расчёт себестоимости) — в нерабочее время через регламентные задания.
  • 🔒 Таймаут блокировок и «Блокировка работы пользователей» перед обновлением — чтобы не ловить взаимоблокировки на ровном месте.
  • 💾 Автоматическая резервная копия ежедневно. Это не защита от зависаний, но именно она превращает аварию в неприятность вместо катастрофы.
Как часто у вас зависает 1С?

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

Как принудительно закрыть 1С, если всё зависло и диспетчер задач не открывается?
Нажмите Ctrl + Alt + Del и выберите «Диспетчер задач» из синего экрана выбора действий — он открывается даже при зависшем проводнике. Не помогло — Win + R, команда cmd, затем taskkill /IM 1cv8.exe /F. Последний вариант — выход из сеанса Windows.
Потеряются ли данные, если снять задачу 1cv8?
Проведённые и записанные документы останутся в базе. Потеряется только то, что было введено в открытой форме без записи, и откатится незавершённая транзакция. В файловой базе есть дополнительный риск повреждения служебных файлов — поэтому после аварийного выхода делают проверку.
Почему после аварийного закрытия 1С не пускает в базу?
Чаще всего остался активный сеанс (Превышено максимальное количество сеансов) или файл блокировки в каталоге файловой базы. Удалите сеанс в консоли кластера либо дождитесь таймаута до 20 минут; для файловой базы уберите *.cdn и *.lck, когда в базе никого нет.
Сколько ждать, прежде чем закрывать 1С насильно?
Ориентир: обычная форма или отчёт — 2–3 минуты, закрытие месяца и расчёт зарплаты — от 20 минут до нескольких часов. Если процесс грузит процессор или диск, он работает, а не висит.
Можно ли убить процесс сервера 1С, если зависли все пользователи?
Сначала удалите проблемный сеанс в консоли кластера. Перезапуск rphost.exe — следующий шаг, он обрывает всех пользователей этого рабочего процесса. Полный перезапуск службы сервера — крайняя мера и только по согласованию.
Что делать, если 1С зависает каждый день на одном и том же отчёте?
Это не случайное зависание, а конкретная проблема: тяжёлый запрос, повреждённый кеш или настройки формы. Очистите кеш, запустите с /ClearCache, сбросьте настройки отчёта, а при повторении — смотрите длительность вызова и блокировки СУБД в консоли кластера.