Почему скорость работы Справочной функции SprFindObj при поиске номера организации, к примеру по ИНН, в сотни раз медленнее аналогичного запроса через функцию Look Up? При этом работа функции SprFindObj сопровождается мерцанием экрана. Тестировалось в версии 3.0721SP5 при формате баз Btrieve и MS SQL. Справочник организаций нового формата -с поддержкой историчности атрибутов. Прилагаю тестовую СБД демонстрирующую впечатляющую разницу в скорости.
Спасибо за хорошо поставленный вопрос.
Замедление, в основном, происходит из-за того самого мерцания экрана. На самом деле это просто отображение и удаление окна с сообщением "Подождите" в каждом вызове функции SprFindObj. В тестовом примере в цикле выполняется 100 вызовов SprFindObj, поэтому 100 окошек "Подождите" создается и удаляется. На каждом поиске теряется доля секунды, которая на множестве записей превращается в ощутимую задержку.
---
Конечно, если ведется пакетная обработка множества организаций, то это окно "Подождите" желательно не выводить. В список параметров вызова SprFindObj будет добавлен еще один, который, если равен 1, будет подавлять отображение окошка "Подождите". Кроме того, будет оптимизирован конкретно поиск по ИНН. Эта доработка будет включена в ближайшее обновление ПК Абакус.