|
Как к програмно добавленному пункту меню добавить обработчик вне формы? | ☑ | ||
---|---|---|---|---|
0
Cerera
17.06.13
✎
12:17
|
В УТ при открытии формы каждого документа, вызывается обработка
Процедура УстановитьДоступностьПоляВводаНомера(МетаданныеОбъекта, ФормаОбъекта, ПодменюДействия, ПолеВводаНомера) Экспорт получающая на вход информацию о контексте формы документа. Далее, мы добавляем меню на панель основных действий документа. Как бы нам ещё добавить обработчик на каждый пункт меню так, чтобы это была одна и та же функция,находящаяся в глобальном модуле, чтобы её можно было вызывать из любого документа при выборе любого пункта меню, который мы создали и внутри неё, по идентификатору выбранного пункта, уже выполнять те или иные действия? Вот код добавления пунктов меню: КнопкиКоманднойПанели = _ФормаОбъекта.ЭлементыФормы.ДействияФормы.Кнопки; //// Проверить, нет ли уже на командной панели кнопки "Сформировать". //// Если есть - удалить. Индекс = КнопкиКоманднойПанели.Индекс(КнопкиКоманднойПанели.Найти("Задачи")); // Если Индекс = -1 Тогда Индекс = 0; Иначе КнопкиКоманднойПанели.Удалить(Индекс); КонецЕсли; // //// Создать подменю "Сформировать". ПодменюСформировать = КнопкиКоманднойПанели.Добавить("Задачи", ТипКнопкиКоманднойПанели.Подменю, "Задачи"); //// Добавить картинку. ПодменюСформировать.Картинка = БиблиотекаКартинок.Задача; ПодменюСформировать.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка; Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ШаблоныЗадач.Ссылка |ИЗ | Справочник.ШаблоныЗадач КАК ШаблоныЗадач"; Выборка = Запрос.Выполнить().Выбрать(); //Добавить кнопки к подменю. Обработчик = Новый Действие("КнопкаОбработчикЗадач"); Пока Выборка.Следующий() Цикл ШаблонЗадачи = Выборка.Ссылка; ПодменюСформировать.Кнопки.Добавить("кн" + ШаблонЗадачи , ТипКнопкиКоманднойПанели.Действие, " " + ШаблонЗадачи.ПолнНаименование, Обработчик); КонецЦикла; |
|||
1
Cerera
17.06.13
✎
12:23
|
при том если в форму вызываемого документа, я вставляю обработчик
Процедура КнопкаОбработчикЗадач() Сообщить("Процедура КнопкаОбработчикЗадач"); КонецПроцедуры то он вызывается. А как сделать чтоб он не вызывался? не хочу я во все документы прописывать обработчик. |
|||
2
mikecool
17.06.13
✎
12:24
|
обработчик по любому должен быть в форме
а вот куда он дальше пошлет - вопрос другой |
|||
3
Галахад
гуру
17.06.13
✎
12:29
|
Как вариант. Не очень, правда красивый - внешняя печатная форма.
Подключенная ко всем документам. |
|||
4
Cerera
17.06.13
✎
12:35
|
(3)а как же ей воспользоваться?
(2)а как сделать чтобы он принял идентификатор пункта меню? |
|||
5
Галахад
гуру
17.06.13
✎
12:39
|
(4) Ключевые слова. форма (одна) ко всем документам.
|
|||
6
Cerera
17.06.13
✎
12:43
|
наверняка в УТ есть уже обработчик который вызывается при выборе любого пункта меню.
|
|||
7
Cerera
17.06.13
✎
13:03
|
эх. найти бы куда зацепиться из стандартных функций.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |