Каретка неожиданно прыгнула на 200 строк выше (2 видимой высоты области модуля) того места, в котором была примерно в 12.09.25 15:42:55. Происходит это регулярно и уже много месяцев. Каждый день по несколько раз. Не критично, но достаточно заметно и иногда неприятно, т.к. теряешь место в модуле.
Ссылка скрыта


Заодно обрати внимание на событие (похоже некорректно пишется)
[12.09.25 15:42:29:899] OnFocusChange() title=Поиск объектов метаданных, fg=2439960
ъектов метаданных,curFg=2439960
#1, ред. 12 сентября 2025 16:06
Мы же это проходили уже, скорее всего из-за бага платформы прыгает.
#2, 12 сентября 2025 16:07
(1) bolsun, Насколько я помню было несколько причин прыжков каретки. И для всех было найдено какое приемлемое решение. Во всяком случае помню длительный период, когда я их практически не замечал. Сейчас же они происходят затемно чаще. Считаю, что есть смысл заново осмотреть этот функционал (обходные маневры и т.д.)
#3, ред. 12 сентября 2025 16:11
(2) tormozit, Вот заявки по тем прыжкам каретки
https://turboconf.ru/Tasks/8913
https://turboconf.ru/Tasks/8986
https://turboconf.ru/Tasks/9773
#4, 12 сентября 2025 16:11
(2) tormozit, перед тем как позиция поменялась, фокус был в окне другого приложения ASticky
#5, 12 сентября 2025 16:14
(4) bolsun, нет. Вот ближайшие к моменту события активации окна ASticky.
Строка 1089932: [12.09.25 14:23:26:406] OnMouseDown , fg = 264152, title = ASticky: 8213724E0048C4
Строка 1212510: [12.09.25 15:44:26:929] OnFocusChange() title=ASticky: 8213724E0048C4, fg=264152
А момент прыжка - 12.09.25 15:42:55, т.е. перед ним активации этого окна не было.
#6, 12 сентября 2025 16:17
(1) bolsun, та ошибка платформы давно уже исправлена. Подробнее тут https://turboconf.ru/Tasks/8986
#7, 12 сентября 2025 16:21
(5) tormozit, как ты определил момент прыжка? какое точное время?
#8, ред. 12 сентября 2025 16:22
(7) bolsun, я сразу прекратил нажатия клавиш и клики и движения мыши и ждал так минуту
#9, 12 сентября 2025 16:24
(8) tormozit, что за клавиша F21 фигурирует перед этим?
#10, 12 сентября 2025 16:25
На Ctlr+C ничего не навешано, макрос какой-нибудь?
#11, ред. 12 сентября 2025 16:27
(9) bolsun, это виртуальная клавиша, на которой у меня давно висит макрос, включающий вызов команды скрипта "Перейти к определению" CTRL+F12 https://turboconf.ru/Tasks/7529
#12, 12 сентября 2025 16:27
(10) bolsun, нет
#13, 12 сентября 2025 16:28
(11) tormozit, Эта клавиша была нажата непосредственно перед прыжком каретки. за пару сотен мс.
#14, 12 сентября 2025 16:30
Почему-то было выполнено Ctrl+C после этого.
#15, ред. 12 сентября 2025 16:38
#16, 12 сентября 2025 16:34
Переход к определению похоже сработал.
#17, ред. 12 сентября 2025 16:38
(15) bolsun, У меня лог выглядит немного не так (твой markdown парсер прячет куски лога)
А фрагмент "await = F21" встречается в огромном числе событий нажатия других клавиш. Что это значит?
#18, ред. 12 сентября 2025 16:41
(16) bolsun, я бы это заметил. Вот пример как в логе выгляди вызов нажатия клавиши F21
#19, 12 сентября 2025 16:41
(18) tormozit, куда перейдет каретка если выполнить переход к определению на мПлатформа в начальной позиции?
#20, 12 сентября 2025 16:42
(19) bolsun,
#21, 12 сентября 2025 16:43
(20) tormozit, нет, без ИР, штатная
#22, 12 сентября 2025 16:44
(21) bolsun, в начало модуля

