Полноценные шорткаты
Никогда не возникало желания в 1С8 повесить какое-либо действие на шорткат Shift+Enter, или Ctrl+PgDn?
А так же еще немного из личного опыта с осьмеркой…
- Описание
- Подробнее
Описание
1. Итак, шорткаты.
В общем-то, ничего сложного там нет — ЗначениеВСтрокуВнутр() и вдумчивое покурить результат минут 10.
Лучше я сразу напишу, как его создать — произвольный шорткат
Модификатор = 0;
Если Альт Тогда Модификатор = Модификатор + 16; КонецЕсли;
Если Ктрл Тогда Модификатор = Модификатор + 8; КонецЕсли;
Если Шифт Тогда Модификатор = Модификатор + 4; КонецЕсли;
стрВнутр = «{«»#»»,69cf4251-8759-11d5-bf7e-0050bae2bc79,1,» + Символы.ПС + «{0,» + КодКлавиши + «,» + Модификатор + «}» + Символы.ПС + «}»;
//Символы.ПС, кстати говоря, кажется и не нужны даже — вроде и без них должно работать.
Шорткат = ЗначениеИзСтрокиВнутр(стрВнутр);
Дальше остается только пояснить про КодыКлавиш — и полученный результат можно скармливать Кнопка.СочетаниеКлавиш
Но там тоже ничего сложного — Enter=13, Esc=27 и так далее.
Кстати, можно повесит шорткат даже, например, на Alt+Shift — только нужно и в модификаторы прописать 20 и в КодКлавиши прописать, 18(это Alt) или 16(это Shift).
Единственное — стоит помнить, что сначала шорткаты перехватывает Винда. Так что на Альт-Ф4 ничего повесить не получится.
2. Если у вас есть форма, размер которой рассчитывается каждый раз после ее открытия, то наверняка замечали, что 1Ска запоминает размер формы от прошлого открытия и в качестве базового берет именно его. Что просто жутко мешается.
Первое, что приходит в голову — в ПередОткрытием() написать что-то вроде ЭтаФорма.ИмяСохраняемогоОкна = Новый УникальныйИдентификатор;
Однако, есть способ проще — достаточно до показа формы обратиться на запись к ее реквизиту Высота или Ширина.
Т.е. пишем в ПередОткрытием()/ПриОткрытии() Форма.Высота = Форма.Высота — и все работает как надо.
PS но отсутствие штатного события ПослеОткрытия() несколько… удручает :-/
Upd по пункту 1:
BackSpase 8
Tab 9
Enter 13
Shift 16
Ctrl 17
Alt 18
CapsLock 20
Esc 27
Space 32
PgUp 33
PgDn 34
End 35
Home 36
Left 37
Up 38
Right 39
Down 40
Ins 45
Del 46
LWinKey 91
RWinKey 92
AppKey 93
Num0 96
Num1 97
Num2 98
Num3 99
Num4 100
Num5 101
Num6 102
Num7 103
Num8 104
Num9 105
NumMultiply 106
NumAdd 107
NumSubtract 109
NumDecimal 110
NumDivide 111
F1 112
F2 113
F3 114
F4 115
F5 116
F6 117
F7 118
F8 119
F9 120
F10 121
F11 122
F12 123
ScrlLock 145
NumLock 144
Semi 186
Add 187
Comma 188
Minus 189
Dot 190
Slash 191
Tilde 192
LSqrBrckt 219
Backslash 220
RSqrBrckt 221
Apostrophe 222