При работе в программах 1С пользователи часто сталкиваются с ситуацией, когда прикрепление небольшого документа формата PDF (размером 2–3 МБ) к справочнику или документу занимает несколько минут. При этом сервер приложений и СУБД не загружены, сеть работает без задержек, а остальные операции выполняются за считанные секунды.
Рассмотрим детально причину возникновения этой проблемы, проанализируем результаты замера производительности и разберем по шагам варианты устранения задержек.
Для поиска узкого места выполним Замер производительности в конфигураторе 1С при прикреплении файла. Проанализировав результаты замера, можно обнаружить, что до 95% времени выполнения операции уходит на следующую строку кода в общем модуле ФайловыеФункцииСлужебныйКлиентСервер:
// Извлечение текста из прикрепляемого файла
ИзвлеченныйТекст = Извлечение.ПолучитьТекст();
По умолчанию при загрузке нового файла программа сразу пытаются распознать и извлечь из него текстовую информацию для обеспечения работы полнотекстового поиска. Механизм платформы ИзвлечениеТекста в операционных системах Windows опирается на системный интерфейс IFilter.
Выделим основные технические причины, из-за которых метод ПолучитьТекст() может выполнять операцию несколько минут:
dllhost.exe.Самый эффективный способ вернуть высокую скорость работы пользователей — перенести процедуру распознавания текста из интерактивного сеанса в фоновое задание. В этом случае файл прикрепляется мгновенно, а извлечение текста выполняется асинхронно на сервере.
Разберем по шагам настройку этой функции:
После включения этой опции метод Извлечение.ПолучитьТекст() перестанет вызываться синхронно в момент добавления файла, и пользователь сможет продолжать работу без задержек.
Если в вашей организации не используется полнотекстовый поиск по содержимому прикрепленных сканов и PDF-документов, эту функцию можно полностью отключить для данного формата файлов.
Проанализируем порядок действий:
pdf из списка обрабатываемых форматов.Если извлечение текста должно происходить непосредственно в момент загрузки, необходимо настроить системные компоненты серверов и рабочих станций:
rphost.exe для 64-разрядного сервера 1С или 1cv8.exe для 32-разрядного клиента).Temp), каталог кластера 1С, а также процессы платформы rphost.exe и 1cv8.exe.