К статье
Практический материал

Администрирование · 9 мин

Как прекратить процедуру 1С

Как прекратить процедуру 1С: остановка фоновых заданий, завершение сеансов пользователей, отключение регламентных операций и безопасное закрытие зависшей программы.

Под «прекращением процедуры» в 1С обычно понимают несколько разных задач: остановить выполняющееся фоновое задание, завершить зависший сеанс пользователя, прервать длительную операцию (проведение документов, обмен данными, обновление конфигурации) или корректно закрыть саму программу. Способ действий зависит от того, где именно выполняется процедура — на клиенте, на сервере 1С:Предприятия или в файловой базе.

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

Определите, какая именно процедура выполняется

Перед остановкой важно понять, что именно «висит». В файловой базе процедура выполняется внутри процесса клиентского приложения (1cv8.exe), и её остановка означает завершение работы этого клиента. В клиент-серверном варианте вычисления идут на сервере в рабочих процессах rphost, а клиент лишь показывает состояние «ожидание ответа сервера».

Признаки помогают различить ситуации: если крутится индикатор «Выполняется длительная операция» — это, скорее всего, фоновое задание, и его можно отменить отдельно. Если программа полностью не отвечает и не реагирует на кнопки — завис клиентский сеанс. Если тормозит работа у всех пользователей одновременно — проблема на сервере или в СУБД, и останавливать нужно не клиента, а конкретное задание или сеанс, создающий нагрузку.

Индикатор «Длительная операция»Идёт фоновое задание

Откройте консоль заданий и отмените задание

Окно 1С не отвечаетЗавис клиентский сеанс

Завершите сеанс через список активных пользователей

Тормозит у всех пользователейТяжёлый процесс на сервере

Ищите блокирующий сеанс в консоли кластера

Операция идёт после обновленияОтложенные обработчики обновления

Проверьте «Результаты обновления программы»

Остановка длительной операции в клиенте

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

Учтите, что отмена не мгновенна: сервер завершает текущий шаг обработки. Если операция обрабатывает миллионы записей одним запросом, ожидание может занять минуты. Это нормально — не закрывайте программу в этот момент, дождитесь сообщения о том, что операция отменена.

Если кнопки отмены нет

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

Отмена фонового задания

Фоновые задания — это процедуры, выполняемые на сервере отдельно от пользовательского интерфейса. Чтобы их остановить, откройте в режиме «Предприятие» раздел администрирования: «НСИ и администрирование» → «Поддержка и обслуживание» → «Регламентные операции» → «Регламентные и фоновые задания» (в разных конфигурациях путь может немного отличаться). В списке найдите задание в состоянии «Выполняется».

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

Порядок отмены фонового задания
  1. 1
    Откройте раздел «Регламентные и фоновые задания» в настройках администрирования
  2. 2
    Найдите задание со статусом «Выполняется» и убедитесь, что это именно та процедура
  3. 3
    Нажмите «Отменить выполнение» и дождитесь смены статуса
  4. 4
    Если задание регламентное — отключите расписание или снимите флаг «Используется»
  5. 5
    Проверьте журнал регистрации на наличие ошибок отмены

Завершение сеанса пользователя

Если процедура зависла в конкретном сеансе, завершите его из другого рабочего места с правами администратора. В типовых конфигурациях откройте «Администрирование» → «Обслуживание» → «Активные пользователи», найдите нужный сеанс и нажмите «Завершить сеанс». Пользователь получит сообщение о завершении работы, а выполняющаяся в его сеансе процедура будет прервана.

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

Прерывание обновления конфигурации и отложенных обработчиков

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

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

Принудительное завершение процесса — крайняя мера

Если штатные способы не помогли и клиент 1С полностью завис, завершите процесс 1cv8.exe через диспетчер задач Windows (Ctrl+Shift+Esc → вкладка «Процессы» → «Снять задачу»). На сервере аналогично можно завершить зависший рабочий процесс rphost, но делать это следует только администратору и желательно через консоль кластера — там процесс можно отключить корректнее.

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

Типичные ошибки
01
Перезагрузка сервера «чтобы всё сбросить» — прерываются все сеансы и транзакции, включая чужие важные операции
02
Отмена фонового задания без отключения расписания — задание запускается снова через минуту
03
Завершение сеанса во время обмена данными — рассинхронизация узлов и повторная выгрузка
04
Принудительное снятие процесса без последующей проверки целостности базы
05
Попытка прервать обновление конфигурации в монопольном режиме — риск нерабочей базы

Проверка результата после остановки процедуры

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

Откройте журнал регистрации («Администрирование» → «Обслуживание» → «Журнал регистрации») и отфильтруйте события с уровнем «Ошибка» за нужный период — там будут записи об отменённых заданиях и возможных проблемах, которые стоит устранить до повторного запуска процедуры.

Контрольные точки

Как проверить результат

Список фоновых заданий
Норма

Нет заданий в статусе «Выполняется»

Тревожный признак

Задание снова висит или перезапустилось

Список сеансов
Норма

Зависший сеанс отсутствует

Тревожный признак

Сеанс остался или появился новый с той же нагрузкой

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

Записи об отмене без критических ошибок

Тревожный признак

Ошибки транзакций, битые ссылки, обрывы обмена

Состояние данных
Норма

Документы и регистры в согласованном состоянии

Тревожный признак

Непроведённые «зависшие» документы, расхождения итогов

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

Можно ли остановить процедуру, запущенную другим пользователем?

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

Что будет с данными при отмене фонового задания?

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

Задание отменено, но запускается снова. Что делать?

Это регламентное задание с активным расписанием. Откройте его свойства в списке регламентных заданий и снимите флаг «Используется» либо измените расписание. После этого задание не будет запускаться автоматически.

Как прервать обмен данными, который завис?

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

Опасно ли снимать процесс 1cv8.exe через диспетчер задач?

Для файловой базы — умеренно опасно: возможно повреждение файла при активной записи, поэтому после аварийного завершения проверьте базу утилитой chdbfl.exe. Для клиент-серверной базы риск меньше, так как данные хранит СУБД, но незавершённые операции всё равно стоит проверить.

Как предотвратить зависание процедур в будущем?

Запускайте тяжёлые операции в нерабочее время, разбивайте обработку больших объёмов на порции, следите за актуальностью индексов и статистики СУБД, а для регламентных заданий настраивайте разумное расписание без наложений друг на друга.

Итог

Что важно запомнить

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