Например хочу добавить кнопку "Общие методы" в окно Турбоконфа "JumpToForm" (Процедуры и функции).
Список команд скрипта ИР адаптер уже довольно большой и искать в нем команды не быстро, особенно если не помнишь как она называется. Одним из способов разгрузить память пользователя от необходимости помнить называния команд является отображение их в наиболее близких по смыслу окнах.
#1, 28 декабря 2024 22:33
Задача не решается таким же методом, что и для окон платформы, т.к. на время отображения окон ТК, все перехваты приостанавливаются, чтобы не приводить к зависанию программы.
Поэтому нужна реализация через добавление настоящих контролов на форму ТК.
bolsun изменил статус на Открыто
#2, 13 января 2025 14:43
6.3.9144.29898
https://disk.yandex.ru/d/ay0Wg6IBTsxSxg
API
Location - координаты кнопки
AddToForm - имя формы
ParentControl - имя родительского элемента
//@button {'Name': 'ButtonTest', 'Text': 'Моя кнопка', 'Hint': 'Показать тестовое уведомление', 'Anchor': 'RightTop', 'Location': '200, 20', 'Width': 80, 'Height': 20, 'AddToForm': 'MethodsForm', 'ParentControl': 'panel1' }
Посмотреть иерархию и имена элементов можно в логе с включенным режимом Отладка (в дальнейшем появится опция для этого).
При нажатии кнопки форма TurboConf будет закрыта и выполнен обработчик.
#3, ред. 13 января 2025 14:50
#4, 13 января 2025 15:19
В панель главного окна так можно будет добавить кнопку?
#5, 13 января 2025 17:47
(4) tormozit,
6.3.9144.35221
https://disk.yandex.ru/d/ay0Wg6IBTsxSxg
API
AddToМаinMenu - true
Ширина кнопки рассчитывается автоматически.
Свойства Width, Height, Location, Offset, Filter и т.д. игнорируются.
#6, 14 января 2025 00:00
Наблюдаются проблемы с вызовом команд при нажатии на эти кнопки, пока не рекомендуется добавлять этот функционал в релиз.
#7, 14 января 2025 00:09
(6) bolsun, речь идет про главное меню.
#8, ред. 14 января 2025 18:49
6.3.9145.30586
https://disk.yandex.ru/d/ay0Wg6IBTsxSxg
В этой версии добавление кнопок в главное меню работает стабильно.
Формат изменился вместо 'AddToMainMenu': 'true' теперь 'AddToMenu': 'main_menu'
Добавлено свойство "DocumentsOnly", кнопка будет доступна для клика только в текстовых документах.
//@button {'Name': 'КнопкаМетоды', 'Text': 'Методы', 'Hint': 'Улучшенные процедуры и функции', 'AddToMenu': 'main_menu', 'DocumentsOnly': 'true' }
#9, 14 января 2025 23:18
В версии 6.3.9145.38066 появилась возможность добавлять команды в главное меню в Настройках, что является предпочтительным методом ,т.к. позволяет пользователю отключать ненужные кнопки.
Единственным на данный момент способом способом добавить команды в меню из скрипта, так чтобы это отразилось в списке скриптов - это изменить файл ScriptSettings.ts
Найти нужную команду и для свойства "HotKeys" задать
"MainMenu": true,
"ButtonText": "Моя кнопка",
"DocumentsOnly": true/false,
И затем перезагрузить скрипты программно.
Тогда пользователь сможет отключить кнопки в дальнейшем или изменить названия.
#10, 14 января 2025 23:19
Поэтому можно предложить пользователю при первом запуске скрипта добавить какие-то команды в меню, и если он соглашается, изменить содержимое файла ScriptSettings.ts и перезагрузить скрипты. кнопки появятся и пользователь сможет управлять ими в дальнейшем.
#11, ред. 14 января 2025 23:51
(8) bolsun, Проверил. Работает. Но в главном меню такая кнопка выглядит как заголовок поля поиска, т.к. не достаточно отделяется от нее визуально. Потому думаю многие просто не поймут что это кнопка.

Поэтому пока оставлю старый вариант

#12, ред. 14 января 2025 23:58
Но мой старый вариант теперь перекроет первую пользовательскую кнопку.
Предлагаю поле поиска сдвинуть вправо, чтобы слева от него была картинка. Тогда слева от него не будет надписи и соответсвенно путаницы. И я свою кнопку сделаю через новую механику.
#13, ред. 15 января 2025 00:00
Кстати пользовательские кнопки кажется тоже не достаточно отделяются визуально (немного сливаются), хотя может это только с первого взгляда.
#14, 15 января 2025 00:03
(13) tormozit, убрал расстояние между кнопками, чтобы больше кнопок могло влезть. Можно добавить пару пикселей между кнопками.
#15, ред. 15 января 2025 00:03
Для теста включил в главное меню случайные кнопки из списка скриптов. И с трудом нашел их потом в списке скриптов чтобы выключить. Кажется что надо в проверяемые фильтром поля добавить заголовок кнопки.
#16, 15 января 2025 00:04
(14) bolsun, да думаю достаточно будет 1-2 пикселя добавить.
#17, 16 января 2025 14:50
(16) tormozit, расстояние между кнопками увеличено в 6.3.9147.29386
#18, 16 января 2025 19:56
Теперь кнопки в главном меню выглядят достаточно четко. Но в других окнах пока не пробовал.
#19, ред. 18 января 2025 08:56
Проверил добавление кнопок в окно "Процедуры и функции" Турбоконфа. Работает.
tormozit изменил статус на Закрыто
#20, ред. 25 января 2025 22:39
В командных панелях окон Турбоконфа атрибут привязки игнорирует свое значение и всегда использует LeftTop:
'Anchor': 'RightTop'
'Anchor': 'LeftTop'
//@button {'Name': 'КнопкаПерейтиИзНавигатора', 'Text': 'Перейти ИР', Hint:'Перейти к текущему объекту метаданных(ИР)', 'Image': '', 'Anchor': 'RightTop', 'Location': '500, 10', 'Width': 60, 'Height': 20, 'AddToForm': 'JumpToForm', 'ParentControl': 'panel1', 'Filter': '0ы8й/' }
tormozit изменил статус на Открыто
#21, ред. 25 января 2025 23:00
Еще нужен способ получить полное имя текущего объекта в навигаторе. Хотя бы вручную, чтобы потом я мог командой адаптера перейти своим алгоритмом. А лучше еще бы дать программно возможность обработчику Турбокнопки скрипта получить это полное имя.
Нажатие CTRL+C в навигаторе сейчас почему то только чистое имя объекта (без родителей) помещает в буфер обмена. Мне такое нужно редко. Из полного имени недолго вырезать чистое имя, а вот наоборот намного сложнее делать, особенно учитывая что перейти к объекту в дереве навигатор не всегда может.
Поэтому предлагаю в этом случае помещать в буфер обмена полное имя объекта.