#23, 12 сентября 2025 16:46
(17) tormozit, await = F21 не имеет отношения к делу, это пишется устаревшая неочищенная информация после выполнения предыдущего скрипта.
#24, 12 сентября 2025 16:48
Я не вижу какого-то причастия ТК к перемещению каретки.
А вот Ctrl+OemMinus присутствует в непосредственной близости перед скачком, так может не все исправили.
#25, 12 сентября 2025 16:51
Либо еще теория.
Скачок произошел после нажатия Ctrl+C, возможно это убрало какую-то блокировку буфера, из-за его обновления.
И сработал какой-то предыдущий заблокированый скрипт.
#26, 12 сентября 2025 16:51
Либо еще теория.
Скачок произошел после нажатия Ctrl+C, возможно это убрало какую-то блокировку буфера, из-за его обновления.
И продолжился какой-то предыдущий заблокированный скрипт.
#27, 12 сентября 2025 16:52
(24) bolsun, Подскажи как найти нажатие Ctrl+OemMinus
#28, ред. 12 сентября 2025 16:56
поищи в полном логе аномально большое время выполнения скрипта
Замер: Время выполнения скрипта ИРАдаптер->ПерейтиКОпределению:
скорее всего уже после прыжка.
#29, ред. 12 сентября 2025 16:57
(27) tormozit,
#30, 12 сентября 2025 16:58
но скорее всего проблема связана с буфером и подвисанием скрипта
#31, 12 сентября 2025 16:59
я правильно понимаю, что ты сам не нажимал Ctrl+С?
#32, ред. 12 сентября 2025 17:03
(28) bolsun, Все короткие. А после прыжка уже нет их.
#33, ред. 12 сентября 2025 17:05
(31) bolsun, нажимал. Я выделил пару строк текста и нажал CTRL+C. И они попали в буфер в 15:42:59
#34, ред. 12 сентября 2025 17:13
Я не вижу какую-то причастность ТК к прыжку, единственный пока способ проверить это поработать без него. Раз проблема частая, то возникнет в течении дня (или не возникнет).
Может платформа и себе буфер блокирует, раз Ctrl+C вызвало какое то действие в конфигураторе.
Например буфер освободился и выполнилось подвисшее Ctrl+OemMinus
#35, 12 сентября 2025 17:15
Кстати взаимные блокировки двух конфигураторов я вчера вроде бы ловил, при помещении в буфер большого объекта в одном конфигураторе, фризился интерфейс в другом.
#36, 12 сентября 2025 17:20
Буду собирать еще логи. Может быть увидим что то общее. Но нажатие Ctrl+OemMinus выглядит наиболее перспективным направлением поиска.
#37, ред. 13 сентября 2025 18:51
Сейчас более четко отследил, что прыжок произошел, когда я зажал CTRL в 13.09.25 18:38:01. Затем случилась прокрутка видимой области и я уже кликнул в неожиданном месте модуля.
Ссылка скрыта
Еще часто вижу автосохранение текстов модулей там рядом. Я его включил несколько месяцев назад. Примерно тогда же и стал замечать увеличение частоты таких прыжков. Возможно тут есть связь.
Еще в этот раз не видно нажатия CTRL+OemMinus перед прыжком.
#38, ред. 13 сентября 2025 21:19
Появилась еще идея. Возможно при зажатом CTRL каким то образом прокручивается колесо мыши. Можешь добавить логирование прокрутки колеса с зажатым CTRL - довольно редкое событие?
#39, 13 сентября 2025 20:23
(37) tormozit, автосохранение вряд ли причастно к этому, оно работает в отдельном потоке и не использует интерактивных методов.
#40, 13 сентября 2025 20:31
(38) tormozit, прыжки происходят на размер видимой области?
#41, ред. 13 сентября 2025 21:12
(40) bolsun, больше чем высота одной области. Один раз это было >200 строк, а видимая область у меня 70 строк.
В (37) прыжок был тут между опусканием CTRL и OnMouseDown
#42, 13 сентября 2025 21:20
(41) tormozit, Не вижу каких то общих для обоих случаев деталей.
Буду теперь внимательнее смотреть в сторону гипотезы (38) специфичной для моей мыши с инерционным колесом.
#43, 13 сентября 2025 21:24
(42) tormozit, добавил логирование всех прокруток колеса мыши (не только с Ctrl)
6.4.9387.42064
https://disk.yandex.ru/d/XRPUNWQtrbwBUw
#44, 13 сентября 2025 21:25
(43) bolsun, я колесо без CTRL кручу очень часто. Поэтому думаю будет слишком много мусорных событий.
#45, 13 сентября 2025 21:26
(44) tormozit, главное поймать это событие, потом уберем. Мы рискуем не отследить его, если Ctrl будет уже отжат в тот момент.
#46, 13 сентября 2025 21:27
(45) bolsun, понял
#47, ред. 15 сентября 2025 08:35
Здесь прокрутка видимой области модуля возникла из-за работы фонового метода ЗапомнитьМетод() скрипта.
[15.09.25 08:22:07:105] Запомнить метод 307 мс
Ссылка скрыта
Хотелось бы понять, можно ли избежать такого эффекта, который по всей видимости возникает при вызове ТурбоКонф.ИдентифицироватьТекущийДокумент()?
Но в других случаях этот метод не участвовал в прокрутке.
#48, ред. 15 сентября 2025 15:12
(38) tormozit, гипотеза с прокруткой колеса мыши подтверждена как основная для большинства случаев. Я часто удержимаю CTRL, чтобы выделять слова кликом. При этом изредка случается поворот колеса мыши на один шаг. Если после этого явно прокрутить на один шаг обратно с зажатым CTRL (угадать направление), то старое место попадает в видимую область модуля.
#49, 15 сентября 2025 15:14
Причина (47) случается реже чем (48) и ее думаю можно попробовать исправить в программе.
#50, 15 сентября 2025 15:36
(49) tormozit, не понимаю как я могу исправить прокрутку окна конфигуратора. Попробуй заменить мышь.
#51, 15 сентября 2025 15:40
(48) tormozit, какая взаимосвязь между нажатием к Ctrl и срабатыванием колеса мыши?
#52, 15 сентября 2025 15:46
(50) bolsun, я не просил исправлять аппаратную проблему прокрутки колеса мыши. Я просил подумать над другой причиной (47) - там про прокрутку при вызове ТурбоКонф.ИдентифицироватьТекущийДокумент(). Там нет событий OnMouseWheel.
#53, 15 сентября 2025 15:47
(51) bolsun, никакой. Просто при зажатом CTRL эффект от случайного поворота колеса значительно заметнее, т.к. при этом шагание выполняется страницами.
#54, ред. 15 сентября 2025 15:54
(49) tormozit, прокрутка при вызове метода ИдентифицироватьТекущийДокумент происходит, из-за вызова Ctrl+OemMinus в дереве конфигурации, после Ctrl+T, что возвращает предыдущую позицию в модуле (с прокруткой).
Если ты до этого прокрутил модуль, то видимая область изменится.
Можно попробовать использовать Escape для возврата, но не знаю какие побочки могут возникнуть и почему я раньше остановился на Ctrl+OemMinus я уже не помню.
#55, 15 сентября 2025 16:11
(54) возврат через Esc не всегда возвращает фокус в предыдущее окно, например не возвращает для прикрепленного документа.
#56, ред. 15 сентября 2025 16:17
(55) для свободного также не возвращает, поэтому Ctrl+OemMinus - единственный более менее надежный метод.
#57, ред. 15 сентября 2025 16:27
Эта проблема в основном актуальна только, если ИдентифицироватьТекущийДокумент вызывается в фоне, в других случаях обычно этот вызов происходит принудительно (вызовом команды, редактированием модуля и т.д.).
Могу попробовать добавить в API тип последнего события ввода, если он будет OnMouseWheel, то ты не будешь вызывать идентификацию метода.
#58, 15 сентября 2025 16:27
А ты можешь понять, находится ли каретка в видимой области модуля?
#59, 15 сентября 2025 16:32
(57) bolsun, Идея с отслеживанием OnMouseWheel интересная, но одной штуки этого события недостаточно для принятия такого решения. Тогда нужно будет копить суммарный поворот от последней установки текущей позиции каретки в тексте.
#60, 15 сентября 2025 17:04
(58) tormozit, теоретически - да.
#61, ред. 15 сентября 2025 17:08
(60) bolsun, Если при твоем отслеживании модуль не будет прокручиваться, то это будет неплохое решение проблемы. Тогда можно добавить в список свойств состояния "КареткаВидна". Если там Ложь, я не буду в фоне разбирать и запоминать текущий метод.
#62, 16 сентября 2025 13:08
логирование OnMouseWheel отключаю?
#63, 16 сентября 2025 13:11
(62) bolsun, да. Скорее всего в нем нет больше смысла.
#64, 23 декабря 2025 23:17
Больше необъяснимых прыжков каретки не наблюдал.
tormozit изменил статус на Закрыто