Висят фоновые задания 1С: почему система зависает и как настроить расписание
Фоновые (регламентные) задания в 1С призваны облегчить работу: незаметно для пользователей скачивать почту, загружать курсы валют, обмениваться с сайтом и маркировкой. Но если они «зависают», то полностью парализуют производительность всей базы и потребляют все мощности сервера.
Почему фоновые задания не завершаются?
Обычно регламентное задание выполняется в фоновом режиме на сервере 1С за несколько секунд. Если выполнение висит часами (или вообще никогда не завершается), причина кроется в одной из 4 проблем:
Из-за ошибки программиста код задания попал в бесконечный цикл `Пока Истина Цикл...КонецЦикла;` Сеанс фонового задания будет потреблять 100% одного ядра процессора сервера впустую, пока его не «убьют» принудительно через консоль администратора серверов.
Задание пытается отправить запрос к стороннему сервису (например, сайту или Честному Знаку), но сервис не отвечает. Если программист не предусмотрел разумный `Timeout` (период ожидания ответа, после которого попытка прекращается), задание будет висеть бесконечно в состоянии ожидания.
Два фоновых задания (например, загрузка заказов с Ozon и с Wildberries) запущены одновременно и пытаются заблокировать и записать изменения в одну и ту же карточку номенклатуры. Происходит взаимоблокировка, и процессы замирают («подвисают»).
🛠️ Как отключить зависшее фоновое задание
Отключить такое задание из обычного пользовательского режима 1С (через Журнал регистрации или Справочник Регламентных заданий) получается не всегда. Кнопка `Остановить` просто поставит флаг отмены, но физически процесс не завершит.
Радикальный способ решения:
- Откройте утилиту Консоль администрирования серверов 1С (mmc).
- Выберите ваш кластер и вашу информационную базу.
- Перейдите в раздел `Сеансы`.
- Отсортируйте список по колонке `Приложение` (ищите сеансы типа Фоновое задание).
- Найдите сеанс, который висит дольше других (в колонке время начала).
- Нажмите правой кнопкой мыши → `Удалить`. Сеанс принудительно разорвется.
⚙️ Как правильно настроить регламентные операции
Чтобы избежать постоянных зависаний, проведите аудит всех существующих фоновых процессов в базе (НСИ и Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания):
- Отключите ненужное: Например, если вы не используете интеграцию с "1С:СПАРК Риски", отключите обновление их индексов. Это освободит ресурсы.
- Разграничьте во времени (создайте "окна"): Если у вас настроены 3 обмена с сайтом каждые 5 минут, сдвиньте их расписание. Один пусть идет в 00 мин и 30 мин, другой — в 10 и 40 минут. Они не должны стартовать в одну секунду.
- Настройте автоповтор: В свойствах тяжелых задач задайте "Количество повторов при аварийном завершении", чтобы 1С пробовала повторить обмен, а не падала с концами из-за минутного сбоя сети.
- Ограничьте рабочие процессы: В свойствах кластера 1С сисадмин может настроить отдельный рабочий процесс (`rphost`), предназначенный исключительно для фоновых заданий, чтобы они не депорировали память у "живых" пользователей.
Нужна помощь с фоновыми заданиями?
Если сервер 1С постоянно перегружен, а фоновые процессы блокируют работу менеджеров, проведу аудит производительности. Найду проблемные модули, исправлю код и правильно настрою кластер 1С.
Получить консультацию →