В точке останова случилась блокировка ввода на 10 секунд

tormozit Открыто

[18.09.25 07:06:30:548] SetClipboard() with id 638937759905489533 has started...
[18.09.25 07:06:30:548] Попытка открыть буфер # 01
...
[18.09.25 07:06:33:888] Warning: TurboConf: Подождите, идет процесс... Клавиатура и мышь временно заблокированы.
Кликов до разблокировки: 3
Разблокировать
...
[18.09.25 07:06:35:183] Warning: TurboConf: Подождите, идет процесс... Клавиатура и мышь временно заблокированы.
Кликов до разблокировки: 2
Разблокировать
...
[18.09.25 07:06:40:597] SetClipboard time = 10047ms

Ссылка скрыта

Комментарии

tormozit
#1, ред. 27 сентября 2025 10:53

Снова случилось. Опять при вызове команды "Вычислить выражение" адаптера.
Ссылка скрыта


bolsun
#2, 27 сентября 2025 11:42

(1) tormozit, зачем ты два раза подряд вызываешь ПолучитьТекстСПозицией?

[27.09.25 10:51:26:790] API:GetTextWithPosition()
[27.09.25 10:51:26:919] API:GetTextWithPosition()

[27.09.25 10:51:26:790] API:GetTextWithPosition()
[27.09.25 10:51:26:790] GetText2()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:790] GetText6()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:790] GetUIAutomationInfo()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:790] GetUIAutomationCachedInfo()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:790] CurrentDocumentRuntimeId=
[27.09.25 10:51:26:808] curFg=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация, curFg=3151046
[27.09.25 10:51:26:808] controlType: документ
[27.09.25 10:51:26:808] name: 
[27.09.25 10:51:26:822] Delay 2000 ms
[27.09.25 10:51:26:825] text.Length=1174909
[27.09.25 10:51:26:826] selectedRange.Length=1
[27.09.25 10:51:26:843] result.CurrentRangeText.Length=641920
[27.09.25 10:51:26:843] result.Position=641920
[27.09.25 10:51:26:843] doc.Position = 641920
[27.09.25 10:51:26:843] CurrentDocumentRuntimeId=42 3151046 4 1691026236
[27.09.25 10:51:26:843] Set LastDocument for pid=53292 42 3151046 4 1691026236
[27.09.25 10:51:26:843] Set SetLastElement for wnd=3151046
[27.09.25 10:51:26:843] GetUIAutomationCachedInfo() 53ms, total calls 30902
[27.09.25 10:51:26:843] T9CurrentControlType=документ
[27.09.25 10:51:26:884] Получение текста (1174909 знаков) элемента интерфейса 94 мс
[27.09.25 10:51:26:885] GetUIAutomationControlType()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046
[27.09.25 10:51:26:890] CurrentLocalizedControlType: 50030
[27.09.25 10:51:26:890] GetUIAutomationControlType(): 50030, 5ms
[27.09.25 10:51:26:891] GetUIAutomationControlType()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046
[27.09.25 10:51:26:904] CurrentLocalizedControlType: 50030
[27.09.25 10:51:26:904] GetUIAutomationControlType(): 50030, 13ms
[27.09.25 10:51:26:904] GetUIAutomationControlType()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046
[27.09.25 10:51:26:919] CurrentLocalizedControlType: 50030
[27.09.25 10:51:26:919] GetUIAutomationControlType(): 50030, 15ms
[27.09.25 10:51:26:919] API:GetTextWithPosition()
[27.09.25 10:51:26:919] GetText2()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:919] GetText6()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:919] GetUIAutomationInfo()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:919] GetUIAutomationCachedInfo()... title=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация,curFg=3151046,fg=3151046
[27.09.25 10:51:26:919] CurrentDocumentRuntimeId=
[27.09.25 10:51:26:934] curFg=[КА1 серверная] - Обработка ирКлсПолеТекстаПрограммы: Модуль объекта - Конфигуратор - КомплекснаяАвтоматизация, curFg=3151046
[27.09.25 10:51:26:934] controlType: документ
[27.09.25 10:51:26:934] name: 
[27.09.25 10:51:26:947] text.Length=1174909
[27.09.25 10:51:26:948] selectedRange.Length=1
[27.09.25 10:51:26:954] Delay 2000 ms
[27.09.25 10:51:26:957] result.CurrentRangeText.Length=641920
[27.09.25 10:51:26:957] result.Position=641920
[27.09.25 10:51:26:957] doc.Position = 641920
[27.09.25 10:51:26:957] CurrentDocumentRuntimeId=42 3151046 4 1691026236
[27.09.25 10:51:26:957] Set LastDocument for pid=53292 42 3151046 4 1691026236
[27.09.25 10:51:26:957] Set SetLastElement for wnd=3151046
[27.09.25 10:51:26:957] GetUIAutomationCachedInfo() 37ms, total calls 30903
[27.09.25 10:51:26:957] T9CurrentControlType=документ
[27.09.25 10:51:26:996] Получение текста (1174909 знаков) элемента интерфейса 77 мс


