Перейти к содержанию

4. Обработка команд

Примечание

Пример обработки событий ОбработкаКоманды и ОбработкаКомандыФормы

Описание примера#

Пример обработки в Расширении команд из Конфигурации: общей команды, команды объекта и команды формы. Пример обработки события ОбработкаКомандыФормы, которое добавлено во Фреймворке и отсутствует в Платформе.

В примере, все три типа команд расположены в форме элемента справочника "Номенклатура".

Состав Расширения#

Объекты#

Screenshot

Примечание

Ниже приведены полные тексты модулей Расширения. Код, связанный с обработкой событий, выделен отдельным цветом.

Модуль менеджера обработки#

#Область СлужебныйПрограммныйИнтерфейс

#Область ЕХТ

Функция ПолноеИмя() Экспорт
    Возврат Создать().Метаданные().ПолноеИмя();
КонецФункции

Функция Идентификатор() Экспорт
    Возврат "1bc7a309-2f07-4798-a62b-80b57bb40701";
КонецФункции

Функция Сведения(Сведения) Экспорт

    Сведения.Версия = "17.09.09.1";
    Сведения.Подписки = Истина;

    Возврат Истина;

КонецФункции        

Функция ОбработкаОбновления(ТекущаяВерсия, НоваяВерсия, НастройкиОбъекта) Экспорт 
    Возврат Истина;
КонецФункции

#КонецОбласти   

Функция Подписки(Подписки) Экспорт

    Подписка = Подписки.Добавить();
    // Это событие фреймворка, в платформе такого нет.
    Подписка.Событие    = "ОбработкаКомандыФормы"; 
    Подписка.Издатель   = "Справочник.Номенклатура.Форма.ФормаЭлемента";
    // Здесь нужно указывать имя команды, а не элемента.
    Подписка.Элемент    = "КомандаФормы";
    // Обработчик переопределен.
    Подписка.Обработчик = "КомандаФормы";
    Подписка.Описание   = "Выводит сообщение о событии";

    Подписка = Подписки.Добавить();
    Подписка.Событие    = "ОбработкаКоманды";
    Подписка.Издатель   = "Справочник.Номенклатура.Команда.КомандаОбъекта1";
    // Обработчик переопределен.
    Подписка.Обработчик = "КомандаОбъекта";
    Подписка.Описание   = "Выводит сообщение о событии";

    Подписка = Подписки.Добавить();
    Подписка.Событие    = "ОбработкаКоманды";
    Подписка.Издатель   = "ОбщаяКоманда.ОбщаяКоманда1";
    // Обработчик переопределен.
    Подписка.Обработчик = "ОбщаяКоманда";
    Подписка.Описание   = "Выводит сообщение о событии";

    Возврат Истина;

КонецФункции    

#КонецОбласти

Модуль формы Подписки#

&НаКлиенте
Функция КомандаФормы(Команда, СвойстваСобытия) Экспорт

    ПоказатьПредупреждение(, "Обработка КОМАНДЫ ФОРМЫ конфигурации ...");
    Возврат Истина;

КонецФункции    

&НаКлиенте
Функция КомандаОбъекта(ПараметрКоманды, ПараметрыВыполненияКоманды, СвойстваСобытия) Экспорт

    ПоказатьПредупреждение(, "Обработка КОМАНДЫ ОБЪЕКТА конфигурации ...");
    Возврат Истина;

КонецФункции    

&НаКлиенте
Функция ОбщаяКоманда(ПараметрКоманды, ПараметрыВыполненияКоманды, СвойстваСобытия) Экспорт

    ПоказатьПредупреждение(, "Обработка ОБЩЕЙ КОМАНДЫ конфигурации ...");
    Возврат Истина;

КонецФункции

Результат#

Screenshot