Код примера
Перем ТФ, ПанельМеню1, ПанельМеню2, ПервыйЭкран, ВторойЭкран;
Перем Окно1, Окно2, ТекстОкна1, ТекстОкна2, Макросы, Правка;
Процедура Меню_Нажатие() Экспорт
Объект = ТФ.АргументыСобытия.Параметр;
КлавишаВызова = Объект.КлавишаВызова;
Если ПервыйЭкран.Доступность и ПервыйЭкран.Отображать Тогда
Окно1.Текст = ТекстОкна1 + "
|" + Объект.Заголовок + ".КлавишаВызова = " + КлавишаВызова + " " + ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЕсли;
Если ВторойЭкран.Доступность и ВторойЭкран.Отображать Тогда
Окно2.Текст = ТекстОкна2 + "
|" + Объект.Заголовок + ".КлавишаВызова = " + КлавишаВызова + " " + ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЕсли;
КонецПроцедуры
Процедура СочетаниеКлавишДействие() Экспорт
Объект1 = ТФ.АргументыСобытия.Параметр;
Список = Объект1.ПолучитьСочетаниеКлавиш();
Стр = "";
Для Каждого Эл Из Список Цикл
Стр = Стр + "
| " + Эл.Значение + " (" + Эл.Представление + ") " + ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЦикла;
Если ПервыйЭкран.Доступность и ПервыйЭкран.Отображать Тогда
Окно1.Текст = ТекстОкна1 + "
|СочетаниеКлавиш для " + Объект1.Заголовок + " = " + Стр;
КонецЕсли;
Если ВторойЭкран.Доступность и ВторойЭкран.Отображать Тогда
Окно2.Текст = ТекстОкна2 + "
|СочетаниеКлавиш для " + Объект1.Заголовок + " = " + Стр;
КонецЕсли;
КонецПроцедуры
Процедура ПерейтиНаВторойЭкран() Экспорт
ПервыйЭкран.Доступность = Ложь;
ПервыйЭкран.Отображать = Ложь;
ВторойЭкран.Доступность = Истина;
ВторойЭкран.Отображать = Истина;
КонецПроцедуры
Процедура ПерейтиНаПервыйЭкран() Экспорт
ВторойЭкран.Доступность = Ложь;
ВторойЭкран.Отображать = Ложь;
ПервыйЭкран.Доступность = Истина;
ПервыйЭкран.Отображать = Истина;
КонецПроцедуры
Процедура СоздатьПанельМенюДляВторогоЭкрана() Экспорт
ПанельМеню2 = ТФ.ПанельМеню();
ПанельМеню2.Клавиша = ТФ.Клавиши.F9 + ТФ.Клавиши.CtrlMask; // F9 + Ctrl
ВторойЭкран.Добавить(ПанельМеню2);
Инструменты = ТФ.ПунктМеню();
Инструменты.Заголовок = "_Инструменты";
Инструменты.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Инструменты);
ПанельМеню2.ПодМеню.Добавить(Инструменты);
Сгенерировать = ТФ.ЭлементМеню();
Сгенерировать.Заголовок = "Сгенерировать";
Сгенерировать.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Сгенерировать);
Инструменты.Элементы.Добавить(Сгенерировать);
Компилировать = ТФ.ЭлементМеню();
Компилировать.Заголовок = "Компилировать";
Компилировать.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Компилировать);
Инструменты.Элементы.Добавить(Компилировать);
Макросы = ТФ.ПунктМеню();
Макросы.Заголовок = "Мак_росы";
Макросы.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Макросы);
ПанельМеню2.ПодМеню.Добавить(Макросы);
НачатьЗапись = ТФ.ЭлементМеню();
НачатьЗапись.Заголовок = "Начать запись";
НачатьЗапись.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", НачатьЗапись);
Макросы.Элементы.Добавить(НачатьЗапись);
ОстановитьЗапись = ТФ.ЭлементМеню();
ОстановитьЗапись.Заголовок = "Остановить запись";
ОстановитьЗапись.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", ОстановитьЗапись);
Макросы.Элементы.Добавить(ОстановитьЗапись);
Запуск = ТФ.ПунктМеню();
Запуск.Заголовок = "З_апуск";
Запуск.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Запуск);
ПанельМеню2.ПодМеню.Добавить(Запуск);
Запустить = ТФ.ЭлементМеню();
Запустить.Заголовок = "Запустить";
Запустить.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Запустить);
Запуск.Элементы.Добавить(Запустить);
НаПервыйЭкран = ТФ.ПунктМеню();
НаПервыйЭкран.Заголовок = "НаПервыйЭкран";
НаПервыйЭкран.Нажатие = ТФ.Действие(ЭтотОбъект, "ПерейтиНаПервыйЭкран", НаПервыйЭкран);
ПанельМеню2.ПодМеню.Добавить(НаПервыйЭкран);
КонецПроцедуры
Процедура СоздатьПанельМенюДляПервогоЭкрана() Экспорт
ПанельМеню1 = ТФ.ПанельМеню();
ПанельМеню1.Клавиша = ТФ.Клавиши.F9 + ТФ.Клавиши.CtrlMask; // F9 + Ctrl
ПервыйЭкран.Добавить(ПанельМеню1);
Файл = ТФ.ПунктМеню();
Файл.Заголовок = "_Файл";
Файл.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Файл);
ПанельМеню1.ПодМеню.Добавить(Файл);
Открыть = ТФ.ЭлементМеню();
Открыть.Заголовок = "_Открыть";
Открыть.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Открыть);
Файл.Элементы.Добавить(Открыть);
Выход = ТФ.ЭлементМеню();
Выход.Заголовок = "В_ыход";
Выход.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Выход);
Файл.Элементы.Добавить(Выход);
//================================================
Правка = ТФ.ПунктМеню();
Правка.Заголовок = "П_равка";
Правка.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Правка);
ПанельМеню1.ПодМеню.Добавить(Правка);
Отмена = ТФ.ЭлементМеню();
Отмена.Заголовок = "Отмена";
Отмена.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Отмена);
Правка.Элементы.Добавить(Отмена);
Повтор = ТФ.ЭлементМеню();
Повтор.Заголовок = "Повтор";
Повтор.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Повтор);
Правка.Элементы.Добавить(Повтор);
//================================================
Поиск = ТФ.ПунктМеню();
Поиск.Заголовок = "По_иск";
Поиск.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", Поиск);
ПанельМеню1.ПодМеню.Добавить(Поиск);
ИскатьДалее = ТФ.ЭлементМеню();
ИскатьДалее.Заголовок = "Искать_Далее";
ИскатьДалее.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", ИскатьДалее);
Поиск.Элементы.Добавить(ИскатьДалее);
ИскатьРанее = ТФ.ЭлементМеню();
ИскатьРанее.Заголовок = "Искать_Ранее";
ИскатьРанее.Нажатие = ТФ.Действие(ЭтотОбъект, "Меню_Нажатие", ИскатьРанее);
Поиск.Элементы.Добавить(ИскатьРанее);
//================================================
НаВторойЭкран = ТФ.ПунктМеню();
НаВторойЭкран.Заголовок = "ПерейтиНаВторойЭкран";
НаВторойЭкран.Нажатие = ТФ.Действие(ЭтотОбъект, "ПерейтиНаВторойЭкран", НаВторойЭкран);
ПанельМеню1.ПодМеню.Добавить(НаВторойЭкран);
КонецПроцедуры
Процедура СоздатьОкноДляПервогоЭкрана() Экспорт
Окно1 = ТФ.Окно();
Окно1.Заголовок = "Окно первого экрана";
ТекстОкна1 = " После запуска приложения был автоматически создан элемент ""Верхний"". Он является элементом верхнего уровня " +
"и в нем мы будем создавать подэлементы интерфейса. Элемент ""Верхний"" доступен через свойство ""ТФ.Верхний"".
| Далее создадим два окна-экрана (назовем их условно ПервыйЭкран, ВторойЭкран). Это будут два элемента ""Верхний"". В каждом из них " +
"разместим по окну.
| У каждого экрана создадим панель меню и назначим этим панелям меню одно и то же сочетание клавиш для активации - ""F9 + Ctrl"" " +
"через свойство ""ПанельМеню.Клавиша (MenuBar.Key)"". Так же остается по умолчанию клавиша ""Alt"" для активации панели меню.
| Если панель меню активирована, то пункты меню можно вызывать-раскрывать клавишей, назначенной через свойство ""КлавишаВызова (HotKey)"".
| Вот так можно организовать работу приложения с несколькими экранами для каждого из которых задана своя панель меню.
| Длинное число в событиях - это текущее время в миллисекундах.
| Нажмите ""a"" или ""z""
|================================================================
|";
Окно1.Текст = ТекстОкна1;
Окно1.Заполнить();
ПервыйЭкран.Добавить(Окно1);
КонецПроцедуры
Процедура СоздатьОкноДляВторогоЭкрана() Экспорт
Окно2 = ТФ.Окно();
Окно2.Заголовок = "Окно второго экрана";
ТекстОкна2 = "Это Окно2
| Нажмите ""s"" или ""x""
|================================================================
|";
Окно2.Текст = ТекстОкна2;
Окно2.Заполнить();
ВторойЭкран.Добавить(Окно2);
КонецПроцедуры
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptTerminalGui\OneScriptTerminalGui\bin\Debug\OneScriptTerminalGui.dll");
ТФ = Новый ТерминалФормыДляОдноСкрипта();
ПервыйЭкран = ТФ.Верхний();
ПервыйЭкран.Заполнить();
ТФ.Верхний.Добавить(ПервыйЭкран);
СоздатьПанельМенюДляПервогоЭкрана();
СоздатьОкноДляПервогоЭкрана();
ВторойЭкран = ТФ.Верхний();
ВторойЭкран.Заполнить();
ТФ.Верхний.Добавить(ВторойЭкран);
СоздатьПанельМенюДляВторогоЭкрана();
СоздатьОкноДляВторогоЭкрана();
ВторойЭкран.Доступность = Ложь;
ВторойЭкран.Отображать = Ложь;
ПервыйЭкран.Доступность = Истина;
ПервыйЭкран.Отображать = Истина;
Макросы.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.s_low);
Макросы.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.x_low);
Правка.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.a_low);
Правка.ДобавитьСочетаниеКлавиш(ТФ.Клавиши.z_low);
Правка.СочетаниеКлавишДействие = ТФ.Действие(ЭтотОбъект, "СочетаниеКлавишДействие", Правка);
Макросы.СочетаниеКлавишДействие = ТФ.Действие(ЭтотОбъект, "СочетаниеКлавишДействие", Макросы);
ТФ.Запуск();