← База знаний

Висят фоновые задания 1С: почему система зависает и как настроить расписание

Фоновые (регламентные) задания в 1С призваны облегчить работу: незаметно для пользователей скачивать почту, загружать курсы валют, обмениваться с сайтом и маркировкой. Но если они «зависают», то полностью парализуют производительность всей базы и потребляют все мощности сервера.

Почему фоновые задания не завершаются?

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

1. Бесконечный цикл в коде (Зацикливание)

Из-за ошибки программиста код задания попал в бесконечный цикл `Пока Истина Цикл...КонецЦикла;` Сеанс фонового задания будет потреблять 100% одного ядра процессора сервера впустую, пока его не «убьют» принудительно через консоль администратора серверов.

2. Ожидание внешнего ресурса (Таймаут)

Задание пытается отправить запрос к стороннему сервису (например, сайту или Честному Знаку), но сервис не отвечает. Если программист не предусмотрел разумный `Timeout` (период ожидания ответа, после которого попытка прекращается), задание будет висеть бесконечно в состоянии ожидания.

3. Конкуренция за данные (Deadlock)

Два фоновых задания (например, загрузка заказов с Ozon и с Wildberries) запущены одновременно и пытаются заблокировать и записать изменения в одну и ту же карточку номенклатуры. Происходит взаимоблокировка, и процессы замирают («подвисают»).

🛠️ Как отключить зависшее фоновое задание

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

Радикальный способ решения:

  1. Откройте утилиту Консоль администрирования серверов 1С (mmc).
  2. Выберите ваш кластер и вашу информационную базу.
  3. Перейдите в раздел `Сеансы`.
  4. Отсортируйте список по колонке `Приложение` (ищите сеансы типа Фоновое задание).
  5. Найдите сеанс, который висит дольше других (в колонке время начала).
  6. Нажмите правой кнопкой мыши → `Удалить`. Сеанс принудительно разорвется.

⚙️ Как правильно настроить регламентные операции

Чтобы избежать постоянных зависаний, проведите аудит всех существующих фоновых процессов в базе (НСИ и Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания):

  • Отключите ненужное: Например, если вы не используете интеграцию с "1С:СПАРК Риски", отключите обновление их индексов. Это освободит ресурсы.
  • Разграничьте во времени (создайте "окна"): Если у вас настроены 3 обмена с сайтом каждые 5 минут, сдвиньте их расписание. Один пусть идет в 00 мин и 30 мин, другой — в 10 и 40 минут. Они не должны стартовать в одну секунду.
  • Настройте автоповтор: В свойствах тяжелых задач задайте "Количество повторов при аварийном завершении", чтобы 1С пробовала повторить обмен, а не падала с концами из-за минутного сбоя сети.
  • Ограничьте рабочие процессы: В свойствах кластера 1С сисадмин может настроить отдельный рабочий процесс (`rphost`), предназначенный исключительно для фоновых заданий, чтобы они не депорировали память у "живых" пользователей.

Нужна помощь с фоновыми заданиями?

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

Получить консультацию →

📚 Связанные статьи