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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для быстрого поиска модуля в репозитории используйте строку поиска в раскрывающемся списке «Обработчик без визуальных компонентов». В зависимости от настроек отображения объектов введите в строку поиска наименование, идентификатор или ключ модуля, который необходимо найти. Поиск будет выполняться автоматически по мере ввода искомого текста. В списке будут только те модули, наименования/идентификаторы/ключи которых содержат вводимый текст. Для очистки строки нажмите кнопку «Очистить» или используйте клавишу BACKSPACE.

Для настройки отображения объектов репозитория на боковой панели нажмите кнопку «Отображение объекта» и выберите в раскрывающемся меню вариант отображения:

Выбрать можно несколько вариантов. Идентификатор и ключ будут указаны в скобках.

Ресурс может задаваться для конкретного класса или для всех классов на вкладке «Пользовательские метаданные > Классы объектов».

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

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

Для обработки операций могут использоваться веб-формы. Выбор веб-формы осуществляется из раскрывающегося списка «Веб-форма» у требуемой операции.

Для быстрого поиска веб-формы в репозитории используйте строку поиска в раскрывающемся списке «Веб-форма». В зависимости от настроек отображения объектов введите в строку поиска наименование и/или идентификатор веб-формы, которую необходимо найти. Поиск будет выполняться автоматически по мере ввода искомого текста. В списке будут только те веб-формы, наименования которых содержат вводимый текст. Для очистки строки нажмите кнопку «Очистить» или используйте клавишу BACKSPACE.

Для настройки отображения объектов репозитория на боковой панели нажмите кнопку «Отображение объекта» и выберите в раскрывающемся меню вариант отображения:

  • Наименование. Объекты отображаются под своими наименованиями. Вариант по умолчанию;

  • Идентификатор. Объекты отображаются под своими идентификаторами;

  • Ключ. Объекты отображаются под своими ключами.

Выбрать можно несколько вариантов. Идентификатор и ключ будут указаны в скобках.

События 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;

См. также:

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