Настройка операций пользовательского класса

Для настройки операций, которые будут доступны для объектов пользовательского класса, используйте вкладку «Операции» в окне «Класс <наименование класса>».

Для открытия окна

По умолчанию в таблице отображаются стандартные операции, недоступные для изменения и удаления.

Добавление операции

Редактирование операции

Удаление операции

Перемещение операции

На пользовательские операции можно раздавать права доступа, как и на стандартные операции. Для получения подробной информации обратитесь к разделу «Дополнительные параметры безопасности».

Максимальное допустимое количество пользовательских операций, которые могут быть созданы - 11.

Обработчики операций

Для обработки операций используется пользовательский класс, реализованный в одном из модулей репозитория. Методы-обработчики операций должны иметь следующую сигнатуру:

Sub <ИдентификаторОперации>(<Параметр>: IMetabaseObjectDescriptor);

В веб-приложении модуль и класс выбираются в раскрывающихся списках «Обработчик без визуальных компонентов» и «Класс». В настольном приложении выбор осуществляется на отдельной вкладке «Обработчики операций». Также, в зависимости от того, где осуществляется работа, имеется ряд отличий, которые представлены ниже.

Список системных операций, доступных в веб-приложении:

Для обработки операций могут использоваться веб-формы. Выбор веб-формы осуществляется из раскрывающегося списка «Веб-форма» у требуемой операции.  События OPEN и EDIT всегда обрабатываются только веб-формой. События DELETE и PASTE всегда обрабатываются только в пользовательском классе. Событие CREATEOBJECT и любые пользовательские события могут быть обработаны как веб-формой, так и в пользовательском классе. Если веб-форма не выбрана, то осуществляется обработка в пользовательском классе. Более подробное описание о настройке веб-форм представлено в подразделе «Использование веб-форм для обработки операций пользовательских классов».

Список системных операций, доступных в настольном приложении:

Операция Редактировать (EDIT) обрабатывается при создании и редактировании объекта пользовательского класса.

Для указания пользовательского класса используется отдельная вкладка «Обработчики операций»:

В раскрывающемся списке «Модуль» выберите модуль/форму/сборку, а в раскрывающемся списке «Класс» выберите класс, содержащий реализацию обработчиков операций.

Если предполагается создание параметрических объектов, то также должны быть определены методы с постфиксом WithParams и следующей сигнатурой:

Sub <ИдентификаторОперации>WithParams(<Параметр1>: IMetabaseObjectDescriptor; <Параметр2>: IMetabaseObjectParamValues);

В навигаторе объектов операции для объектов будут доступны, если соблюдены следующие условия:

Указание скрипта, обрабатывающего операции в веб-приложении, более не поддерживается и оставлено для совместимости с предыдущими версиями платформы.

Примеры классов-обработчиков операций:

Class WebOperations: Object
    Sub Createobject(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Создать"
    End Sub Createobject;
    
    Sub Open(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Открыть"
    End Sub Open;
    
    Sub Edit(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Редактировать"
    End Sub Edit;
    
    Sub Paste(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Вставить"
    End Sub Paste;

    Sub Delete(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Удалить"
    End Sub Delete;
    
    Sub Custom1(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка пользовательской операции
    End Sub Custom1;
    
    Sub Custom2(ObjDesc: IMetabaseObjectDescriptor);
    Begin
        // Обработка пользовательской операции
    End Sub Custom2;
End Class WebOperations;

Class Operations: Object
    Sub Open(Obj: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Открыть"
    End Sub Open;

    Sub Edit(Obj: IMetabaseObjectDescriptor);
    Begin
        // Обработка создания объекта пользовательского класса или операции "Редактировать"
    End Sub Edit;

    Sub Delete(Obj: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Удалить"
    End Sub Delete;

    Sub Paste(Obj: IMetabaseObjectDescriptor);
    Begin
        // Обработка операции "Вставить"
    End Sub Paste;

    Sub CLS1OP1(Obj: IMetabaseObjectDescriptor);
    Begin
        // Обработка первой пользовательской операции
    End Sub CLS1OP1;

    Sub CLS1OP2(Obj: IMetabaseObjectDescriptor);
    Begin
        // Обработка второй пользовательской операции
    End Sub CLS1OP2;
End Class Operations;

См. также:

Создание пользовательских классов