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

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

Как отключить фоновые задания при обновлении 1С

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

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

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

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

Почему фоновые задания мешают обновлению

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

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

Отдельный риск — обновление на стороне СУБД. Реструктуризация таблиц при активных фоновых транзакциях может привести к взаимоблокировкам на уровне MS SQL или PostgreSQL, и тогда придётся принудительно снимать сессии уже средствами СУБД.

Подготовка: что сделать до отключения заданий

Перед любыми действиями сделайте резервную копию: для файловой базы — скопируйте файл 1Cv8.1CD, для клиент-серверной — выполните выгрузку в dt или штатный бэкап средствами СУБД. Это единственная гарантия отката, если обновление пойдёт не по плану.

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

Предупредите пользователей о времени работ и завершите их сеансы. Хотя пользовательские сеансы и фоновые задания блокируются по-разному, обновление всё равно потребует полной монопольности.

Порядок действий перед обновлением
  1. 1
    Сделайте резервную копию базы (dt, копия файла или бэкап СУБД)
  2. 2
    Зафиксируйте список активных регламентных и фоновых заданий
  3. 3
    Завершите сеансы пользователей
  4. 4
    Отключите регламентные задания и дождитесь завершения фоновых
  5. 5
    Убедитесь в отсутствии активных сеансов и запустите обновление

Отключение заданий в клиент-серверном варианте

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

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

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

Отключение заданий в файловом варианте

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

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

Если под рукой нет обработки, задания можно отключить программно через внешнее соединение или в режиме предприятия:

bsl
УстановитьМонопольныйРежим(Истина);
Выборка = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Для Каждого Задание Из Выборка Цикл
    Задание.Использование = Ложь;
    Задание.Записать();
КонецЦикла;

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

Проверка, что задания действительно отключены

Недостаточно поставить флажок — нужно убедиться, что ни одно задание не выполняется и не запустится. В клиент-серверном режиме откройте список сеансов в консоли кластера и отфильтруйте по типу «Фоновое задание»: список должен быть пуст. Подождите несколько минут и обновите список — если по расписанию должно было стартовать задание, а оно не появилось, блокировка работает.

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

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

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

Сеансы в консоли кластера
Норма

Нет сеансов с типом «Фоновое задание»

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

Фоновые сеансы появляются после блокировки — проверьте другой кластер или внешний запуск

Свойства базы на кластере
Норма

Включена блокировка регламентных заданий

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

Флажок сброшен или база зарегистрирована в другом кластере

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

Нет новых событий запуска фоновых заданий

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

Задания стартуют — расписания не отключены

Монопольный режим
Норма

Конфигуратор устанавливает монопольный доступ сразу

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

Ошибка разделения доступа — остались активные сеансы

Включение заданий после обновления

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

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

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

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

Альтернативные подходы и ограничения

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

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

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

Сравнение способов отключения

Блокировка в консоли кластера

Самый надёжный для клиент-серверного режима; требует доступа к консоли администрирования и прав администратора кластера

Обработка «Консоль заданий»

Универсально для файлового режима и работы из предприятия; не блокирует запуск со стороны сервера, только отключает расписания

Программное отключение через код

Подходит для автоматизации в скриптах; требует аккуратности — нужно сохранить исходное состояние заданий для обратного включения

Блокировка работы пользователей (БСП)

Удобно из интерфейса, блокирует и сеансы, и задания; работает только в конфигурациях на базе БСП

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

Обновление зависло на этапе «ожидание монопольного режима» — что делать?

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

Нужно ли отключать фоновые задания при обновлении платформы, а не конфигурации?

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

Как отключить задания, если нет доступа к консоли кластера?

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

После обновления регламентные задания не запускаются, хотя блокировка снята. В чём причина?

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

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

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

Можно ли обновлять конфигурацию без отключения заданий, если они короткие?

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

Итог

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

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