bolsun
#3, 27 сентября 2025 11:56

Причина все та же, платформа блокирует установку буфера обмена.

[27.09.25 10:51:27:633] SetClipboard() with id 638945670876332669 has started...
[27.09.25 10:51:27:633] Попытка открыть буфер # 01
...
[27.09.25 10:51:38:449] SetClipboard time = 10816ms
[27.09.25 10:51:38:449] SetClipboard() with id 638945670876332669 has finished...

Скорее всего это происходит из-за установки значения поля ввода без ожидания.

УстановитьЗначениеПолюВвода

В этот же момент скрипт завершается и происходит восстановление буфера.

Добавь хотя бы 20мс

ТурбоКонф.УстановитьЗначение(Текст);
ТурбоКонф.Ждать(20);


tormozit
#4, 27 сентября 2025 16:17

(2) bolsun, Один из вызовов ПолучитьТекстСПозицией() был избыточным. Сейчас устранил его.


tormozit
#5, 27 сентября 2025 16:32

(3) bolsun, Не смог понять, как установка значения в поле ввода связана с буфером обмена. Я вызываю ТурбоКонф.УстановитьЗначение(). Разве этот метод использует буфер обмена?


tormozit
#6, 27 сентября 2025 16:35

(3) bolsun, И задержка там есть.

Процедура УстановитьЗначениеПолюВвода(Знач Текст, Знач ЗавершитьВвод = Истина, Знач КлавишаВременнойДобавки = Неопределено) Экспорт
	ТурбоКонф.УстановитьЗначение(Текст);
	ВключитьМодифицированностьПоляВвода(ЗавершитьВвод, КлавишаВременнойДобавки);
КонецПроцедуры

Процедура ВключитьМодифицированностьПоляВвода(Знач ЗавершитьВвод = Истина, Знач КлавишаВременнойДобавки = Неопределено) Экспорт
	ТурбоКонф.Клавиша(Клавиши.End);
	Если КлавишаВременнойДобавки = Неопределено Тогда
		КлавишаВременнойДобавки = Клавиши.D0; // Раньше был пробел, но в числах он не вводится
	КонецЕсли;
	ТурбоКонф.Клавиша(КлавишаВременнойДобавки); 
	ТурбоКонф.Клавиша(Клавиши.Back);
	Если ЗавершитьВвод Тогда
		ТурбоКонф.Клавиша(Клавиши.Enter);
		ТурбоКонф.Ждать(20);
	КонецЕсли;
КонецПроцедуры


bolsun
#7, ред. 27 сентября 2025 16:43

(5) tormozit, в момент работы с UIAutomation платформа не может работать с буфером, вроде уже писал про это. Поэтому установка значения без ожидания, с последующей установкой буфера, может приводить к блокировке буфера.


bolsun
#8, 27 сентября 2025 16:46

(7) опять же это только предположение, что именно это приводит к блокировке буфера. Это одна из возможных причин.


bolsun
#9, ред. 27 сентября 2025 17:13

Что происходит в конфигураторе после установки значения, ты нажимаешь Enter. Конфигуратор выполняет что-то, вычисляет выражение как я понял?


tormozit
#10, ред. 27 сентября 2025 17:15

(9) bolsun, последняя установка текста в поле ввода в этой команде делается с целью вернуть ему исходное состояние, т.е. установить туда то же выражение, которое у него было при открытии окна "Выражение". Затем после нажатия ENTER конфигуратор фоново вычисляет значение выражения (уже второй раз).


bolsun
#11, ред. 27 сентября 2025 17:22

(10) tormozit, т.к. скрипт не дожидается завершения этих действий и восстанавливает буфер, то это возможно и является причиной блокировки буфера. Добавь какую-то проверку (окном поиска например), на завершение всех вычислений.


bolsun
#12, 27 сентября 2025 17:24

А зачем ты вообще буфер восстанавливаешь для этой команды, вроде не вижу там использование буфера?


tormozit
#13, ред. 27 сентября 2025 17:47

(12) Видимо раньше буфер использовался. Сейчас я тоже бегло не нашел и пробно отключил флаг восстановления буфера.
(11) Добавил в код такой комментарий на будущее.


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера