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

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

Как прервать выполнение операции в 1С

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

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

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

Определяем, что именно делает 1С

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

Для диагностики полезны: список активных пользователей (в файловом режиме — «Администрирование → Обслуживание → Активные пользователи», в типовых конфигурациях на БСП), консоль кластера серверов 1С для клиент-серверного режима и журнал регистрации, где видно, какие фоновые задания запущены и как давно.

Индикатор выполнения в окнеИнтерактивная операция

Попробуйте кнопку «Отмена» или Ctrl+Break

Медленная работа у всехФоновое или регламентное задание

Проверьте список фоновых заданий и консоль кластера

Пользователь не может войтиЗависший сеанс

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

Процесс 1cv8 грузит процессорЗависшее приложение

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

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

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

Если окно не отвечает, попробуйте комбинацию Ctrl+Break — в ряде случаев она прерывает выполнение встроенного кода. В толстом клиенте и конфигураторе это срабатывает чаще, в тонком клиенте — реже, поскольку основная нагрузка уходит на сервер. Если операция выполняется на сервере (клиент-серверный режим), прерывание на клиенте может не остановить серверный вызов немедленно — сервер завершит текущий вызов и вернёт управление.

Важно понимать: если прервать операцию проведения документа посередине, транзакция откатится, и данные останутся в исходном состоянии. Это штатное поведение платформы. Опасны не сами прерывания, а снятие процесса в момент записи в файловую базу.

Как прервать интерактивную операцию
  1. 1
    Нажмите кнопку «Отмена» в окне индикатора, если она есть
  2. 2
    Если кнопки нет — нажмите Ctrl+Break и подождите до минуты
  3. 3
    Если окно не отвечает — проверьте, не выполняется ли операция на сервере
  4. 4
    Только после этого рассматривайте завершение сеанса целиком
  5. 5
    После прерывания проверьте состояние данных: проведён ли документ, сформирован ли отчёт

Остановка фоновых и регламентных заданий

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

Программная отмена задания

Разработчик или администратор с доступом к внешней обработке может отменить задание кодом. Для этого нужно знать уникальный идентификатор задания, который виден в консоли заданий или получается методом ФоновыеЗадания.ПолучитьФоновыеЗадания() с отбором по состоянию «Активно».

bsl
АктивныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(
    Новый Структура("Состояние", СостояниеФоновогоЗадания.Активно));
Для Каждого Задание Из АктивныеЗадания Цикл
    ФоновыеЗадания.ОтменитьВыполнениеЗадания(Задание.УникальныйИдентификатор);
КонецЦикла;

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

Задание запускается снова

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

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

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

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

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

Крайняя мера: завершение процесса 1С

Если ничего не помогло, процесс клиентского приложения (1cv8.exe или 1cv8c.exe) можно снять через диспетчер задач Windows: вкладка «Процессы» или «Подробности», выбрать процесс, «Снять задачу». В клиент-серверном режиме это обычно безопасно для данных: незавершённая транзакция откатится на стороне СУБД. Сеанс на сервере освободится автоматически через некоторое время или после завершения в консоли кластера.

В файловом режиме снятие процесса во время записи может оставить базу в неконсистентном состоянии. После такого завершения рекомендуется запустить утилиту chdbfl.exe из каталога платформы и проверить физическую целостность файла базы, а затем при необходимости выполнить тестирование и исправление в конфигураторе. Перед этим обязательно сделайте копию файла 1Cv8.1CD.

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

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

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

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

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

Список активных пользователей
Норма

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

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

Сеанс висит — завершите его повторно через консоль кластера

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

Есть запись о завершении или отмене задания

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

Ошибки СУБД или записи об аварийном завершении повторяются

Состояние фонового задания
Норма

«Отменено» или «Завершено»

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

Задание снова активно — проверьте расписание

Данные, с которыми работала операция
Норма

Документ в исходном состоянии, отчёт можно переформировать

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

Документ частично записан, движения некорректны — нужен анализ

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

Что делать, если кнопка «Отмена» не реагирует?

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

Можно ли прервать обновление конфигурации базы данных?

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

Как узнать, какое фоновое задание тормозит базу?

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

Опасно ли завершать сеанс другого пользователя?

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

Что делать после аварийного завершения файловой базы?

Сделайте копию файла 1Cv8.1CD, затем запустите утилиту chdbfl.exe из каталога установки платформы и выполните проверку физической целостности с исправлением ошибок. После этого при необходимости выполните тестирование и исправление в конфигураторе в режиме проверки логической целостности.

Итог

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

Сначала определите тип выполняемой работы, затем выбирайте способ: «Отмена» или Ctrl+Break для интерактивных операций, консоль заданий и ОтменитьВыполнениеЗадания() для фоновых, консоль кластера или список активных пользователей для зависших сеансов. Диспетчер задач — только крайняя мера, а в файловом режиме после него обязательна проверка целостности базы. Перед любыми восстановительными действиями делайте резервную копию.