1С перестала отвечать: от Ctrl+Break до консоли кластера

· 11 мин

Содержание

Если 1С зависла посреди отчёта или проведения, сначала нажмите Ctrl+Break: платформа прервёт выполняемую операцию и спросит, остановить ли её. Не помогло за минуту-две — нажмите Alt+Tab и поищите спрятанное окно с вопросом, и только потом завершайте процесс через диспетчер задач.

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

Первые 30 секунд: что нажать, когда 1С зависла

Окно с пометкой «Не отвечает» не всегда значит, что программа умерла. Часто 1С просто занята: строит тяжёлый отчёт, ждёт сервер или ждёт ответа в окне, которое вы не видите.

Порядок действий, от безопасного к жёсткому:

  1. Подождите 1–2 минуты. Закрытие месяца , пересчёт итогов, оборотно-сальдовая ведомость за год по всем субконто могут считаться долго. Ничего не нажимайте мышкой много раз подряд — клики накапливаются в очереди.
  2. Нажмите Ctrl+Break. Это штатное прерывание: 1С остановит выполнение кода и запрос к базе, покажет сообщение о прерывании. Работает и в тонком, и в толстом клиенте. На ноутбуках без отдельной клавиши Break она вызывается через Fn — сочетание смотрите в инструкции к модели.
  3. Нажмите Alt+Tab. Модальное окно «Вопрос» или «Предупреждение» иногда открывается позади главного окна. Программа ждёт ответа и выглядит зависшей. Переключитесь на него и ответьте.
  4. Нажмите Esc. Закрывает активный диалог, если он перехватил фокус.
  5. Откройте диспетчер задач (Ctrl+Shift+Esc) и посмотрите на процесс 1С. Об этом — в следующем разделе.

Если Ctrl+Break сработал, 1С сообщит о прерывании операции. Данные при этом не страдают: прерванная транзакция откатывается целиком.

Как понять: 1С думает или зависла насовсем

Посмотрите в диспетчере задач на колонку «ЦП» у процесса 1С:

Что видитеЧто это значитЧто делать
Нагрузка ЦП скачет, растёт памятьКлиент работает, считаетЖдать или Ctrl+Break
ЦП около 0, окно «Не отвечает»Клиент ждёт сервер, сеть или блокировкуПроверить сеть и блокировки (разделы ниже)
ЦП стабильно 100% одного ядра долго, Ctrl+Break не реагируетКлиент завис в циклеЗавершать процесс
Память процесса растёт до пределаУтечка или огромная выборкаЗавершать процесс, потом выяснять причину

Как завершить зависший процесс 1С и что при этом теряется

Если ни одно сочетание клавиш не помогло, процесс придётся снять.

Какой процесс снимать

В диспетчере задач на вкладке «Подробности» ищите:

  • 🖥️ 1cv8c.exe — тонкий клиент;
  • 🖥️ 1cv8.exe — толстый клиент и Конфигуратор;
  • 🌐 если вы работаете в веб-клиенте, зависла вкладка браузера, а не процесс 1С.

Если запущено несколько баз, сверьте заголовок окна на вкладке «Процессы»: снимайте именно зависшее окно, а не соседнюю базу коллеги на терминальном сервере.

Порядок: правой кнопкой по строке → «Снять задачу». На терминальном сервере снимайте процесс только своего пользователя — колонка «Имя пользователя» на вкладке «Подробности».

Что потеряется, а что нет

ДанныеСудьба после снятия процесса
Записанные и проведённые документыСохранены
Документ, открытый и не записанныйИзменения потеряны
Транзакция, которая выполнялась в момент зависания (проведение, групповая обработка)Откатится целиком — половины проведения не будет
Обработка, которая писала данные порциями без общей транзакцииЧасть записей останется, часть нет
Настройки отчётов и форм за сеансМогут не сохраниться

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

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

Клиент-серверный вариант: сеанс живёт дольше клиента

В клиент-серверной 1С снятие 1cv8c.exe закрывает только окно у вас. На сервере сеанс может продолжать выполнять тяжёлый запрос, держать блокировки и лицензию. Через некоторое время сервер сам заметит обрыв связи, но ждать этого не всегда удобно.

Администратор завершает такой сеанс вручную:

  1. Открыть «Администрирование серверов 1С Предприятия» (консоль кластера).
  2. Раскрыть кластер → Информационные базы → нужная база → Сеансы.
  3. Найти сеанс по имени пользователя и компьютеру, правой кнопкой → «Удалить».

Из командной строки то же делает утилита rac: список сеансов — rac session list --cluster=<id>, параметры удаления смотрите в rac help session.

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

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

