Администрирование · 10 мин
Как отменить выполнение обработки в 1С
Как отменить выполнение обработки в 1С: остановка фонового задания, завершение сеанса, прерывание в конфигураторе и внешних обработках. Пошаговые инструкции.
Запущенная обработка в 1С может выполняться слишком долго: перепроведение большого периода, загрузка данных из файла, групповое изменение реквизитов. Если вы понимаете, что запустили обработку с ошибочными параметрами или она блокирует работу пользователей, её нужно корректно остановить. Способ отмены зависит от того, как запущена обработка: интерактивно в клиентском приложении, как фоновое задание на сервере или в отладке через конфигуратор.
Главный риск при принудительной остановке — незавершённая транзакция. Если обработка записывала данные порциями без транзакций, часть изменений уже зафиксирована в базе, а часть — нет. Поэтому перед отменой важно понять, что именно делает обработка, и после остановки проверить целостность данных.
Ниже разобраны все рабочие способы отмены: от штатной кнопки «Прервать» до снятия задачи на сервере 1С:Предприятия, а также правила проверки данных после принудительного завершения.
Определите, как именно запущена обработка
Прежде чем отменять выполнение, выясните режим запуска — от этого зависит доступный инструмент остановки. Интерактивная обработка выполняется внутри вашего клиентского сеанса: окно 1С «зависает», интерфейс не отвечает, в строке состояния может отображаться прогресс. Такая обработка останавливается средствами клиентского приложения.
Фоновое задание выполняется на сервере или в отдельном сеансе и не блокирует ваше окно. Пользователь может продолжать работать, а обработка идёт параллельно. Отменить её из клиентского окна нельзя — нужны консоль заданий или административные инструменты.
Третий вариант — обработка, запущенная под отладкой из конфигуратора. Она останавливается кнопкой «Остановить» на панели отладки, при этом сеанс остаётся активным.
Останавливать через Ctrl+Break или диспетчер задач
Искать в консоли заданий или консоли кластера
Проверить активные сеансы и блокировки перед отменой
Остановка интерактивной обработки в клиентском приложении
Стандартный способ прервать длительную операцию в толстом или тонком клиенте — комбинация клавиш Ctrl+Break (на клавиатурах без клавиши Break используется Ctrl+Pause или Fn-комбинация ноутбука). Если обработка написана с поддержкой прерывания, 1С выведет диалог с вопросом «Прервать выполнение операции?» — подтвердите, и выполнение остановится.
Многие типовые обработки (групповое перепроведение, обмен данными) имеют собственную кнопку «Прервать» или «Отмена» в форме. Используйте её в первую очередь: штатная отмена корректно завершает текущую итерацию и закрывает открытые транзакции, чего не гарантирует принудительное прерывание.
Ограничение метода: Ctrl+Break срабатывает только если код обработки периодически возвращает управление платформе. Если выполняется один длинный запрос к базе данных или внешний вызов, прерывание подействует только после его завершения — окно может «висеть» ещё несколько минут.
- 1Нажмите Ctrl+Break и подождите 1–2 минуты — не закрывайте окно сразу
- 2Если появился диалог прерывания — подтвердите остановку
- 3Если реакции нет, откройте диспетчер задач Windows и проверьте, не «Не отвечает» ли процесс 1cv8
- 4При файловой базе завершите процесс через диспетчер задач только как крайнюю меру
- 5После перезапуска проверьте данные, которые изменяла обработка
Отмена фонового задания
Если обработка запущена как фоновое задание, откройте типовую обработку «Консоль заданий» (в конфигурациях на БСП: Администрирование → Поддержка и обслуживание → Регламентные операции → Регламентные и фоновые задания). Найдите нужное задание в списке, откройте список его фоновых заданий и нажмите «Отменить» для активного экземпляра.
Учтите различие: команда «Отменить» завершает текущее выполнение фонового задания, но регламентное задание запустит его снова по расписанию. Если нужно полностью прекратить запуски, снимите флажок «Использование» у регламентного задания или отключите расписание.
В файловой базе фоновые задания выполняются в отдельном сеансе того же компьютера. Если консоль заданий недоступна, найдите сеанс фонового задания через пункт «Администрирование → Активные пользователи» и завершите его оттуда.
Завершение сеанса через консоль кластера серверов
В клиент-серверном варианте самый надёжный способ снять зависшую или «убийственную» для производительности обработку — консоль администрирования серверов 1С. Откройте консоль, разверните кластер, перейдите в ветку «Сеансы», найдите сеанс нужного пользователя (видно пользователя, приложение и время начала) и выберите «Удалить» в контекстном меню.
Через ветку «Соединения» можно увидеть, какой рабочий процесс обслуживает сеанс и сколько памяти он потребляет. Если обработка вызвала разрастание рабочего процесса rphost, удаление сеанса освободит ресурсы без перезапуска всего сервера.
Альтернатива из пользовательского интерфейса: раздел «Администрирование → Активные пользователи» позволяет завершить сеанс, если у вас есть административные права. Это удобно, когда доступа к консоли кластера нет.
Остановка обработки в режиме отладки
Если обработка запущена из конфигуратора под отладкой, остановить её проще всего: нажмите кнопку «Остановить» (квадратный значок) на панели отладки или Shift+F5. Выполнение прервётся немедленно, открытая транзакция будет отменена, а данные, не зафиксированные до транзакции, не попадут в базу.
Если нужно не полностью отменить, а приостановить и изучить состояние, используйте «Паузу» — выполнение остановится на текущей строке, и вы сможете посмотреть значения переменных через табло. Это помогает понять, зациклилась ли обработка или просто долго обходит большой набор данных.
Для фоновых заданий отладка подключается отдельно: в конфигураторе включите «Отладка → Подключение» и установите флажок поиска фоновых заданий. После этого фоновую обработку можно остановить тем же способом.
// Программная остановка фонового задания по уникальному идентификатору
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено Тогда
Задание.Отменить();
КонецЕсли;Проверка данных после принудительной отмены
Принудительная остановка — всегда риск частично записанных данных. После отмены обработки, которая изменяла базу, выполните проверку: откройте журнал регистрации и найдите ошибки за период выполнения, сравните количество обработанных объектов с ожидаемым, если обработка вела счётчик.
Для обработок перепроведения документов проверьте границу последовательности или дату последнего проведённого документа — обычно видно, до какого момента дошло выполнение. Для загрузок данных сверьте количество созданных элементов с количеством строк в исходном файле.
Если обнаружена рассогласованность, варианты действий: запустить обработку повторно (если она умеет пропускать уже обработанные объекты), отменить частичные изменения вручную или восстановить базу из резервной копии, сделанной до запуска. Именно поэтому перед массовыми обработками рекомендуется делать копию базы.
Как проверить результат
Нет ошибок записи и обрывов транзакций
Ошибки СУБД, незавершённые транзакции
Совпадает с ожидаемым или обработка пропускает повторный запуск
Часть объектов изменена, часть — нет, повторный запуск опасен
Все документы до точки остановки проведены корректно
Документы в середине периода остались непроведёнными
Типичные ошибки при отмене обработки
Самая частая ошибка — немедленное «снятие задачи» зависшего клиента через диспетчер задач Windows. Для файловой базы это чревато повреждением файла 1Cv8.1CD, если в момент завершения шла запись. Сначала всегда пробуйте Ctrl+Break и ждите несколько минут.
Вторая ошибка — отмена только фонового задания без отключения регламентного. Через минуту расписание запускает обработку заново, и ситуация повторяется. Третья типичная ситуация — повторный запуск обработки без анализа, что она успела сделать: в результате данные дублируются или изменяются дважды.
Частые вопросы
Обработка не реагирует на Ctrl+Break, что делать?
Это значит, что выполняется длинный запрос или внешний вызов, который нельзя прервать из клиента. Подождите завершения текущей операции (иногда это 5–15 минут). Если ждать нельзя — в клиент-серверном варианте удалите сеанс через консоль кластера, в файловом — завершите процесс, принимая риск проверки базы после этого.
Откатятся ли изменения при отмене обработки?
Только если обработка выполнялась в одной транзакции — тогда при прерывании всё откатится. Большинство массовых обработок фиксируют изменения порциями, и уже записанные данные останутся в базе. Отката «как было» не будет, восстановить состояние можно только из резервной копии.
Как отменить обмен данными, запущенный по расписанию?
Найдите соответствующее регламентное задание в консоли заданий, отмените активное фоновое задание и снимите флажок использования, чтобы оно не запустилось повторно. Затем проверьте состояние узлов обмена — прерванный обмен обычно продолжится с места остановки при следующем запуске.
Можно ли отменить обработку другого пользователя?
Да, при наличии административных прав: через «Администрирование → Активные пользователи» завершите сеанс пользователя или удалите его сеанс в консоли кластера серверов. Предупредите пользователя, если есть возможность, — его несохранённые данные в других окнах того же сеанса будут потеряны.
Как узнать, какая обработка «вешает» сервер?
В консоли кластера откройте список сеансов и соединений: видно, какой сеанс долго выполняет вызов и сколько памяти потребляет его рабочий процесс. Дополнительно включите технологический журнал или посмотрите длительные запросы в консоли СУБД — это покажет конкретную операцию.
Безопасно ли прерывать групповое перепроведение документов?
Штатной кнопкой «Прервать» — достаточно безопасно: уже проведённые документы останутся проведёнными, остальные не будут затронуты. При принудительном снятии сеанса возможен документ, прерванный на середине транзакции проведения, — после остановки проверьте последние документы периода и при необходимости перепроведите их вручную.
Что важно запомнить
Сначала определите режим запуска обработки: интерактивная останавливается Ctrl+Break или кнопкой «Прервать», фоновая — через консоль заданий, зависший сеанс — через консоль кластера. Принудительная отмена не откатывает зафиксированные изменения, поэтому после остановки всегда проверяйте целостность данных и отключайте расписание, чтобы задание не запустилось повторно.