Вставка блока 2000мс

tormozit Закрыто

Сейчас 2 раза не подряд. При вставке текста из окна редактора текста ИР функция вставки блока выполнялась 2000мс.

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

Комментарии

bolsun
#1, ред. 27 апреля 2024 15:26

В процессе выполнения вставки происходит более 100 запросов к UIAutomation

Постоянно меняется фокус
[27.04.24 15:12:29:102] -------------------------------------------UIAutomation Focus Changed = В подзапрос
[27.04.24 15:12:29:110] -------------------------------------------UIAutomation Focus Changed = Панель пакета (0/1)
[27.04.24 15:12:29:117] -------------------------------------------UIAutomation Focus Changed = ТипыКонтроляСовместимостейТ.ПредметИсточникаДанных2 Выбранное поле
[27.04.24 15:12:29:124] -------------------------------------------UIAutomation Focus Changed = ОК
[27.04.24 15:12:29:134] -------------------------------------------UIAutomation Focus Changed = ТипыКонтроляСовместимостейТ.ПредметИсточникаДанных2 Выбранное поле
[27.04.24 15:12:29:137] -------------------------------------------UIAutomation Focus Changed = Панель пакета (0/1)
и т.д.

Если раньше работало, то смотри, что менял в скрипте.


tormozit
#2, 27 апреля 2024 15:41

(1) bolsun, Проблема старая. Просто когда то давно так случалось каждый раз. Потом ты что то подкрутил и стало происходить лишь иногда.
100 раз фокус вроде бы не страшно. В твоем фрагменте это все элементы формы конструктора запросов ИР. После нажатия в этой форме CTRL+ENTER и ее закрытия, я в скрипте сразу вызвал функцию Турбоконфа и она 2000мс что то делала перед вставкой.


bolsun
#3, 27 апреля 2024 15:42

(2) tormozit, не перед вставкой, а это все происходит во время вставки.


bolsun
#4, 27 апреля 2024 15:46

Сначала отправляется Ctrl+V и сразу же активируется клиентское приложение и начинается быстрая смена фокуса более 100 раз за 400мс, затем продолжается попытка вставки.


bolsun
#5, ред. 27 апреля 2024 15:49

Нет, даже в клиентское не уходит вроде. В конфигураторе уже все это происходит.


bolsun
#6, ред. 27 апреля 2024 15:54

Нужно выяснить причину смены фокуса 100 раз за 400 мс сразу после вызова ВставитьТекст() .
При таком поведении фокуса, нет смысла говорить о корректной работы функции.

Может есть какие-то действия дальше в скрипте, которые начинаются не дожидаясь завершения вставки.


tormozit
#7, ред. 27 апреля 2024 19:07

(6) bolsun, пока у меня нет идей. Вызывалась оба раза функция РедактироватьТекст() ИР адаптера. Вот ее конец

	МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
	ТурбоКонф.ВставитьТекст(ТекстВставки); 
	Сообщить("Вставка блока " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - МоментНачала) + "мс");
		ВыделениеОдномерное = ПолеТекстаПрограммы.ПолеТекста.ВыделениеОдномерное();
		ТурбоКонф.ВыделитьТекст(ВыделениеОдномерное.Начало - 1, ВыделениеОдномерное.Конец - 1);

Но он выполняется уже после закрытия окна редактора текста приложения ИР. Поэтому не понимаю как я тут на фокус как то мог повлиять.


tormozit
#8, 27 апреля 2024 19:08

(4) bolsun, CTRL+V напоминаю вызывается для сохранения границ выделения в истории редактирования

Процедура СохранитьГраницыВыделенияДляОтмены()
	
	ВыделенныйТекст = ""; 
	Пустышка = 0;
	Начало = 0;
	Конец = 0;
	//ТурбоКонф.ПолучитьТекстДокумента(ВыделенныйТекст, Пустышка, Начало, Конец);
	//ТурбоКонф.ВставитьТекст(ВыделенныйТекст + " ");
	//ТурбоКонф.Клавиша(Клавиши.Back);
	////ТурбоКонф.ВыделитьТекст(Начало, Конец); // Почему то вызывает прокрутку окна чтобы выделенный диапазон стал в самый низ https://turboconf.ru/Tasks/8888
	ТурбоКонф.КонтролКлавиша(Клавиши.C);
	ТурбоКонф.КонтролКлавиша(Клавиши.V); // Опасно! Если выделенный текст пустой, то вставится текущее содержимое буфера обмена
	
	// Ждем завершения операции конфигуратора с буфером обмена
	
	// Способ 1
	ТурбоКонф.Ждать(200);   
	
	// Способ 2
	// Глючит https://turboconf.ru/Tasks/9302
	//ТурбоКонф.КонтролКлавиша(Клавиши.F);
	//ТурбоКонф.ОткрытьЗакрытьОкно("Поиск", 2000);
	
КонецПроцедуры


bolsun
#9, 27 апреля 2024 23:39

(8) tormozit, я про Ctrl+V, которое отправляет метод ВставитьТекст()


bolsun
#10, 06 мая 2024 23:48

Возможно исправлено в текущей тестовой.
bolsun изменил статус на Закрыто


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