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

Отчеты и Аналитика · 10 мин

Как остановить выполнение отчета в 1С

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

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

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

Как понять, чем занята программа, прежде чем что-то останавливать

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

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

Окно состояния с индикаторомОтчет в вашем сеансе

Останавливается кнопкой отмены или Ctrl+Break

Интерфейс работает, отчет формируется «в фоне»Фоновое задание на сервере

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

Окно «Не отвечает»Клиент ждет сервер или СУБД

Проверьте активные запросы на СУБД, не спешите убивать процесс

Отчет запущен по расписаниюРегламентное задание

Отключите расписание и завершите текущее выполнение

Остановка отчета в собственном сеансе

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

Классический способ — сочетание клавиш Ctrl+Break (на части клавиатур Break совмещена с Pause). Эта команда прерывает выполнение встроенного кода и работает как в толстом, так и в тонком клиенте. На ноутбуках без отдельной клавиши Break попробуйте комбинацию с Fn, указанную производителем клавиатуры.

Если кнопки отмены нет и Ctrl+Break не срабатывает

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

Порядок действий при остановке отчета в сеансе
  1. 1
    Нажмите кнопку отмены в окне состояния формирования
  2. 2
    Если кнопки нет — нажмите Ctrl+Break и подождите до минуты
  3. 3
    Если прерывание не сработало — уточните у администратора, не выполняется ли запрос на СУБД
  4. 4
    Проверьте, что интерфейс разблокировался и отчет не вывелся частично
  5. 5
    При повторном запуске сузьте период или отбор, чтобы отчет не завис снова

Остановка фонового формирования отчета

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

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

Отчет по расписанию

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

Остановка через консоль кластера и на стороне СУБД

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

Если исполнение застряло на уровне СУБД (длинный запрос в MS SQL Server, PostgreSQL), запрос снимают средствами самой СУБД: например, в MS SQL Server через Activity Monitor или командой KILL по идентификатору сессии. Это работа администратора баз данных: ошибочное завершение чужой сессии оборвет операции других пользователей.

Что делать в файловой базе и в веб-клиенте

В файловом варианте сервера нет, и отчет выполняется в вашем процессе. Здесь работают кнопка отмены и Ctrl+Break. Если программа полностью не отвечает и прерывание недоступно, единственный выход — завершить процесс 1cv8 через диспетчер задач. Для данных это обычно безопасно при чтении, но перед повторным запуском убедитесь, что база открывается нормально и не требует восстановления.

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

Маршрут решения

Как выбрать действие

Отчет формируется в вашем окне, виден индикаторКнопка отмены или Ctrl+Break
Отчет запущен в фоне, интерфейс свободенОтмена задания в списке регламентных и фоновых заданий
Клиент не отвечает, клиент-серверная базаАдминистратор завершает сеанс через консоль кластера
Длинный запрос на СУБД подтвержденАдминистратор СУБД снимает конкретный запрос
Файловая база, программа полностью завислаЗавершение процесса 1cv8 в диспетчере задач как крайняя мера

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

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

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

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

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

Интерактивный отчет останавливается кнопкой отмены или Ctrl+Break, фоновый — снятием задания в списке регламентных и фоновых заданий. Зависший сеанс завершает администратор через консоль кластера, а запрос на СУБД — администратор баз данных. Процессы сервера 1С самостоятельно не завершайте. После остановки найдите причину долгого выполнения, иначе отчет зависнет снова.

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

Опасно ли прерывать формирование отчета для базы данных?

Нет. Отчет только читает данные и ничего не записывает, поэтому его отмена не нарушает целостность базы. Опасно грубое прерывание на уровне сервера, которое задевает другие сеансы, где данные как раз изменяются.

Почему после нажатия отмены отчет продолжает формироваться еще некоторое время?

Платформа прерывает выполнение не мгновенно, а в ближайшей точке, где это возможно. Если в момент отмены выполняется запрос на СУБД, придется ждать его завершения или отмены на стороне сервера баз данных.

Закрыл программу, а отчет все равно грузит сервер. Почему?

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

Нет кнопки отмены и Ctrl+Break не работает. Что еще можно сделать?

Проверьте, не выполняется ли запрос на СУБД — тогда клиентская отмена бессильна. В файловой базе крайняя мера — завершение процесса 1cv8 через диспетчер задач; в клиент-серверной — обращение к администратору для завершения сеанса.

Как узнать, кто запустил тяжелый отчет, который тормозит всю базу?

Администратор может посмотреть активные сеансы и соединения в консоли кластера 1С, а также длительные запросы средствами СУБД. В типовых конфигурациях список активных фоновых заданий показывает пользователя и время запуска.

Можно ли ограничить время выполнения отчетов, чтобы они не зависали?

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