Уже много раз замечал что чем дальше от начала модуля тем дольше окно автодополнения (Т9) открывается. При этом код скрипта вместе с кодом 1С отрабатывает за одинаковое время, судя по замерам из служебных сообщений - 70мс. А по наблюдению в приведенном тесте на строке с номером 20000 видно что открывается примерно за 500мс.
Ссылка скрыта
Ссылка скрыта
Вот тот же тест в начале модуля - примерно в 5 раз быстрее и наблюдение примерно соответствует длительности из служебных сообщений.
Чем может быть обусловлено такое замедление?
#1, ред. 27 апреля 2025 17:31
Нашел похоже этот фрагмент в логе
Ссылка скрыта
В нем есть строка, выводимая Турбоконфом:
Что примерно соответствует наблюдению. Но в служебных сообщениях не видно этой строки.
А в быстром тесте (в начале модуля) вижу в логе строку
#2, 27 апреля 2025 17:34
Проблема очевидно тут
Те самые 400мс
#3, 27 апреля 2025 18:20
При нажатии точки происходит проверка на появление штатной подсказки, на больших модулях это занимает больше времени, особенно если подсказка не появляется.
Т.к. я не проверяю, отключена ли опция вызывать подсказку после точки в конфигураторе или нет, я проверяю ее появление всегда. Даже если включена опция всегда показывать подсказку T9 вместо штатной.
Если будешь сохранять этот признак в значениях сеанса, то могу пропускать такую проверку.
#4, 27 апреля 2025 18:23
Я давно уже сохраняю такие параметры сеанса
Думал их будет достаточно.
#5, ред. 27 апреля 2025 18:27
(4) tormozit, где здесь флаг конфигуратора "показывать подсказку после точки"?
#6, ред. 27 апреля 2025 18:32
(5) bolsun, эти параметры я всегда устанавливаю одновременно с подавлением штатной подсказки. Могу добавить еще один.
#7, 27 апреля 2025 18:33
(6) tormozit, ты проверяешь этот флаг в последующих сеансах? Вдруг пользователь включит его обратно.
#8, 27 апреля 2025 18:34
Я про этот флаг

#9, ред. 27 апреля 2025 18:40
(7) bolsun, Если коротко, то да, проверяю при подключении новых сеансов.
Подразумевается, что пользователь выключает/включает штатную подсказку через всплывающее уведомление, т.к. это намного удобнее. Если же пользователь напрямую поменяет ее настройки, то скрипт это не увидит до перезапуска конфигуратора или выполнения явной тяжелой проверки с открытием окна настроек. И мы тут не сможем что либо улучшить.
#10, 27 апреля 2025 18:54
(9) tormozit, я могу убрать эту проверку, но возможны ошибки в случае если флаг окажется включенным.
#11, 27 апреля 2025 19:00
(10) bolsun, понял, протестирую эту ситуацию
#12, ред. 27 апреля 2025 19:16
Кстати сама по себе штатная подсказка после точки багнутая (или неоптимизированная) и выполняется очень долго, даже если не вызывается.
Попробуй при отключенном ТК, в большом модуле нажать и удерживать точку в любом месте (кроме комментариев) с включенным флагом и без.
#13, ред. 27 апреля 2025 20:03
(12) bolsun, да, это слабое место у многих подобных механизмов - серию точек не тестируют. Но и реальный пользователь очень редко зажимает точку =) В моем коде кругом есть защита от такого. И в твоем уже тоже. Если говорить про скорость работы штатного анализатора кода конфигуратора в общем, то с учетом выделенных на него скромных трудочасов наверное это нормальная скорость.
#14, 27 апреля 2025 22:24
И думаю имеет смысл вернуть вывод события "Ощеее время T9" в служебные сообщения, чтобы мне было легче контролировать этот показатель. Ну и заодно опечатку в нем поправить хорошо бы.
#15, ред. 29 апреля 2025 13:35
6.4.9250.27909
https://disk.yandex.ru/d/HalnaWbUugl0Cw
Версия без проверки появления подсказки после точки. В случае включенной в конфигураторе подсказки, будут возникать всевозможные ошибки.
#16, 29 апреля 2025 15:45
(15) bolsun, Теперь реакция стала очень быстрой. Позже еще буду делать тесты с нетипичными настройками.
#17, ред. 01 мая 2025 08:36
Проверил работу с включенным флажком подсказки после точки в настройках конфигуратора.
Действительно в таком режиме после точки вставляется служебный символ и если продолжить писать после этого символа, то подбор оптимального элемента списка ожидаемо не происходит.
Также ожидаемо не считывается значение этого флажка до перезапуска конфигуратора.
Поэтому скрипт узнать о его изменении в этом время не может.
Прошу в Турбоконфе при появлении окна штатной подсказки при включенном флаге T9AlwaysShowOnCtrlSpace вызывать метод скрипта "ПриПоявленииШтатнойПодсказки". Там я буду показывать уведомление с действием отключения подсказок конфигуратора.