Фоновые задания и блокировки: когда «висит» не у вас

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

Признаки конфликта блокировок

Если подождать, 1С часто сама выдаёт текст ошибки:

  • Конфликт блокировок при выполнении транзакции: Превышено максимальное время ожидания предоставления блокировки
  • Ошибка блокировки объекта. Объект уже заблокирован
  • Обнаружена взаимоблокировка (deadlock)

Такие ошибки говорят: кто-то параллельно меняет те же остатки, тот же документ или те же регистры. Чаще всего это закрытие месяца, перепроведение, обмен с другой базой или загрузка выписок.

Где посмотреть фоновые задания

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание и найдите раздел о регламентных и фоновых операциях. В части релизов раздел называется «Поддержка и обслуживание».

Там видно, какие задания сейчас выполняются: обмен данными, обновление полнотекстового индекса, загрузка курсов валют, обработка после обновления. Если задание висит «Выполняется» часами — его можно отменить в этом же списке.

Кто сейчас работает в базе, показывает список «Активные пользователи» (ссылка в том же разделе). В клиент-серверном варианте точнее картину даёт консоль кластера: у базы есть ветки Сеансы и Блокировки, где видно, какой сеанс держит блокировку.

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

Очистка кэша и проверка базы

Если 1С зависает при запуске, на одной и той же форме или после обновления платформы, первым делом чистят кэш клиента. Это безопасно: удаляются только временные файлы, данные базы не трогаются.

Очистка кэша клиента

Самый простой способ — параметр запуска:

  1. В окне выбора баз выделите базу → «Изменить».
  2. Пройдите до последней страницы, в поле «Дополнительные параметры запуска» впишите /ClearCache.
  3. Запустите базу один раз, потом параметр удалите.

Ручной способ — закрыть все окна 1С и удалить папки с длинными именами из каталогов кэша:

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

Удалять нужно только папки вида a1b2c3d4-... (идентификаторы баз). Файлы ibases.v8i и 1cestart.cfg не трогайте: в них список баз.

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

Тестирование и исправление информационной базы

Если зависания начались после аварийного снятия процесса или выключения света, проверьте базу.

Перед этим обязательно сделайте копию базы (Конфигуратор → Администрирование → Выгрузить информационную базу или копию файла 1Cv8.1CD для файловой базы). Исправление меняет данные и необратимо.

Варианты:

  • 🔧 Через Конфигуратор: Администрирование → Тестирование и исправление. Нужен монопольный доступ — все пользователи должны выйти. Для начала отметьте только «Проверка логической целостности» и «Проверка ссылочной целостности» в режиме «Тестирование без исправления».
  • 🔧 Утилита chdbfl.exe — только для файловой базы. Лежит в папке bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\. Проверяет физическую целостность файла 1Cv8.1CD. База при этом должна быть закрыта всеми.

Для клиент-серверной базы физическую целостность проверяют средствами СУБД (у MS SQL — DBCC CHECKDB), это задача администратора СУБД.

Сеть, диск и права доступа: внешние причины зависаний

Если 1С зависает «на ровном месте», с нулевой нагрузкой процессора, клиент чаще всего чего-то ждёт: ответа от сетевой папки, сервера или диска.

Файловая база в сетевой папке

  • 📶 Нестабильная сеть или Wi-Fi. Файловая база по Wi-Fi работает плохо: любой обрыв — зависание, иногда повреждение файла.
  • 🛡️ Антивирус на компьютере, где лежит база, проверяет 1Cv8.1CD на каждое обращение. Добавьте папку с базой в исключения антивируса.
  • 🔐 Права. Пользователю Windows нужны права на чтение и запись в папку с базой, а не только на файл. Без записи 1С не может создать служебные файлы и ведёт себя непредсказуемо.
  • 💾 Мало места на диске, где лежит база или временная папка пользователя (%TEMP%).

Клиент-серверная база

Клиент соединяется с агентом сервера по порту 1540, затем с менеджером кластера (1541) и рабочими процессами — их диапазон портов задаётся в свойствах рабочего сервера, по умолчанию 1560:1591. Если межсетевой экран режет часть диапазона, подключение может «висеть» до таймаута.

Быстрая проверка с компьютера пользователя в PowerShell:

Test-NetConnection srv1c -Port 1540
Test-NetConnection srv1c -Port 1541

Если TcpTestSucceeded равно False, вопрос к сети или межсетевому экрану, а не к 1С.

Терминальный сервер

На терминальном сервере зависание одного сеанса часто вызвано нехваткой памяти на всём сервере. Откройте диспетчер задач на вкладке «Пользователи» и посмотрите, сколько памяти занимают процессы 1cv8c.exe. Один пользователь с отчётом на миллион строк может забрать несколько гигабайт.

