Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
1C_SCHEDULED_JOB_OVERLAP 1С:Предприятие и СУБД

Оптимизация регламентных заданий 1С: параллелизм и расписание

Обновлено: 26.08.2026  ·  Официальная база знаний
  • Регламентные задания не успевают выполниться за ночь и блокируют работу пользователей днем.
  • Наложение расписаний нескольких тяжелых заданий приводит к 100% утилизации CPU и дедлокам в СУБД.
  • Фоновые задания зависают в состоянии Выполняется бесконечно.

1. Организация параллельного выполнения в несколько потоков

Разбивайте массив обрабатываемых данных на независимые порции (чанги) и запускайте фоновые задания асинхронно через ФоновыеЗадания.Выполнить():

// Запуск пула параллельных потоков обработки
МассивЗаданий = Новый Массив;
КоличествоПотоков = 4;

Для НомерПотока = 1 По КоличествоПотоков Цикл
    ПараметрыПотока = Новый Массив;
    ПараметрыПотока.Добавить(НомерПотока);
    ПараметрыПотока.Добавить(КоличествоПотоков);
    
    Задание = ФоновыеЗадания.Выполнить("МойМодуль.ОбработатьПорциюДанных", ПараметрыПотока, , "Поток_" + НомерПотока);
    МассивЗаданий.Добавить(Задание);
КонецЦикла;

// Ожидание завершения всех потоков
ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий);

2. Фильтрация данных по остатку от деления (Чанкинг)

Внутри процедуры потока выбирайте только свои записи:

// Выборка строк для конкретного потока
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты ГДЕ НомерСтроки % &ВсегоПотоков = &НомерПотока";

3. Разнесение расписаний в консоли администрирования

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

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

Частые вопросы (FAQ)

Сколько параллельных фоновых потоков безопасно запускать в 1С?

Количество потоков не должно превышать число свободных физических ядер процессора на сервере 1С / СУБД (обычно от 4 до 8 потоков на операцию).

Что произойдет, если регламентное задание не завершилось, а подошло время нового запуска?

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

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

Через консоль администрирования кластера 1С (раздел 'Сеансы' / 'Фоновые задания') или программно командой ФоновоеЗадание.Отменить().

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

Если потоки обрабатывают пересекающиеся данные или пишут в одну таблицу итогов без разделения итогов, возникает конкуренция за строки индексов.