Задержка при печати документов — распространенная проблема в крупных конфигурациях, таких как Управление торговлей 11.4. В данной статье мы разберем, почему процесс формирования печатной формы может занимать значительное время (от одной до пяти минут) и как системно подойти к поиску причины этого «зависания».
Первым делом важно понять: система «тормозит» на этапе подготовки макета или на этапе передачи данных на принтер? Если проблема сохраняется даже при попытке сохранить документ в PDF или при выборе «виртуального» принтера, значит, задержка происходит именно на стороне 1С в момент формирования табличного документа. В этом случае физические принтеры и драйверы вторичны.
Чтобы найти «узкое горлышко» в коде, воспользуемся стандартным инструментом платформы — Замером производительности в Конфигураторе. Выполним следующие действия:
Конфигуратор.Отладка.Отладка выберем пункт Замер производительности.ТОРГ-12.Конфигураторе.Время).Чаще всего в УТ 11.4 задержки возникают при вызове процедур БСП (Библиотеки стандартных подсистем), отвечающих за формирование макетов. Если время уходит на обращение к ДополнительныеОтчетыИОбработки, возможно, система выполняет избыточные запросы к регистрам накопления для каждой строки документа.
Даже если программа «зависает» до отправки на печать, конфигурация 1С может пытаться опросить настройки принтера, установленного по умолчанию. Рассмотрим порядок действий для диагностики:
В файловом режиме работы 1С критически важна скорость обращения к файлу базы данных 1Cv8.1CD. Если база расположена на сетевом ресурсе, даже при наличии качественного соединения 1 Гбит/с, количество операций чтения/записи будет ограничено протоколом SMB. Разберем возможные решения:
AppData\Local\1C\1Cv8 и удалим содержимое папок с идентификаторами баз.SSD диск компьютера пользователя. Если задержка исчезнет — проблема в сетевой файловой системе или ограничении пропускной способности сети.chdbfl.exe. Накопление «битых» записей или ошибки в структуре таблиц могут приводить к тому, что запросы к регистрам для заполнения ТОРГ-12 выполняются значительно дольше обычного.Рассмотрим случай, когда печать комплекта документов (например, ТОРГ-12 + Счет-фактура) работает вдвое медленнее. Это подтверждает гипотезу о том, что каждый вызов печатной формы инициирует полный цикл проверки прав и сбора данных. Если у вас используются внешние печатные формы, они могут содержать неоптимизированные запросы.
Посмотрим на пример логики, которая может вызывать задержку, если в коде жестко прописаны параметры или происходит тяжелая выборка:
Процедура ПечатьТОРГ12(МассивОбъектов) Экспорт
// Здесь происходит формирование запроса
// Если запрос обращается к «тяжелым» виртуальным таблицам
// регистров без должной фильтрации, время ожидания растет
ДанныеДляПечати = ПолучитьДанныеДляПечати(МассивОбъектов);
// Формирование макета
Макет = УправлениеПечатью.МакетПечатнойФормы("ТОРГ12");
// ... дальнейшая логика заполнения
КонецПроцедуры
В процессе работы с данной проблемой рекомендуем двигаться от простого к сложному: сначала очистить кэш и протестировать на локальном диске, затем провести замер производительности для выявления конкретной функции, потребляющей время. Если замер показывает, что 90% времени уходит на выполнение запросов к базе данных, значит, проблема лежит в плоскости производительности системы управления базами данных или структуры самих регистров, а не в настройках печати.