Журнал регистрации и технологический журнал: где искать причину

Снять процесс — значит убрать симптом. Чтобы зависание не повторилось, нужно понять, что делала 1С в момент сбоя.

Журнал регистрации

Открывается в пользовательском режиме через Администрирование → Обслуживание или из Конфигуратора: Администрирование → Журнал регистрации.

Что искать:

  1. Отбор по пользователю и интервалу времени зависания.
  2. События с уровнем «Ошибка» и события Сеанс. Завершение — так видно аварийно завершённые сеансы.
  3. Последние записи перед зависанием: какой документ записывали, какую обработку запускали.

Если журнал регистрации разросся до десятков гигабайт, он сам может тормозить базу. В Конфигураторе через Администрирование → Настройка журнала регистрации можно сократить его, предварительно сохранив старые записи в файл.

Технологический журнал

Для повторяющихся зависаний на сервере администратор включает технологический журнал. Настройка — файл logcfg.xml в каталоге conf платформы (или в общем каталоге настроек 1С). В нём задают, какие события писать: например, TLOCK и TTIMEOUT для блокировок, TDEADLOCK для взаимоблокировок, EXCP для исключений.

Пример минимальной настройки для поиска таймаутов блокировок:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1c_techlog" history="24">
    <event>
      <eq property="name" value="TTIMEOUT"/>
    </event>
    <event>
      <eq property="name" value="TDEADLOCK"/>
    </event>
    <property name="all"/>
  </log>
</config>

Технологический журнал без отборов быстро заполняет диск. Включайте его на время диагностики, задавайте history (часы хранения) и удаляйте файл настройки после разбора.

Журнал Windows

Если процесс 1С закрывается сам или «падает» вместо зависания, загляните в «Просмотр событий» → «Журналы Windows» → «Приложение». Записи об ошибке приложения с именем 1cv8c.exe или rphost.exe подскажут модуль, на котором произошёл сбой — часто это драйвер принтера, антивирус или внешняя компонента.

Как сделать, чтобы 1С зависала реже

Профилактика дешевле аварийного снятия процессов.

Для пользователя:

  • 📅 Формируйте тяжёлые отчёты за нужный период, а не «с начала времён». Оборотно-сальдовая ведомость по счёту 41 с развёрнутыми субконто за три года — частая причина «висящей» 1С.
  • 💾 Записывайте документ (Ctrl+S) перед долгими действиями: печатью пачки форм, заполнением табличной части по остаткам.
  • 🚫 Не запускайте перепроведение и закрытие месяца, когда коллеги активно проводят документы.

Для администратора:

  • 🔄 Обновляйте платформу до актуального номера, рекомендованного для вашего релиза конфигурации. Многие зависания — исправленные ошибки платформы.
  • 🕓 Разнесите регламентные задания по времени: обмены, полнотекстовый индекс, резервное копирование — ночью и не одновременно.
  • 🛡️ Исключения антивируса: папки баз, каталоги кэша пользователей, каталог сервера 1С с данными кластера.
  • 💿 Файловую базу держите на SSD. При 5–10 одновременных пользователях и росте базы задумайтесь о переходе на клиент-серверный вариант.
  • 🧹 Регулярно проверяйте размер журнала регистрации и свободное место на дисках.
  • 🧪 Раз в квартал делайте тестирование базы в режиме «без исправления» на копии.
После аварийного снятия процесса 1С
Выполнено: 0 / 6

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

Можно ли выключить компьютер, если 1С зависла?
Можно, если не помогли Ctrl+Break и снятие задачи. Но для файловой базы, которая открыта на этом компьютере, жёсткое выключение опаснее снятия процесса: прерывается запись на диск.
Зависла 1С в веб-клиенте — что делать?
Закройте вкладку браузера и откройте базу заново. Сеанс на сервере завершится по таймауту или его удалит администратор в консоли кластера.
Почему после снятия процесса пишет, что превышено число лицензий?
Старый сеанс ещё не завершился на сервере и держит лицензию. Подождите несколько минут или попросите администратора удалить зависший сеанс.
Зависает только Конфигуратор при сохранении — это то же самое?
Обновление конфигурации базы данных на большой базе идёт долго, и окно может не отвечать минуты и десятки минут. Снимать процесс в этот момент не стоит: дождитесь окончания, а перед такими обновлениями всегда делайте копию базы.
Влияет ли количество открытых окон на зависания?
Да, каждое открытое окно с динамическим списком обновляет данные. Двадцать открытых журналов документов заметно нагружают клиент и сервер.