Профилирование тяжелой обработки в 1С: где искать потери времени

Пошаговый подход к поиску узких мест в регламентных заданиях 1С без преждевременной оптимизации.

Editorial Team 04.04.2026 1 минута
Профилирование 1С
Декомпозиция длительной обработки по этапам.

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

Декомпозиция времени

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

Процедура ВыполнитьОбработку()
    НачалоЭтапа = ТекущаяУниверсальнаяДатаВМиллисекундах();
    ПодготовитьДанные();
    ЗаписатьВЖурнал("Подготовка", НачалоЭтапа);

    НачалоЭтапа = ТекущаяУниверсальнаяДатаВМиллисекундах();
    РассчитатьРегистры();
    ЗаписатьВЖурнал("Расчет", НачалоЭтапа);

    НачалоЭтапа = ТекущаяУниверсальнаяДатаВМиллисекундах();
    СохранитьРезультат();
    ЗаписатьВЖурнал("Запись", НачалоЭтапа);
КонецПроцедуры

Что видно после первой итерации

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

Тонкость, о которой часто забывают

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

Профилирование обработки в 1С