Сообщения от тулбаров теперь транслируются в ПриПолученииКомандыГлавнымОкном()

Автор MWW_Ruza, 24 марта 2024, 00:55

« назад - далее »

Djelf

Цитата: АЛьФ от 27 марта 2024, 09:49Если открыта форма тестового или табличного документа, то команды не приходят в перехват.
Да, есть такое. Остальное вроде как починилось, F1 не двоится, хотя он у меня тоже заблокирован.
Еще бы во внешней форме кнопки как у справочника/документа вытащить и было бы совсем хорошо.

Forum123

Цитата: АЛьФ от 27 марта 2024, 13:43Может проще создать в разделе дружественных проектов свою ветку, где рассказать о своей разработке и дать ссылку, где можно скачать и подробно изучить?
Альф ты уж извини, что о своих разработках рассказал.
В основном, чтобы не выглядеть диванным теоретиком.

Пост то был о том, некоторый функционал для диалоговых окон можно расширить и не зная того, как с ними работает 1С.
Хотя безусловно для Тебя это не новость.

Djelf

Контекст в ПриПолученииКомандыГлавнымОкном в принципе не нужен, а вот флаг того что это команда от тулбара весьма бы пригодился. Проброс в форму через АктивныйКонтекст работает нормально.
Сервис.АктивныйКонтекст(Конт);
Список=СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(wParam);
Если Сервис.ВыполнитьПроцедуру(Конт,"ПриПолученииКоманды",Список)=1 Тогда
СтатусВозврата(0);
КонецЕсли;

АЛьФ

Цитата: Djelf от 27 марта 2024, 14:06Контекст в ПриПолученииКомандыГлавнымОкном в принципе не нужен, а вот флаг того что это команда от тулбара весьма бы пригодился. Проброс в форму через АктивныйКонтекст работает нормально.
Сервис.АктивныйКонтекст(Конт);
Список=СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение(wParam);
Если Сервис.ВыполнитьПроцедуру(Конт,"ПриПолученииКоманды",Список)=1 Тогда
СтатусВозврата(0);
КонецЕсли;


Откуда пришла команда в месте перехвата уже неизвестно.

АЛьФ

Цитата: Djelf от 27 марта 2024, 13:52
Цитата: АЛьФ от 27 марта 2024, 09:49Если открыта форма тестового или табличного документа, то команды не приходят в перехват.
Да, есть такое. Остальное вроде как починилось, F1 не двоится, хотя он у меня тоже заблокирован.
Еще бы во внешней форме кнопки как у справочника/документа вытащить и было бы совсем хорошо.

Если команда блокируется, то она и не будет двоиться, т.к. обработка прерывается.

Djelf

Цитата: АЛьФ от 27 марта 2024, 14:12Откуда пришла команда в месте перехвата уже неизвестно.
Печально, но и не критично Сервис.ВыполнитьПроцедуру же не ругается если процедуры нет.
Напрашивается класс 1с++ по обобщенной обработке...

Интересно, "Открыть настроку" и "Сохранить настройку" если окно сообщений очищено и если там что-то уже есть посылают разные сообщения.
Окно сообщений очищено
ПриПолученииКомандыГлавнымОкном(32887,0)
Вызываем повторно, добавляется не одно сообщение, а два
ПриПолученииКомандыГлавнымОкном(32887,0)
ПриПолученииКомандыГлавнымОкном(32887,0)
ПриПолученииКомандыГлавнымОкном(57670,0)

АЛьФ

57670 - это как раз отработка F1 из-за наличия на форме сохранения кнопки "Помощь". Вечером отсеку этот вызов.
А вот задваивание на команды сохранения настройки у себя я не отловил. Вне зависимости от открытия окна сообщений.

Arbuz

Да, 57670 вылазит везде где только можно и по нескольку раз. На Вин7 F1 отрабатывает нормально, прилетает один раз 57670 и открывается справка. Остальное вроде не двоит.
А может есть у кого уже список по этим кодам? Что там кого, дабы самому не собирать.

АЛьФ

Доработал перехват команд.
Обновил тестовую сборку.
При активном текстовом документе или окне сообщений так и не получается отловить команды. Буду еще искать что мешает.
Второй параметр в процедуре ПриПолученииКомандыГлавнымОкном сейчас показывает место сработавшего перехвата. Но потом будет равен 0, как и написано в документации.

MWW_Ruza

В принципе, сейчас все работает, глюков особо не заметил...
Но, правда глубоко не копал.
Просто понял, что в моей задаче это мало чем поможет...
Еще групповое удаление/снятие пометки удаления, можно сделать, а с переносом в другую группу - облом...
Эта процедура отрабатывает, и что-бы подавить стандартную, ПриПереносеЭлементаВДругуюГруппу(Эл, ЦелГр), приходится ставить ФСО в 0. А если не отрабатывает ПриПереносеЭлементаВДругуюГруппу(Эл, ЦелГр), то куда мы хотим перенести - не понятно, без этой процедуры нет ЦелГр(Целевой группы)... Как ее еще определить, не понятно...
В общем, интересно, может для чего-то и пригодится, но не для этой задачи :-(

АЛьФ

Цитата: MWW_Ruza от 28 марта 2024, 00:43В принципе, сейчас все работает, глюков особо не заметил...
Но, правда глубоко не копал.
Просто понял, что в моей задаче это мало чем поможет...
Еще групповое удаление/снятие пометки удаления, можно сделать, а с переносом в другую группу - облом...
Эта процедура отрабатывает, и что-бы подавить стандартную, ПриПереносеЭлементаВДругуюГруппу(Эл, ЦелГр), приходится ставить ФСО в 0. А если не отрабатывает ПриПереносеЭлементаВДругуюГруппу(Эл, ЦелГр), то куда мы хотим перенести - не понятно, без этой процедуры нет ЦелГр(Целевой группы)... Как ее еще определить, не понятно...
В общем, интересно, может для чего-то и пригодится, но не для этой задачи :-(

Так я же специально сделал, чтобы для дерева групп объект АтрибутФормы возвращал текущую группу.

MWW_Ruza


Пиит

Цитата: АЛьФ от 27 марта 2024, 21:48При активном текстовом документе или окне сообщений так и не получается отловить команды.
АЛьФ, а можно АктивныйКонтекст научить понимать текстовый документ по аналогии с табличным документом?
В последнем случае, в отличие от обычных форм, АктивныйКонтекст возвращает объект Таблица, и это просто супер штука, напр. для конвертации таблиц одним кликом.
Может ли в принципе АктивныйКонтекст возвратить объект Текст?

АЛьФ

Цитата: item от 28 марта 2024, 09:19
Цитата: АЛьФ от 27 марта 2024, 21:48При активном текстовом документе или окне сообщений так и не получается отловить команды.
АЛьФ, а можно АктивныйКонтекст научить понимать текстовый документ по аналогии с табличным документом?
В последнем случае, в отличие от обычных форм, АктивныйКонтекст возвращает объект Таблица, и это просто супер штука, напр. для конвертации таблиц одним кликом.
Может ли в принципе АктивныйКонтекст возвратить объект Текст?

В принципе может.

Пиит

Цитата: АЛьФ от 28 марта 2024, 09:21
Цитата: item от 28 марта 2024, 09:19АЛьФ, а можно АктивныйКонтекст научить понимать текстовый документ по аналогии с табличным документом?
В принципе может.
Вдогонку, есть такой недостаток в объекте Таблица, после перехвата ее АктивнымКонтекстом нет никакой возможности получить ни Заголовок ни ИмяФайла, с которыми она была выведена.
Мог бы Сервис получить эту информацию?