Хотел ввести слово "Если" в только что открытом модуле управляемой формы во внешней обработке
&НаСервере
Процедура Команда1НаСервере()
Е
КонецПроцедуры
При этом фокус ввода переместился в панель конфигурации и там открылся список подсказки. А должен был активировать окно внешней обработки, скопировать там форму и вернуться в окно модуля и там показать список подсказки.
Ссылка скрыта
Предположительно происходит это в давно не менявшемся методе скрипта
Процедура ОбновитьСтруктуруФормы(Знач ПолеТекстаПрограммы) Экспорт
ТекстСтруктурыФормы = "";
ТурбоКонф.КонтролКлавиша(Клавиши.T);
ТурбоКонф.КонтролКлавиша(Клавиши.C);
МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
Пока ТекущаяУниверсальнаяДатаВМиллисекундах() - МоментНачала < 200 Цикл
ТурбоКонф.Ждать(50);
Попытка
ОписаниеФормы = ТурбоКонф.ПолучитьБуферОбмена("1C:MD8 Data");
Исключение
ОписаниеФормы = "";
КонецПопытки;
Если ПолеТекстаПрограммы.ПроверитьОписаниеФормыИзБуфераОбмена(ОписаниеФормы) Тогда
ТекстСтруктурыФормы = ТурбоКонф.ПолучитьБуферОбмена("1C:MD8 External Data");
Прервать;
КонецЕсли;
КонецЦикла;
ТурбоКонф.КонтролКлавиша(Клавиши.OemMinus);
Сообщить("СтруктураФормы=" + Лев(ТекстСтруктурыФормы, 1000));
Попытка
ПолеТекстаПрограммы.УстановитьСлужебныеДанныеФормы(ТекстСтруктурыФормы);
Результат = Истина;
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
Если Не ЗначениеЗаполнено(ТекстСтруктурыФормы) Тогда
ТурбоКонф.ПоказатьВсплывающееУведомление(НазваниеСкрипта(), "Сделайте форму видимой в дереве конфигурации, чтобы анализ модуля мог получить ее новую структуру", 4000);
КонецЕсли;
КонецПроцедуры
#1, ред. 08 марта 2024 10:51
Проверил на версии 6.0
Там этот сценарий корректно отрабатывает.
Для информации. Чтобы каждый раз срабатывал вызов ОбновитьСтруктуруФормы() нужно каждый раз переименовывать форму.
Ссылка скрыта
#2, 08 марта 2024 13:26
Воспроизвел с включенным флагом "Закрывать окно DDE Server", без него такого не происходит. Значит закрытие окна как-то влияет.
#3, 08 марта 2024 13:30
Окно "DDE Server" не может открываться в этом сценарии. Значит проблема в коде, который его ищет.
#4, 08 марта 2024 13:36
(3) tormozit, похоже совпадение, т.к. без флага тоже воспроизвелось.
#5, ред. 08 марта 2024 13:51
Значит дело в самом скрипте и опции "Всегда показывать подсказку T9 вместо штатной".
Т.к. в данном сценарии с переименованием формы и на версии 6.0 подсказка работает некорректно (не показывается).
Только для этого нужно вызывать подсказку после точки.
Просто раньше в этом случае чаще вызывалась штатная, поэтому проблема была незаметна.
#6, 08 марта 2024 13:56
Еще раз прикладываю лог с версии 6.0 где скрипт работает корректно с вызовом после точки
Ссылка скрыта
#7, ред. 09 марта 2024 09:00
(6) tormozit, у меня не работает данный пример и на 6.0. Поэтому я говорю, что проблема не в 6.1.
Вообще я не предполагал, что в обработчике ПриПолученииДанныхТ9 будет какое-то интерактивное взаимодействие с нажатиями клавиш.
Я не отжимаю модификаторы перед вызовом обработчиков, т.к. возможны залипания. Ты вызываешь Ctrl+C , но в это время зажат шифт поэтому фокус уходит в дерево конфигураций.
#8, ред. 09 марта 2024 09:09
Точнее, модификаторы не отжимаются именно когда флаг "Всегда показывать подсказку T9" включен, т.к. там сразу идет вызов подсказки, без симуляции Ctrl+Space и т.д.
В примере с Если в 6.0 происходит вызов штатной подсказки, поэтому фокус не уходит в дерево конфигурации. Но если набирать после точки, когда штатной нет, то у меня также начинаются подобные проблемы из-за шифта.
Можно попробовать добавить отжатие и обратное дожатие Shift при флаге "Всегда показывать подсказку T9", но нужно смотреть, будут ли залипания.
#9, ред. 09 марта 2024 09:18
Если причина проблемы только в CTRL+C, то можно сделать быстрое копирование через нажатие кнопки в панели инструментов при ее наличии. Для этого можно добавить в API функцию КопироватьВБуфер, которая закэширует нужную кнопку панели инструментов и поэтому будет быстро жать ее.
#10, 09 марта 2024 09:19
(9) tormozit, не только в этом, ты там нажимаешь Ctrl+T, Ctrl+OemMinus они тоже не будут работать правильно. Поэтому скорее всего проблему решит, только отжатие шифт.
#11, 09 марта 2024 09:21
Кстати из-за зажатого шифта не только в дерево уходит, но и шаблоны еще открываются из-за Ctrl+Shift+T
#12, 09 марта 2024 17:21
В версии 6.1.8834.34570 добавил отжатие шифт
https://disk.yandex.ru/d/XKCz9ijzgtoO1w
#13, 09 марта 2024 17:33
Проверил. Работает.
tormozit изменил статус на Закрыто