|
|
|
v7: Хочу закрывать журналы по Esc | ☑ | ||
|---|---|---|---|---|
|
0
Масянька
30.06.14
✎
16:23
|
День добрый!
Итак, хочу, чтобы журналы документов закрывались по кнопке "Esc". Процедура ПриНажатииКнопкиКлавиатуры(мКонтекст, КодКлавиши, Альт, Шифт, Контрол, Символ, ФСО) Экспорт Перем ТекФорма; ФСО = 0; Если КодКлавиши = 27 Тогда глСервис = СоздатьОбъект("Сервис"); РасшФормы = СоздатьОбъект("РасширениеФормы"); РасшФормы.УстановитьФорму(ТекФорма.Форма); Если глСервис.АктивныйКонтекст (ТекФорма) = 1 Тогда ТекФорма.Закрыть(0); КонецЕсли; КонецЕсли; КонецПроцедуры // ПриНажатииКнопкиКлавиатуры() Выдает ошибку: РасшФормы.УстановитьФорму(ТекФорма.Форма); {Глобальный модуль(532)}: Поле агрегатного объекта не обнаружено (Форма) Почему? |
|||
|
97
vcv
02.07.14
✎
10:36
|
(95) ФСО = 0 забыла. Нужно же Esc "проглотить" и заменить его на Ctrl+F4
У меня работает, не виснет ничего. |
|||
|
98
ADirks
02.07.14
✎
10:38
|
(90) минимальный скрипт
#IfWinActive 1С:Предприятие ;ahk_class Afx:400000:0:0:0:c08df ;======================================================================== ;CtrlF4 по Esc - весьма спорно $SC001::Send ^+{F4} Автозапуск: в винде в меню пуск, в папку автозапуск запихать командный файл, с таким примерно содержимым. start P:\AutoHotkey\AutoHotkey.exe X:\AHK\V7.ahk Если надо в терминале, то там тоже где-то прописывается скрипт при запуске сессии. Игры с SendKeys в обработчике события клавы - штука тонкая, очень легко всё поломать. |
|||
|
99
Масянька
02.07.14
✎
10:52
|
(98) Всё, поняла. Не буду.
|
|||
|
100
Масянька
02.07.14
✎
10:54
|
(97) В таком варианте:
Процедура ПриОтжатииКнопкиКлавиатуры(мКонтекст, КодКлавиши, Альт, Шифт, Контрол, Символ, ФСО) Экспорт ФСО = 0; Если КодКлавиши = 27 Тогда глСервис = СоздатьОбъект("Сервис"); глСервис.ЭмулироватьКлавиатуру("^{F4}"); КонецЕсли; если открыть выбор периода - закрывается и выбор, и журнал. |
|||
|
101
varelchik
03.07.14
✎
10:35
|
А что мешает использовать ПриПолученииКоманды()
формексом определить тип контекста, если журнал то Контект.Форма.Закрыть(). Делов то. |
|||
|
102
varelchik
03.07.14
✎
10:36
|
Что-то типа того что ты просила для закрытия Таблиц по ECS.
|
|||
|
103
vcv
03.07.14
✎
10:42
|
(101) Проблема в системных окнах типа выбора периода или настроек страницы. Они не имеют своего контекста. Ты получил контекст формексом, считаешь, что отчет открыт, а на самом деле активно окно параметров страницы и закрывать таблицу, перехватив Esc, нельзя. 1Ска рухнет, когда родительское окно, из которого было открыто модальное системное, незапланированно исчезнет.
|
|||
|
104
varelchik
03.07.14
✎
11:10
|
(103)Ну так это ж не проблема.
Отловить Получение команды ВыбораПериода. Это ж тоже команда. Я таким образом для закрытия табличного документа в случае открытых Настройки параметра страницы и диалога печати тож использую такие извращения. |
|||
|
105
varelchik
03.07.14
✎
11:12
|
а в журналах не так много системных окон.
их можно тоже отловить. |
|||
|
106
varelchik
03.07.14
✎
11:12
|
тут главное подход, а реализация это дело второе.
|
|||
|
107
ADirks
03.07.14
✎
11:12
|
Кстати, а что никто до сих пор не предложил все журналы на ТП переписать?
Вот, предлагаю :) Обработки то штатно по Esc закрываются. |
|||
|
108
varelchik
03.07.14
✎
11:13
|
(107) кстати это тож вариант.
только ж скоко ж журналов переписывать....... |
|||
|
109
varelchik
03.07.14
✎
11:14
|
я вот взялся переписать общий журнал с множественными фильтрами, да так и не закончил.
|
|||
|
110
ADirks
03.07.14
✎
11:16
|
(108) Процесс конечно не быстрый
Мы тут у себя не где-то с год назад довели технологию до ума - и теперь любой журнал клепается за час. |
|||
|
111
Злопчинский
03.07.14
✎
11:20
|
(110) уй! дайте шаблон! ;-) ато меня псевдожурнал мой на ТЗ противоречит моему чувству прекрасного...
|
|||
|
112
varelchik
03.07.14
✎
11:27
|
(111) Он тя щас своими классами закидает.
Вряд ли с первого раза въедешь. |
|||
|
113
varelchik
03.07.14
✎
11:28
|
я его знаю.
в него вся конфа классами прошита. |
|||
|
114
Масянька
03.07.14
✎
11:29
|
(101) У каждого журнала своя команда (уже проверила).
|
|||
|
115
Масянька
03.07.14
✎
11:30
|
+(114) И у справочников тоже - у каждого своя.
Причем, команда возвращается при открытии. По Esc - нету команды. |
|||
|
116
varelchik
03.07.14
✎
11:32
|
(114) не журнала а системных команд.
Выбор периода во всех журналах имеет одну и туже команду. ESC ловим принажатииКнопкиКлавиатуры. вот там и разруливаем нужные действия. |
|||
|
117
varelchik
03.07.14
✎
11:33
|
так я использую Таблица.Показать(-1);
если активный контекст это Таблица. Что тебе мешает делать тоже если активныйконтекст имеет тип Журнал. |
|||
|
118
Масянька
03.07.14
✎
11:34
|
(116) Ну дык - попробуй. У меня не вышло.
ПриПолученииКоманды - возвращает команду при открытии журнала. При нажатии Esc в журнале - тишина... |
|||
|
119
Масянька
03.07.14
✎
11:34
|
(117) АктивныйКонтекст (в приполучениикоманды) - Групповой.
|
|||
|
120
Масянька
03.07.14
✎
11:35
|
(117) Печ. формы по Esc - работает :)
|
|||
|
121
varelchik
03.07.14
✎
11:38
|
1.Заводи глобальныу переменную БлокироватьЕСкейп.
2. В ПриполученииКоманды Ловим что за команда имея список системных команд либо делаем что-то или не далаем. 3. В ПриНажатииКнопкиКлавиатуры смотрим в каком состоянии БлокироватьЕскейп. 4.Если блокировать ни чего не далем, в противном выполняем нужные действия. 5.В результате получаем правильное поведение нажатия ESC по системным командам и то что нам нежно если это не системная команда. |
|||
|
122
varelchik
03.07.14
✎
11:39
|
все просто доупопения.
|
|||
|
123
Масянька
03.07.14
✎
11:41
|
(121) А сам пробовал?
|
|||
|
124
varelchik
03.07.14
✎
11:44
|
(121)яж кажу.
Таким макаром я перехватил системные команды ПараметрыСтраницы и диалог печати. |
|||
|
125
varelchik
03.07.14
✎
11:44
|
что мешает перехватить все остальные?
|
|||
|
126
Масянька
03.07.14
✎
11:45
|
(124) Покажи код, а? Пожалуйста.
|
|||
|
127
varelchik
03.07.14
✎
11:45
|
о!
кстати это идея! это ж можно таким макаром и закрывать системные кона для выгона пользователей! |
|||
|
128
varelchik
03.07.14
✎
11:46
|
Процедура ПриПолученииКоманды(Команда,Флаг) Экспорт
Сообщить(Команда); Если Команда=32805 Тогда Ответ=Вопрос("Запрещено блокировать сеанс! |Выйти их системы?","Да+Нет"); Флаг=1; Если Ответ="Да" Тогда глВыходВопрос=1; ЗавершитьРаботуСистемы(0); КонецЕсли; ИначеЕсли Команда=57604 Тогда Конт=1; ОткрытьФормуМодально("Обработка.СохранениеТаблицы",Конт); Если Конт=1 Тогда Флаг=1; КонецЕсли; ИначеЕсли Команда=33899 Тогда Флаг=1; ОткрытьФорму("Обработка.АктивныеПользователи"); //ИначеЕсли Команда=32875 Тогда // Конт=1; // ОткрытьФормуМодально("Обработка.УстановкаВремени",Конт); // Если Конт=1 Тогда // Флаг=1; // КонецЕсли; ИначеЕсли Число(глКонвертировать)=1 Тогда Если Команда=57607 Тогда БлокироватьЭскейп=1; Конт=1; ОткрытьФормуМодально("Обработка.ПреобразованиеMXL",Конт); Если Конт=1 Тогда Флаг=1; КонецЕсли; КонецЕсли; ИначеЕсли (Команда=57605) ИЛИ (Команда=57609) ИЛИ (Команда=57607) Тогда БлокироватьЭскейп=1; КонецЕсли; КонецПроцедуры // ПриПолученииКоманды Процедура ПриНажатииКнопкиКлавиатуры(Конт,Код,Альт,Шифт,Контрл,Символ,ФСО) Перем Табличка; Если Код = 27 Тогда Если глСервис.АктивныйКонтекст (Табличка) = 1 Тогда Если (ТипЗначенияСтр (Табличка) = "Таблица") Тогда Если БлокироватьЭскейп=1 Тогда БлокироватьЭскейп=0; //ФСО=1; Возврат; КонецЕсли; ФСО=0; Табличка.Показать(,,-1); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
|
129
Масянька
03.07.14
✎
11:47
|
(128) Спасибо. Буду пробовать.
|
|||
|
130
varelchik
03.07.14
✎
11:47
|
только вместо
(Команда=57605) ИЛИ (Команда=57609) ИЛИ (Команда=57607) можно создать список команд и проверять на вхождение. |
|||
|
131
varelchik
03.07.14
✎
11:47
|
спасибо за идею.
|
|||
|
132
Ёпрст
гуру
03.07.14
✎
11:50
|
||||
|
133
varelchik
03.07.14
✎
11:55
|
как всегда.
твои щаманства над компаундом? |
|||
|
134
varelchik
03.07.14
✎
11:56
|
как бы взял и повесил на горячую кнопку кнопу esc?
|
|||
|
135
varelchik
03.07.14
✎
11:57
|
знаем твои приколы.
|
|||
|
136
varelchik
03.07.14
✎
11:58
|
только что будешь делать если надо внести в этот журнал изменения?
все нахрен перестанет работать. |
|||
|
137
varelchik
03.07.14
✎
12:00
|
всмысле твою хитрую кнопку открыть и нажать не esc а ок.
а потом сохранить. все ломается. |
|||
|
138
Ёпрст
гуру
03.07.14
✎
12:00
|
(136) вноси, хоткей не слетит... никогда
|
|||
|
139
varelchik
03.07.14
✎
12:01
|
нет конечно это тоже вариант.
но это надо постоянно об этом помнить. |
|||
|
140
varelchik
03.07.14
✎
12:01
|
ну дык уже слетело.
|
|||
|
141
Ёпрст
гуру
03.07.14
✎
12:02
|
не надо ничего помнить, тупо перехватчиком лепим новый атрибут - кнопка при открытии нужных форм, всё.
|
|||
|
142
Ёпрст
гуру
03.07.14
✎
12:02
|
ежели нужна "автоматизация"
|
|||
|
143
varelchik
03.07.14
✎
12:04
|
а ну если так то посыпаю голову пеплом.
не сообразил сразу. т.е. при открытии журналов или че тама еще надо создаем атрибут с формулой Форма.Закрыть(0) и хоткем ESC правильно понял? |
|||
|
144
varelchik
03.07.14
✎
12:04
|
а это точно идея!
так ведь моно закрывать любые формы не только журнала но и списков справочников! |
|||
|
145
varelchik
03.07.14
✎
12:05
|
Ну голова!
|
|||
|
146
Ёпрст
гуру
03.07.14
✎
12:06
|
(143) да
|
|||
|
147
varelchik
03.07.14
✎
12:06
|
вот что значит нестандартно мыслить.
|
|||
|
148
varelchik
03.07.14
✎
12:20
|
хотя мой вариант тоже живучь.
вот только кнопки в журнале он не отлавливает. |
|||
|
149
varelchik
03.07.14
✎
12:28
|
+(148) т.е при нажатии на кнопку выбора периода ситема невходит в процедуру ПриПолученииКоманды.
обидно. хотя в какой-то старой версии виджета оно отлавливалось. |
|||
|
150
ADirks
03.07.14
✎
13:56
|
(111) Мне не жалко, но это реально большой комплекс всяких классов. Не так то просто выделить отдельно из конфы. Про разобраться я ваще молчу...
|
|||
|
151
Масянька
03.07.14
✎
14:15
|
(142) Вы меня извините, но я не нашла где отрабатывается перехватчик?
Я уже повесила в журнал кнопку, но в модуле пришлось написать: Процедура ПриНажатииКнопки(Кнопка) Если (Кнопка = "Esc") Тогда Форма.Закрыть(); КонецЕсли; КонецПроцедуры А у тебя в модуле - ничего нет. Расскажи про шаманство, пожалуйста. |
|||
|
152
Ёпрст
гуру
03.07.14
✎
14:59
|
(151)смотри тщательнее - просто кнопка на форме с хоткеем, вк нет .. вообще
|
|||
|
153
Масянька
03.07.14
✎
15:02
|
(152) Я вижу. Esc где прописано?
|
|||
|
154
Ёпрст
гуру
03.07.14
✎
15:03
|
(153) ?
повешен хоткей на кнопку. фсё. |
|||
|
155
Ёпрст
гуру
03.07.14
✎
15:03
|
там, на закладке Команда
|
|||
|
156
Масянька
03.07.14
✎
15:04
|
(155) В твоем примере у меня стоит <<>>.
|
|||
|
157
Ёпрст
гуру
03.07.14
✎
15:05
|
(156) Ты суслика види ?.. а он есть!
|
|||
|
158
Масянька
03.07.14
✎
15:08
|
(157) То есть: если клавиша не назначена (<<>>) - по умолчанию это Esc?
|
|||
|
159
Ёпрст
гуру
03.07.14
✎
15:10
|
(158) конечно нет.
|
|||
|
160
Масянька
03.07.14
✎
15:11
|
(159) Объясни - ничего не понимаю. Пожалуйста.
|
|||
|
161
NS
03.07.14
✎
15:14
|
(160) Редактором он клавишу в MD-шнике поменял на ESC скорей всего.
|
|||
|
162
Ёпрст
гуру
03.07.14
✎
15:15
|
||||
|
163
Ёпрст
гуру
03.07.14
✎
15:17
|
(160) че там объяснять то ? повешен на кнопку нужный хоткей и фсё.
|
|||
|
164
Масянька
03.07.14
✎
15:18
|
(162) Спасибо.
Ты меня убъешь, наверное, но КАК повешен?! :( |
|||
|
165
Ёпрст
гуру
03.07.14
✎
15:18
|
если че, можно повесить любой, есть только ограничения:
-не больше 40 хоткеев на одной форме -некоторые хоткеи не работаею без многострочной части (или тз на форме) |
|||
|
166
Ёпрст
гуру
03.07.14
✎
15:20
|
(164) прямая правка компаунда чем угодно - сторонним софтом, hex редактором, скриптом к опенконфу, короче, любым средством для правки компаунда.
|
|||
|
167
Масянька
03.07.14
✎
15:20
|
(166) Раньше сказать не мог, противный :)
|
|||
|
168
Ёпрст
гуру
03.07.14
✎
15:29
|
(167) если бы я был противным, то дал бы тебе ЭТО
https://cloud.mail.ru/public/e98ba7b7b7d1/Примерчик.rar |
|||
|
169
Ёпрст
гуру
03.07.14
✎
15:30
|
ищи теперь..
|
|||
|
170
Масянька
03.07.14
✎
15:30
|
(168) Я же - ласково :) Любя :)
СПАСИБО! |
|||
|
171
Масянька
03.07.14
✎
17:49
|
(169) Ничего у меня не получается...
В журнале сделала кнопку (обозвала "КнопокаEscape"). Открываю md-шник nex-ом. Нахожу свою кнопку. Открываю твою обработку (тоже в hex'e), нахожу кнопку Esc. Вижу различия (у тебя и у себя). Меняю 0 на 27 (добавляю 1 байт и меняю значение 0 на 27). Пишет, что изменит размер файла. Меняю, сохраняю... Запускаю 1С - общая файловая ошибка при доступе к Users... В Users... файл, на который ругается, есть только в момент запуска 1С. ЧЯДНТ? |
|||
|
172
Злопчинский
04.07.14
✎
00:57
|
(171) ..не все йогурты одинаково полезны...
|
|||
|
173
vcv
04.07.14
✎
06:27
|
(171) Сделай не hex-редактором, а разбери конфигурацию gcomp, обычным текстовым редактором поправь что надо и собери gcomp обратно. Заодно, для примера, проделай это над "примерчиком.rar" из (168). Посмотришь, где там в журнале кнопка с хоткеем Esc.
|
|||
|
174
Масянька
04.07.14
✎
09:24
|
(173) Декомпилировать, поправить - есть. А обратно - как? В смысле собрать?
|
|||
|
175
Масянька
04.07.14
✎
09:27
|
После декомп - образовался каталог Src. В нем нашла журнал - кнопку - добавила HotKey, сохранила. Теперь - захожу на вкладку "Компиляция" - а там только md дает выбрать, а в папке Src нету md...
|
|||
|
176
Масянька
04.07.14
✎
09:33
|
Вроде разобралась...
Выдает ошибки: Неуникальный числовой идентификатор - 0:Бухгалтерия Нулевой числовой идентификатор для Бухгалтерия Нулевой числовой идентификатор для Задача Это чего? |
|||
|
177
Масянька
04.07.14
✎
09:36
|
Всем помогающим - огромное спасибо и много чмоки-чмоки!
|
|||
|
178
Ёпрст
гуру
04.07.14
✎
09:37
|
(176) 'nj hernb c vskjv yflj vsnm cgthdf
^) |
|||
|
179
Масянька
04.07.14
✎
09:42
|
(178) Переведи :)
|
|||
|
180
Ёпрст
гуру
04.07.14
✎
09:43
|
Это не переводимый русский фольклор
|
|||
|
181
Масянька
04.07.14
✎
09:44
|
В предприятии сейчас почему-то выдает ошибку - процедура не обнаружена (КнопочкаEscape)...
На форме - кнопка, заголовок - Кнопка, идентификатор - КнопочкаEscape, невидимый, далее - все пусто. |
|||
|
182
Масянька
04.07.14
✎
09:50
|
(180) У меня чистые руки. Голова только не холодная :)
|
|||
|
183
Масянька
04.07.14
✎
09:52
|
А все получилось... :))))))))
Огромное СПАСИБО всем! Чмоки! |
|||
|
184
Масянька
10.07.14
✎
17:54
|
Опять - здравствуйте.
Итак, воткнула кнопки в журналы, проверила. Теперь запихиваю в рабочую БД. Сравнение - объединение... А показывает, что вся конфа поменялась... Так и должно быть? Только в журналах копалась. |
|||
|
185
Ёпрст
гуру
10.07.14
✎
17:56
|
(184) разный стиль винды... будут модифицированны все формы диалога
|
|||
|
186
Ёпрст
гуру
10.07.14
✎
17:57
|
можешь посмотреть, шо менялось..через компаремд
Ну и совсем православно, через версионирование кдиф3 и т.д и т.п |
|||
|
187
Масянька
10.07.14
✎
17:59
|
(185) Все делалось на одном компе.
Вывод изменения везде (справочники, док-ты, отчеты, журналы (это понятно), обработки). Везде - диалог. |
|||
|
188
Ёпрст
гуру
10.07.14
✎
18:25
|
(187) и под одним юзверем ?
и стиль винды какой ? ставь классика, не ошибешься.. А еще, лучше сжать мд..еще |
|||
|
189
Ёпрст
гуру
10.07.14
✎
18:25
|
и это, мд-ник, пересобирала поди еще , не ?
:) |
|||
|
190
Масянька
10.07.14
✎
18:32
|
(189) Есесьно. Чет мне кажется, что именно поэтому...
|
|||
|
191
Ёпрст
гуру
10.07.14
✎
18:37
|
(190) какая догадливая, однако :))))))))))))))))))))))))))))0
|
|||
|
192
Ёпрст
гуру
10.07.14
✎
18:37
|
моменяла все потоки в компаунде , еще и удивляется :)))
|
|||
|
193
Ёпрст
гуру
10.07.14
✎
18:38
|
Пересобери мд-ник в рабочей базе, потом ужо сравнивай тогда.
Только разбирай-собирай с одинаковыми параметрами |
|||
|
194
Масянька
10.07.14
✎
18:38
|
(191) Спасибо (смущаясь и краснея) :)))))))))))))
Я поняла: кнопку делать отдельно, а потом саму кнопку вставлять куда надо. Спасибо!!! |
|||
|
195
Ёпрст
гуру
10.07.14
✎
18:38
|
А так, поставь turbomd и.. половина проблем решена.
|
|||
|
196
Ёпрст
гуру
10.07.14
✎
18:39
|
(194) так и надо было делать - тупой копи-пасте..
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |