v7: Хочу закрывать журналы по Esc #712797


#0 by Масянька
День добрый! Итак, хочу, чтобы журналы документов закрывались по кнопке "Esc". РасшФормы.УстановитьФорму(ТекФорма.Форма); {Глобальный модуль}: Поле агрегатного объекта не обнаружено (Форма) Почему?
#0 by Масянька
День добрый! Итак, хочу, чтобы журналы документов закрывались по кнопке "Esc". РасшФормы.УстановитьФорму(ТекФорма.Форма); {Глобальный модуль}: Поле агрегатного объекта не обнаружено (Форма) Почему?
#1 by Wobland
а что за ТекФорма?
#2 by Ёпрст
РасшФормы.УстановитьФорму(Форма);
#3 by Масянька
Ругается сразу при входе в Предприятие :( РасшФормы.УстановитьФорму(Форма<<?>>); {Глобальный модуль}: Переменная не определена (Форма) Забыла сказать - процедура в глобальнике.
#4 by Ёпрст
ааа.. РасшФормы.УстановитьФорму(мКонтекст.Форма);
#5 by Масянька
Не ругается, но клава - не реагирует :( Ни стрелки, ни Enter, ни Esc.
#6 by Ёпрст
вот этот мусор хоть поправила ?
#7 by eshtrey
#8 by Ёпрст
там должно быть тип того:
#9 by Ёпрст
#10 by Масянька
Ты - как всегда - УМНИЦА!!!! Вот так работает:
#11 by Масянька
+ ФСО - буду пробовать. Еще раз - СПАСИБО!!!!
#12 by Ёпрст
не помню ужо, но разве в АктивныйКонтекст форма передается ? Был же контекст раньше.. :)
#13 by Ёпрст
ну и, лучше ПриОТжатии пользовать, а не приНажатии..
#14 by Масянька
Не понял? Тут еще грабли оказались: ПриПолученииКоманды - закрывает только открытую печ. форму. Теперь, если в открытой печ. форме нажать Esc - ругается - РасшФормы.УстановитьФорму(мКонтекст.Форма); {Глобальный модуль}: Значение не представляет агрегатный объект (Форма) Дурдом какой-то.
#15 by Ёпрст
см. работает ?
#16 by Масянька
Да... Но открыла журнал, открыла док-т, открыла печ. форму. Нажала Esc - закрылась печ. форма (ура - не ругается), опять нажимаю Esc - закрывается и док-т и журнал. Оба сразу. По-моему, я знаю в чем грабли...
#17 by Масянька
+ Да нет ФСО при открытии 1... А нельзя, чтобы док-т отдельно закрывался, а журнал отдельно?
#18 by Ёпрст
проверяй тип контекста
#19 by Ёпрст
у тебя же еще там и команды рвджетсом вроде перехватываются, не ?.. хз, че там у тебя, а так, всё можно :)
#20 by Масянька
Вот обе две процедуры. Больше нигде Я клаву и команды не хватаю.
#21 by Масянька
Групповой. И для документа, и для журнала.
#22 by Ёпрст
в ПриПолученииКоманды бред же написан.. с ТекФормой..
#23 by Масянька
Согласна. Но "бред" работает. Там столько проблем было, пока "бред" заработал... И "бред касается только печ. формы. Или нет?
#24 by Ёпрст
ты объявила Перем ТекФорма и далее у неё проверяешь Если глСервис.АктивныйКонтекст (ТекФорма) = 1 Тогда там всегда 0 будет, ибо ТекФорма - дырка от бублика.
#25 by Масянька
#26 by eshtrey
а если зайти в форму нового элемента справочника и нажать ESC, что будет?
#27 by Масянька
Стандарт отрабатывается - Сохранить - да, нет.
#28 by Ёпрст
хрень полная..
#29 by Ёпрст
одна из черепашек врёт :)
#30 by eshtrey
у меня с твоим кодом сыпет ошибки на РасшФормы.УстановитьФорму(мКонтекст.Форма); при ESC в форме нового элемента справочника
#31 by eshtrey
это к
#32 by Масянька
А у меня - нет. Ну работает же! Там были заморочки: если в печ. форме открыть предпросмотр, еще там чего-то. Сейчас печ. форма отлично закрывается. А сам док-т остается открытым. Теперь журнал не закрывается. И не ругается :(
#33 by Масянька
Уже вижу.
#34 by Масянька
+ Поправила. Закрывается и док-т, и журнал. По одному Esc.
#35 by Масянька
Если в начале процедуры воткнуть Сообщить(...), то выводится 2 раза. Esc нажат 1 раз. Почему?
#36 by Масянька
Упс... А ПриНажатии.... тот же код отрабатывает...
#37 by vcv
Нафиг, нафиг. Я когда-то боролся, так все глюки не победил. То что-то лишнее закрывается по Esc, то наоборот, не закрывается. Самая суровая проблема была с системными окнами типа выбора периода и поиска по номеру.
#38 by Масянька
В принципе - да. Но - печ. формы (хотя Ё и ругается) отрабатывает. Без глюков и вылетов.
#39 by vcv
Может попробовать обходным манёвром? Ну что-то типа распаковать конфу GComp, руками поправить хоткей на кнопке Закрыть в журналах и запаковать снова? Если, конечно, GComp позволит произвольный хоткей поставить.
#40 by Масянька
Да нет. Так глубоко копать - не знаешь, что выкопаешь. Сегодня проверю ПриНажатии...
#41 by ADirks
gcomp то сможет, но что характерно, 1С всё это сожрёт. Вплоть до всяких NumLock, Pause и т.д.
#42 by Масянька
У меня - работает:
#43 by vcv
Попробуйте теперь в этом журнале открыть, например, окно выбора периода (штатное) и нажать Esc.
#44 by Ёпрст
есть ограничение - не больше 40 хоткеев в одной форме.
#45 by Масянька
Закрыл усе... Зараза...
#46 by Ёпрст
В ПриПолученииКоманды не рабочий код + не ясно, нафига всё это там надо, когда Таблица и так всегда по  Esc сама закрывается всегда, штатно
#47 by Масянька
Да не закрывается открытая печ. форма по ESC. Не закрывается...
#48 by vcv
Где? Первый раз слышу, что бы таблицы штатно закрывались по Esc.
#49 by vcv
Похоже у Ёпрст 1С версии 7.8.3 :)
#50 by Масянька
Пусть делится :)
#51 by Масянька
+ Грабли... А кто-нибудь знает команды для журналов?
#52 by Ёпрст
не туда посмотрел, в активный контекст возвращается сам контекст в параметры функции, тогда да, будет работать :)
#53 by Ёпрст
всё равно, не проще так то ? Процедура ПриОтжатииКнопкиКлавиатуры(Конт,Код,Альт,Шифт,Контрл,Символ,ФСО)
#54 by Ёпрст
нафига тебе приПолученииКоманды  ?
#55 by Ёпрст
менюшку ловить ?
#56 by Масянька
попробуй в открытой печ. форме октрыть предпросмотр.
#57 by Ёпрст
да.. есть еще системные формы полного и доп журнала - у них нет "контекста" и его типа, если че..
#58 by Масянька
Обойти - никак?
#59 by Ёпрст
ты не хочешь, чтоб при предпросмотре, форма таблицы закрывалась.. логично
#60 by Ёпрст
запретить их открытие разве что
#61 by vcv
Такой код, на сколько помнится, косячит, когда жмёшь Esc при открытой системной форме. Например, параметров страницы.
#62 by Ёпрст
+60 точнее, нужно всего лишь в одном из общих журналов воткнуть галки - что он используется как полный и доп журнал
#63 by Ёпрст
чтоб всегда его форма открывалась
#64 by Масянька
Не-а. Поэтому и код не окшерный (Ё ругается :.
#65 by Масянька
То есть не обойти?
#66 by Ёпрст
не-не, я затупил, снеговик съедает мозг, не обращай внимания, код рабочий
#67 by Ёпрст
см
#68 by Масянька
Чего-то у меня не получается :(
#69 by ivsher
Название темы навеяло :) , "хочу окна мышкой открывать, и не смотря на советскую власть хочу чтобы на рабочем столе иконки были"
#70 by Масянька
Извините, но я еще спрошу. А в телепате нельзя переопределить кнопки?
#71 by Ёпрст
можно, только не в "телепате", а в примитивном скрипте к опенконфу
#72 by Масянька
А кинь пример, пожалуйста.
#73 by Масянька
Чёт не получается у меня :) Сделала файл - Keyboards.vbs, в нем написала следующее: В конфигураторе - все вижу. А не работает...
#74 by Масянька
Подскажите, пожалуйста, можно ли (если да, то как) сделать так, чтобы скрипты работали в режиме Предприятия?
#75 by Масянька
Не, никак ?
#76 by acanta
А это принципиально чтоб скриптами? Имхо всегда такое работало:
#77 by Масянька
Хочу кнопке Esc назначить комбинацию Ctrl + F4. В режиме Предприятия.
#78 by acanta
в неуправляемых формах Параметры не нужны (ругается..) ЭтаФорма.РежимВыбора = Истина и любая форма закроется по ESC
#79 by Масянька
В каждой форме писать надо?
#80 by acanta
в каждой
#81 by Масянька
Во-о-о-от. А хочется: один раз и для всех.
#82 by acanta
а скрипты работают в режиме предприятия?
#83 by Масянька
Я и спрашиваю. Да или нет?
#84 by vcv
Процедура ПриОтжатииКнопкиКлавиатуры(Конт,Код,Альт,Шифт,Контрл,Символ,ФСО) ... Сервис.ЭмулироватьКлавиатуру("^{F4}"); ... КонецПроцедуры
#85 by vcv
"Во-о-о-от. А хочется: один раз и для всех." Не всегда благо то, что для всех. Вот сделаешь закрытие Таблиц по кнопке Esc. Для печатных форм документов самое то. А для отчетов очень спорно. За такое, как говорится, можно и канделябром по морде. Как будешь отличать таблицу отчета от таблицы печатной формы документа?
#86 by vcv
+ Аналогично для журналов. Закрытие их по Esc спорный функционал. Например, пользователь в журнале пользуется инкрементальным поиском. Этот поиск в 7.7 временами сильно тупит, тормозит и не сразу прерывается по Esc. Пользователь раздраженно Esc-Esc-Esc. В конце концов у него прерывается поиск и, заодно, еще и пара журналов закрывается :)
#87 by acanta
В 8ке по Esc ничего не прерывается.
#88 by vcv
8ка обсуждается в соседней теме.
#89 by ADirks
есть куча всяких фиговин, которые перехватывают очередь клавиатуры, и модифицируют её. Например AutoHotKey у меня используется в пофигураторе, чтобы раскладку поменьше переключать (всякие < > # $ | ~ и т.п.) скрипт выглядит так Ctrl_A = ^{SC01E} #IfWinActive 1С:Предприятие ;ahk_class Afx:400000:0:0:0:c08df ;======================================================================== ;Закрытие окна сообщение Ctrl+z (не всем нравится) ;$^SC02C::SendMessage %WM_COMMAND%, 0x1802c, 0,, A $!SC02B::Send | У меня запускается при старте системы. Можно при старте 1С запускать, или ещё как. В твоём случае в скрипте д.б. строчка $SC001::Send ^+{F4} (001 - это скан-код Esc)
#90 by Масянька
Скажи, пожалуйста, куда вставить эту строчку и как запустить при старте.
#91 by Масянька
В глобальнике ПриНачалеРаботыСистемы добавила Hello - выводится, а вот по Esc не закрывается...
#92 by Масянька
Что не так-то?
#93 by Ёпрст
чем тебе не нравится ?
#94 by Масянька
Упс... Пропустила... Попробую. А со скриптом - что не так?
#95 by Масянька
Фигасе себе... Предупреждать надо.
#96 by Масянька
А если открыть в журнале выбор периода - тоже самое - закрывает и выбор, и журнал.
#97 by vcv
ФСО = 0 забыла. Нужно же Esc "проглотить" и заменить его на Ctrl+F4 У меня работает, не виснет ничего.
#98 by ADirks
минимальный скрипт #IfWinActive 1С:Предприятие ;ahk_class Afx:400000:0:0:0:c08df ;======================================================================== ;CtrlF4  по Esc  - весьма спорно $SC001::Send ^+{F4} Автозапуск: в винде в меню пуск, в папку автозапуск запихать командный файл, с таким примерно содержимым. start P:AutoHotkeyAutoHotkey.exe X:AHKV7.ahk Если надо в терминале, то там тоже где-то прописывается скрипт при запуске сессии. Игры с SendKeys  в обработчике события клавы - штука тонкая, очень легко всё поломать.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С