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


По умолчанию в таблице отображаются стандартные операции, недоступные для изменения и удаления.
На пользовательские операции можно раздавать права доступа, как и на стандартные операции. Для получения подробной информации обратитесь к разделу «Дополнительные параметры безопасности».
Максимальное допустимое количество пользовательских операций, которые могут быть созданы - 11.
Для обработки операций используется пользовательский класс, реализованный в одном из модулей репозитория. Методы-обработчики операций должны иметь следующую сигнатуру:
Sub <ИдентификаторОперации>(<Параметр>: IMetabaseObjectDescriptor);
В веб-приложении модуль и класс выбираются в раскрывающихся списках «Обработчик без визуальных компонентов» и «Класс».
Для быстрого поиска модуля в репозитории используйте строку поиска в
раскрывающемся списке «Обработчик без
визуальных компонентов». В зависимости от настроек отображения
объектов введите в строку поиска наименование, идентификатор или ключ
модуля, который необходимо найти. Поиск будет выполняться автоматически
по мере ввода искомого текста. В списке будут только те модули, наименования/идентификаторы/ключи
которых содержат вводимый текст. Для очистки строки нажмите кнопку
«Очистить» или используйте клавишу
BACKSPACE.
Для настройки отображения объектов репозитория на боковой панели нажмите
кнопку
«Отображение
объекта» и выберите в раскрывающемся меню вариант отображения:
Наименование. Объекты отображаются под своими наименованиями. Вариант по умолчанию;
Идентификатор. Объекты отображаются под своими идентификаторами;
Ключ. Объекты отображаются под своими ключами.
Выбрать можно несколько вариантов. Идентификатор и ключ будут указаны в скобках.
Ресурс может задаваться для конкретного класса или для всех классов на вкладке «Пользовательские метаданные > Классы объектов».
В настольном приложении выбор осуществляется на отдельной вкладке «Обработчики операций». Также, в зависимости от того, где осуществляется работа, имеется ряд отличий, которые представлены ниже.
Список системных операций, доступных в веб-приложении:
CREATEOBJECT
OPEN
EDIT
DELETE
PASTE
Для обработки операций могут использоваться веб-формы. Выбор веб-формы осуществляется из раскрывающегося списка «Веб-форма» у требуемой операции.
Для быстрого поиска веб-формы в репозитории используйте строку
поиска в раскрывающемся списке «Веб-форма».
В зависимости от настроек отображения объектов введите в строку
поиска наименование и/или идентификатор веб-формы, которую необходимо
найти. Поиск будет выполняться автоматически по мере ввода искомого
текста. В списке будут только те веб-формы, наименования которых
содержат вводимый текст. Для очистки строки нажмите кнопку
«Очистить» или используйте
клавишу BACKSPACE.
Для настройки отображения объектов репозитория на боковой панели нажмите
кнопку
«Отображение
объекта» и выберите в раскрывающемся меню вариант отображения:
Наименование. Объекты отображаются под своими наименованиями. Вариант по умолчанию;
Идентификатор. Объекты отображаются под своими идентификаторами;
Ключ. Объекты отображаются под своими ключами.
Выбрать можно несколько вариантов. Идентификатор и ключ будут указаны в скобках.
События OPEN и EDIT всегда обрабатываются только веб-формой. События DELETE и PASTE всегда обрабатываются только в пользовательском классе. Событие CREATEOBJECT и любые пользовательские события могут быть обработаны как веб-формой, так и в пользовательском классе. Если веб-форма не выбрана, то осуществляется обработка в пользовательском классе. Более подробное описание о настройке веб-форм представлено в подразделе «Использование веб-форм для обработки операций пользовательских классов».
Список системных операций, доступных в настольном приложении:
OPEN
OPENWITHPARAMS
EDIT
DELETE
PASTE
Операция Редактировать (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;
См. также: