Для каждого веб-модуля в секции ContextMenus можно настроить контекстные меню объектов.
Состав пунктов контекстных меню по умолчанию см. в разделе «Стандартные имена пунктов контекстного меню».
Рекомендации:
• | добавляйте в контекстное меню только часто используемые действия, как правило, связанные с выбранным объектом. Количество действий должно быть минимальным; |
• | по возможности соотнесите группировку действий контекстного меню с аналогичными кнопками на панели действий. Группы должны быть отделены друг от друга разделителями; |
• | если действия контекстного меню дублируют кнопки на панели действий, задайте им одинаковые наименования; |
• | располагайте действия в контекстном меню в последовательности: |
1. | Основные, часто используемые действия, например, «открыть», «запустить». |
2. | Дополнительные действия, например, «отправить по типовому маршруту». |
3. | Действия переноса, например, «вырезать», «копировать», «вставить». |
4. | Настройки объекта, например, «изменить состояние объекта». |
5. | Свойства объекта, например, «просмотр истории»; |
• | используйте значки только для часто используемых действий и действий, которые могут привести к необратимым последствиям, например, удаление объекта. |
Структура секции:
<ContextMenus>
<!-- Удаление всех контекстных меню по умолчанию -->
<clear />
<!-- Удаление конкретного контекстного меню по умолчанию -->
<remove name="{Тип удаляемого контекстного меню}" />
<!-- Настраиваемое контекстное меню -->
<ContextMenu
type="{Тип объекта, вызывающего меню}"
width="{Ширина меню}"
refcode="{Код справочника}">
<!-- Удаление всех пунктов контекстного меню по умолчанию -->
<clear />
<!-- Удаление конкретного пункта контекстного меню по умолчанию -->
<remove name="{Имя удаляемого пункта меню}" />
<!-- Пункты меню -->
<MenuItem
id="{ИД пункта меню}"
text="{Код строки локализации названия пункта}"
icon="{Значок пункта меню}"
jsaction="{Функция, которая выполняется при выборе пункта меню}" />
<!-- Разделитель пунктов меню -->
<Separator />
</ContextMenu>
</ContextMenus>
remove – удаление конкретного контекстного меню.
name. Тип объекта, вызывающего удаляемое контекстное меню. Возможные значения:
• | EDocumentVersion – список версий в карточек документа; |
• | ReferenceRecord – запись справочника в списке объектов; |
• | ReferenceRecordTable – запись справочника в списке записей справочника. |
ContextMenu – настраиваемое контекстное меню.
type. Тип объекта, вызывающего контекстное меню. Возможные значения.
width. Ширина отображаемого контекстного меню в пикселях.
refcode. Код справочника, для записей которого настраивается контекстное меню. Указывается только для ReferenceRecordTable.
remove – удаление конкретного пункта меню.
name. Имя удаляемого пункта меню. Возможные значения.
MenuItem – список пунктов меню.
id. ИД пункта меню. Возможные значения.
icon. Название файла значка пункта меню (без расширения), расположенного в папке App_Sprites корневой папки веб-сайта. Если подходящего значка нет, добавьте свой в формате SVG в папку svg или PNG в папку App_Sprites. Значок пункта меню должен иметь размер 16x16.
jsaction. Функция, которая выполняется при выборе пункта меню. При необходимости укажите параметры функции. Файл с текстом функции следует размещать в подпапке js корневой папки веб-сайта.
Пример
<ContextMenus>
<ContextMenu type="EDocument">
<MenuItem id="OpenForEdit"
text="EDIT"
icon="documentEdit-16"
jsaction="OpenWithAgent(this, true);" />
<MenuItem id="ViewInEditor"
text="VIEW_IN_EDITOR"
icon="documentRead-16"
jsaction="EDocument(this).ViewInEditor()" />
<Separator />
<MenuItem id="CreateVersion"
text="MENU_CREATE_VERSION"
jsaction="EDocument(this).CreateVersion();" />
<MenuItem id="Export"
text="TOOLBAR_EXPORT_IMPORT_GROUP_EXPORT"
icon="documentExport-16"
jsaction="EDocument(this).Export()" />
<MenuItem id="Import"
text="TOOLBAR_EXPORT_IMPORT_GROUP_IMPORT"
jsaction="EDocument(this).Import()" />
<Separator />
<MenuItem id="Card"
text="OPEN_CARD"
icon="card-16"
jsaction="ShowObjectCard(this, 'view=Card&mode=read')" />
<MenuItem id="RightsList"
text="MENU_RIGHTS"
jsaction="ShowObjectCard(this, 'view=RightsList&mode=read')" />
<Separator />
<MenuItem id="Sign"
text="SIGN"
icon="signYellow-16"
jsaction="SignEDoc(this.id)" />
<Separator />
<MenuItem id="CopyLink"
text="MENU_COPY_LINK"
icon="linkCopy-16"
jsaction="ObjCopyLink(this)" />
<MenuItem id="DeleteLink"
text="MENU_DELETE_LINK"
icon="linkDelete-16"
jsaction="ObjDeleteLink(this)" />
<Separator />
<MenuItem id="CopyDoc"
text="MENU_COPY_DOCUMENT"
jsaction="EDocument(this).CopyDoc()" />
<Separator />
<MenuItem id="SendAttach"
text="MENU_SEND_AS_ATTACHMENT"
jsaction="SendAsAttachment(this)" />
<Separator />
<MenuItem id="InsideFolders"
text="MENU_INSIDE_FOLDERS"
jsaction="ShowObjectCard(this, 'view=PlacedInFolders')" />
</ContextMenu>
</ContextMenus>
В результате у документов будет контекстное меню с пунктами:
|