Программа 1С перестала отвечать: от ожидания до снятия процесса и сеанса
Содержание
Если завис 1С, сначала подождите 5–10 минут и посмотрите в диспетчере задач, грузит ли процесс 1cv8c.exe или 1cv8.exe процессор и диск. Работает — это долгая операция, её лучше дождаться. Стоит на нуле — снимайте процесс: кнопкой «Снять задачу», командой taskkill /IM 1cv8c.exe /F или, в клиент-серверной базе, удалением сеанса в консоли администрирования кластера.
Что делать дальше, зависит от варианта базы. В файловой после аварийного закрытия иногда остаётся занятым файл 1Cv8.1CD. В серверной процесс на компьютере пользователя уже закрыт, а его сеанс на сервере продолжает держать лицензию и блокировки. Поэтому после снятия процесса нужно проверить и сервер, и сам файл базы.
Завис 1С или просто долго думает: как понять
Окно с пометкой «(Не отвечает)» в заголовке — ещё не приговор. Платформа выполняет тяжёлые операции в одном потоке, и интерфейс на это время замирает. Закрытие месяца , обновление конфигурации , пересчёт итогов, загрузка выписки на тысячи строк могут идти 20–40 минут.
Откройте диспетчер задач (Ctrl+Shift+Esc), вкладку «Подробности», и найдите процесс 1С:
| Процесс | Что это |
|---|---|
1cv8c.exe | тонкий клиент — обычный режим работы пользователя |
1cv8.exe | толстый клиент или Конфигуратор |
1cestart.exe | стартер, окно выбора баз |
rphost.exe, rmngr.exe, ragent.exe | процессы сервера 1С, на компьютере пользователя их нет |
Понаблюдайте за процессом минуту-две:
- 🔄 Работает. Процент ЦП скачет, объём памяти меняется, на вкладке «Производительность → Диск» есть активность. Ждите.
- 🌐 Ждёт сервер. В клиент-серверной базе клиент может стоять на нуле, а работа идёт в
rphost.exeна сервере. Спросите администратора, есть ли нагрузка там. - 🔒 Ждёт блокировку. Документ, который вы проводите, держит другой пользователь. Через 20 секунд обычно появляется сообщение о превышении времени ожидания блокировки, и программа «отмирает» сама.
- ⛔ Висит. ЦП 0%, память не меняется 5–10 минут, сервер не нагружен. Это зависание.
Перед тем как снимать процесс, нажмите Ctrl+Break. Это штатная команда прерывания выполняемой операции в 1С. Если зависла обработка или отчёт, а не сама платформа, появится вопрос о прерывании, и программа вернётся к работе без потери сеанса.
Если 1С зависла на этапе запуска, до появления главного окна, причина чаще всего в кэше пользователя или в недоступной базе: проверьте сеть и очистите кэш, как описано ниже.
Снимаем зависший процесс 1С через диспетчер задач
Самый простой способ для одного компьютера. Подходит и для файловой, и для серверной базы.
- Нажмите
Ctrl+Shift+Esc. - На вкладке «Процессы» найдите «1С:Предприятие». Если окон несколько, раскройте группу стрелкой — внутри видны базы по заголовкам.
- Выделите зависшее окно и нажмите «Снять задачу».
- Если Windows спросит про ожидание ответа программы, выберите завершение.
- Проверьте вкладку «Подробности»: процесса
1cv8c.exeили1cv8.exeэтой базы быть не должно. Если он остался, снимите его там же через контекстное меню — «Завершить дерево процессов».
Всё, что не записано, пропадёт. Документ, открытый и не записанный, придётся вводить заново. Проведённые раньше документы останутся: платформа пишет данные транзакциями, и прерванная транзакция просто откатывается.
Если в момент зависания шло обновление конфигурации или реструктуризация базы в Конфигураторе, не снимайте процесс без крайней нужды. Прерванное обновление структуры может оставить базу в состоянии, из которого её придётся восстанавливать из резервной копии. Подождите хотя бы час и проверьте активность диска.
Как закрыть зависшую 1С из командной строки
Командная строка нужна, когда диспетчер задач сам не отвечает, процессов много или нужно закрыть 1С на терминальном сервере у конкретного пользователя.
Посмотреть все процессы 1С:
tasklist /FI "IMAGENAME eq 1cv8*"
Закрыть все тонкие клиенты на этом компьютере:
taskkill /IM 1cv8c.exe /F /T
Ключ /F завершает процесс принудительно, /T — вместе с дочерними. Для толстого клиента и Конфигуратора замените имя на 1cv8.exe.
Закрыть один конкретный процесс по номеру (PID берётся из вывода tasklist):
taskkill /PID 11452 /F
На терминальном сервере, чтобы не задеть остальных, фильтруйте по имени пользователя:
taskkill /FI "USERNAME eq ivanova" /IM 1cv8c.exe /F
То же в PowerShell:
Get-Process 1cv8* | Format-Table Id, ProcessName, StartTime
Stop-Process -Id 11452 -Force
Команда taskkill /IM 1cv8c.exe /F без фильтра на терминальном сервере закроет 1С у всех, кто на нём работает. Их несохранённые данные пропадут. Запускайте её так только в нерабочее время или после предупреждения коллег.
Командную строку для этих операций запускайте от имени администратора. Свои процессы пользователь может закрыть и без прав администратора, чужие — нет.
Отключаем зависший сеанс на сервере 1С
В клиент-серверной базе снять процесс на компьютере мало. Сеанс на сервере живёт ещё какое-то время: держит лицензию, управляемые блокировки, а иногда и транзакцию. Коллеги видят «документ заблокирован», сам пользователь при повторном входе — нехватку лицензий.
Через консоль администрирования
- На сервере или компьютере администратора откройте «Администрирование серверов 1С Предприятия».
- Раскройте
Центральные серверы 1С:Предприятия → <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы. - Найдите сеанс по колонкам «Пользователь», «Компьютер» и «Приложение». У зависшего сеанса время последней активности не меняется.
- Правой кнопкой — «Удалить». Сеанс завершится, лицензия освободится.
Если в списке «Соединения» той же базы осталось соединение от компьютера пользователя без сеанса, его тоже можно удалить.
Через утилиту rac
Когда консоли под рукой нет, работает утилита rac из каталога bin платформы. Для неё на сервере должна быть запущена служба RAS (сервер администрирования).
rac cluster list
rac infobase summary list --cluster=<uuid кластера>
rac session list --cluster=<uuid кластера> --infobase=<uuid базы>
rac session terminate --cluster=<uuid кластера> --session=<uuid сеанса>
Если у кластера задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров выводит rac help session.
Если завис рабочий процесс
Бывает, что зависла не одна сессия, а rphost.exe целиком: сеансы не удаляются, консоль показывает огромную память или процесс не реагирует. Тогда:
- В консоли откройте «Рабочие процессы» кластера и посмотрите память и число соединений у каждого.
- Проблемный процесс можно выключить из обработки (флаг «Включен» в свойствах), дождаться, пока сеансы перейдут на другие, и затем завершить его.
- Крайняя мера — перезапуск службы «Агент сервера 1С:Предприятия 8.3» через
services.msc.
Перезапуск службы агента или завершение rphost.exe обрывает сеансы всех пользователей на этом процессе. Делайте это после предупреждения коллег или в обед, когда в базе минимум людей. Незаписанные данные у пользователей пропадут.
Зависание файловой базы: что проверить после закрытия
В файловой базе отдельного сервера нет. Каждый клиент сам открывает файл 1Cv8.1CD в каталоге базы, обычно по сети на общей папке. Поэтому есть свои особенности.
- 🖥️ Процесс остался на другом компьютере. Если 1С висит у коллеги, а у вас база не открывается монопольно (например, для загрузки
.dtили тестирования и исправления), значит, где-то ещё открыт клиент. Посмотрите список активных пользователей в программе или пройдитесь по рабочим местам. - 📂 Файл занят на файловом сервере. Иногда процесс уже закрыт, а сетевое подключение к файлу висит. На компьютере, где лежит база, откройте
compmgmt.msc → Служебные программы → Общие папки → Открытые файлы, найдите1Cv8.1CDи закройте его через контекстное меню. - 💾 Медленная сеть или диск. Файловая база очень чувствительна к задержкам. Wi-Fi, VPN или забитый диск NAS дают «зависания», которые на самом деле — ожидание чтения.
- 🛡️ Антивирус сканирует базу. Проверка
1Cv8.1CDна каждом обращении тормозит всё. Каталог базы стоит добавить в исключения антивируса.
Закрытие файла в «Открытых файлах» обрывает работу того, кто его держит. Если этот пользователь на самом деле работает, его несохранённые изменения пропадут. Сначала убедитесь, что на его компьютере нет процесса 1С.
После аварийного закрытия файловой базы при следующем входе всё обычно в порядке. Если появились странные ошибки чтения или база не открывается, сделайте копию каталога и запустите в Конфигураторе Администрирование → Тестирование и исправление — для этой операции нужен монопольный доступ, все пользователи должны выйти.
Как сделать так, чтобы 1С зависала реже
Зависания чаще всего повторяются по одной и той же причине. Вот что стоит настроить один раз.
На компьютере пользователя
- Очистить кэш. Удалите папки с длинными именами (GUID) в
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8при закрытой 1С. Или добавьте к параметрам запуска базы/ClearCache: в окне выбора баз — «Изменить», последний шаг, поле «Дополнительные параметры запуска». - Обновить платформу до актуального релиза той ветки, которую поддерживает ваша конфигурация. Многие зависания интерфейса исправлены в новых сборках.
- Проверить память. Тонкому клиенту с несколькими открытыми базами нужно 1–2 ГБ ОЗУ. На компьютере с 4 ГБ и браузером на 30 вкладок 1С будет «замирать».
- Убрать лишние окна. Двадцать открытых форм списков с отборами нагружают и клиент, и сервер.
На сервере
| Настройка | Где | Что даёт |
|---|---|---|
| Интервал перезапуска | свойства кластера | рабочие процессы периодически перезапускаются, накопленная память освобождается |
| Критический объём памяти процессов | свойства рабочего сервера | при превышении процессы перезапускаются, а не съедают всю ОЗУ |
| Регламентное обслуживание СУБД | планы обслуживания SQL / PostgreSQL | обновление статистики и индексов убирает «вечные» запросы |
| Расписание регламентных заданий | Администрирование → Обслуживание → Регламентные операции в БП 3.0 | тяжёлые фоновые задания не совпадают с часами пиковой работы |
Если зависание повторяется на одной и той же операции, это уже не случайность. Запишите, какой документ или отчёт, в какое время и у скольких пользователей. С этими данными администратор или разработчик найдёт тяжёлый запрос в технологическом журнале за час, а не за неделю.
Тяжёлые регламентные операции — закрытие месяца, обновление конфигурации, загрузку больших обменов — планируйте на время, когда в базе нет людей. Конфликт за блокировки между ними и обычной работой — частая причина «зависаний», которые на самом деле очереди.
Частые ошибки при выходе из зависшей 1С
- ❌ Перезагружают компьютер кнопкой питания. Принудительное выключение во время записи может повредить кэш или, в файловой базе на локальном диске, сам файл. Снять процесс быстрее и безопаснее.
- ❌ Снимают процесс через 30 секунд. Закрытие месяца или большой отчёт так и не досчитаются, а при следующем запуске их придётся начинать заново.
- ❌ Закрывают клиент, забыв про сервер. Сеанс продолжает держать лицензию и блокировки, коллеги не могут провести документы.
- ❌ Перезапускают службу агента днём. Ради одного зависшего сеанса выкидывают из базы весь офис. Удаление конкретного сеанса решает задачу без побочных эффектов.
- ❌ Удаляют папку базы вместо папки кэша. Каталоги кэша лежат в профиле пользователя, а не рядом с
1Cv8.1CD. Путать их нельзя.