У скрипта есть флаг retain_clipboard . Но в моем скрипте десятки команд. У одних нужно восстанавливать буфер обмена (например "ИР ОтладитьОбъект"), а у других нельзя. Пытался самостоятельно сделать восстановление буфера обмена в нужных командах.
СтароеЗначениеБуфераОбмена = ТурбоКонф.ПолучитьБуферОбмена(); ... ТурбоКонф.УстановитьБуферОбмена(СтароеЗначениеБуфераОбмена);
Но при его использовании затем часто возникает ошибка чтения значения из буфера обмена, например при вызове той же команды. Поэтому в итоге пришлось отключить это восстановление.
Как правильно восстанавливать значение?
#1, 17 ноября 2023 19:41
Добавлена аннотация для команд скрипта &ВосстанавливатьБуферОбмена / &RetainClipboard
bolsun изменил статус на Закрыто
#2, ред. 17 ноября 2023 21:32
С Аннотациями есть небольшая проблема. В моем редакторе скриптов они вызывают ошибку проверки модуля скрипта. Может просто особый комментарий перед методом добавлять?
tormozit изменил статус на Открыто
#3, ред. 17 ноября 2023 21:48
(2) tormozit, можно добавить перед ними символы комментария // и сделать пост обработку при сохранении или загрузке. На сколько я понял ты сохраняешь модуль автоматически во внешний файл, и тогда просто сделать замену в этот момент.
#4, 17 ноября 2023 21:49
Возможность добавления в виде комментария конечно можно добавить, но нужно посмотреть.
#5, ред. 17 ноября 2023 21:51
Преобразования делать пока не планирую, т.к. их тогда надо отдельно программировать в каждую сторону - там и без того хватает забот и костылей. Сейчас я просто вставляю работающий скрипт в модуль и сразу правлю его и аналогично сохраняю обратно.
#6, 27 ноября 2023 18:01
bolsun изменил статус на Закрыто
#7, 01 декабря 2023 08:15
директива
//&ВосстанавливатьБуферОбмена
не полностью решает круг задач этого типа.
Например у меня есть сценарий, где перед модальным открытием некоторого редактора я программно получаю (выделенный) текст из активного элемента через буфер обмена. В таком случае, если пользователь перед вызовом такой команды скопировал в буфер обмена что то с целью затем вставить это в модальном диалоге, то он уже не сможет это сделать без специальных средств типа ClipAngel.
tormozit изменил статус на Открыто
#8, 01 декабря 2023 12:35
(7) tormozit, буфер обычно либо нужно восстанавливать в исходное значение, либо не нужно если скрипт сам что-то помещает в буфер, для дальнейшего использования пользователем.
Аннотация позволяет это настраивать гибко.
#9, 01 декабря 2023 12:37
Или в процессе работы скрипта, есть промежуточные манипуляции с пользовательским буфером?
#10, 01 декабря 2023 16:45
В тестовой версии 6.0.8735.33292 УстановитьБуферОбмена теперь использует более надежный метод, но тем не менее множественные операции с буфером обмена в короткий промежуток времени могут вызывать ошибки.
bolsun изменил статус на Закрыто
#11, ред. 02 декабря 2023 23:41
Директива ВосстанавливатьБуферОбмена часто не срабатывает. Замечал уже много раз это в команде ИР.ПерейтиКОпределению, после выполнения которой в буфере остается текст результата поиска в дереве метаданных.
#12, ред. 02 декабря 2023 23:45
(11) tormozit, если есть множественные операции с буфером обмена, то директиву нужно убрать и восстанавливать самому в конце вызова скрипта.
Улучшенный метод я предоставил.