﻿# Зоны расширения для виджетов в модулях

> [HTML Version](extension-zones.html)

Вы можете изменять некоторые интерфейсы системы с помощью зон расширения для виджетов, созданных в пользовательских модулях. 

Например, можно заменить содержимое блока о сотруднике в разделе **Компания** или добавить кнопки для запуска процесса из модуля на верхнюю панель формы просмотра приложения.

Зоны расширения определяют, где будет использоваться виджет из модуля и какую часть интерфейса он заменит или дополнит. Для этого зоны расширения объединены в группы по местам доступности в системе и их назначению. Например, **Группа зон расширения пользователей** содержит несколько опций. Каждая из них позволяет отобразить создаваемый виджет вместо стандартного блока о сотруднике в определённом месте системы.  



## Выбрать зону расширения под назначение виджета

С помощью таблицы вы можете подобрать зону расширения для виджета, создаваемого в пользовательском модуле.

| | |
|------|------|
| **Что нужно сделать** | **Какую зону расширения выбрать** |
| Изменить содержимое блоков с информацией о сотрудниках:<br>- в окне, всплывающем при нажатии на имя пользователя;<br>- на вкладке **Профиль** в настройках пользователя;<br>- на некоторых страницах раздела **Компания**.<br> | [Группа зон расширения пользователя](#user-widgets-extentions) |
| Расширить функциональность верхней панели на форме просмотра приложения | [Группа зоны расширения тулбара > Зона расширения тулбара](#toolbar-extention-zone-group) |
| Заменить содержимое в виджете **Иерархическая структура**  | [Иерархическая структура > Меню элемента структуры](#hierarchy)  |
| Запустить сбор метрик или инициализировать скрипт при запуске системы | [Общие > Корневой компонент](#general) |
| При подписании документа добавить возможность использования МЧД и изменения провайдера электронной подписи | [Подпись приложения](#signature) |
| Настроить просмотр и редактирование документов через пользовательский модуль интеграции с редактором файлов | [Предпросмотр файлов > Страница предпросмотра](#preview-page) |
| Отобразить виджет на верхней панели страниц приложений со списком элементов  | [Список элементов приложения > Зона расширения тулбара](#application-elements-list) |




Для использования и работы виджетов в указанных зонах расширения включите модуль, в котором такой виджет создан. Подробнее о том, как создать виджет с зоной расширения, читайте в статье [«Виджеты в модулях»](extention-widegets.md). 

В этой статье рассмотрим типы зон расширения, доступные в настройках виджета.

## Группа зон расширения пользователя 

С помощью зон расширения пользователя вы можете создать в модуле виджеты и заменить ими стандартные блоки с данными о сотрудниках. Каждая из зон расширения определяет место в системе, где отобразится настроенный виджет. 

Когда вы добавляете в модуль виджет с любой из зон расширения пользователя, в контексте виджета становятся доступны следующие свойства:

- **User** — поле типа [Пользователи](360009707032.md#users);

- **Employee** — поле типа **Приложение**, в котором указан справочник [Сотрудники](system_objects.md#employees).

Виджет создаётся с нуля: в дизайнере интерфейсов на вкладке **Шаблон** разместите на поле для моделирования нужные вложенные поля свойств **User** и **Employee**. Содержимое настроенного виджета отобразится в блоке о сотруднике.

Например, в контекст справочника **Сотрудники** вы добавили поле **Формат работы**. По умолчанию оно не отображается во всплывающем окне при нажатии на имя сотрудника. Чтобы показать это поле, создайте виджет с зоной расширения **Поповер с краткой информацией** и добавьте в него нужные поля, включая поле **Формат работы**. 

### Поповер с краткой информацией

Позволяет заменить стандартный блок с данными о сотруднике во всплывающем окне, которое открывается при нажатии на имя сотрудника.   
(extension-zones-1.png)

### Профиль пользователя

Используется, чтобы заменить блок с информацией о сотруднике, который открывается при нажатии на странице **Компания > Исполнительская дисциплина** на аватар или имя пользователя.  
(extension-zones-2.png)

### Редактирование профиля пользователя

Позволяет заменить содержимое вкладки **Профиль** в [настройках пользователя](360016398552.md#profile).   
(extension-zones-3.png)

В виджете с зоной расширения **Редактирования профиля пользователя** форма создаётся с нуля:

1. В дизайнере интерфейсов на вкладке **Шаблон** вынесите вложенные поля из свойств **User** и **Employee**, значения которых сможет изменять сотрудник.

2. На вкладке **Шаблон** добавьте виджет [Кнопка](button_widget.md) с названием **Сохранить**.

3. На вкладке **Скрипты** напишите скрипт, с помощью которого сохранятся внесённые сотрудником изменения. В скрипте используйте:

- метод `save() `ко всем полям, которые вы добавили на форму, чтобы сохранить значения, указанные сотрудником;

- переменную типа **Выбор «да/нет»** с кодом `isSavedSuccessfully`, чтобы отобразить системное сообщение об успешном сохранении данных. Для этого установите для этой переменной значение `true`.

4. В настройках виджета **Кнопка** укажите созданный скрипт.

5. Сохраните и опубликуйте настроенный виджет.

Пока модуль с виджетом будет включён, пользователи в настройках своего профиля будут использовать настроенную форму для изменения своих данных.

### Карточка сотрудника раздела Компания

Позволяет заменить стандартный блок о  сотруднике, который отображается на следующих страницах раздела **Компания**: **Сотрудники**, **Мой отдел**, **Новые сотрудники**, **Дни рождения**, **График отсутствий**, **Мои замещения** и **Исполнительская дисциплина**.

По умолчанию в блоках о сотрудниках на этих страницах доступны ссылка на профиль пользователя, его должность и статус отсутствия.

**(extension-zones-6.png)**



## Группа зоны расширения тулбара 

На верхней панели формы просмотра всех приложений размещён виджет [Зона расширения тулбара](toolbar-extention-zone.md). По умолчанию он пуст. Если в модуле создать виджет с опцией **Группа зоны расширения тулбара > Зона расширения тулбара**, он отобразится на форме. 

Например, таким образом можно вынести кнопку на форму приложения, которая запускает бизнес-процесс, настроенный в модуле.   
(toolbar_2.png)

## Иерархическая структура 

При выборе зоны расширения** Иерархическая структура > Меню элемента структуры** содержимое создаваемого виджета отобразится там, где размещён виджет [Иерархическая структура](hierarchy-structure-widget.md) и автоматически заменит информацию, отображаемую в нём по умолчанию.



## Общие

При выборе зоны расширения** Общие > Корневой компонент** создаваемый виджет инициализируется, и его [скрипт](client_server_scripts.md) выполнится при загрузке системы. В скрипт виджета добавьте функцию `async function onInit()`  и в этой функции пропишите вызов метода, который должен выполниться. Например, можно задать метрики посещаемости страниц системы, отслеживая в скрипте изменение URL-адреса.

````
начало внимание

````
Если в скрипте виджета используется [константа Global](global-constants.md), модуль с таким виджетом не экспортируется.

````
конец внимание

## ````
Подпись приложения 

По умолчанию на верхней панели формы просмотра всех приложений размещён виджет [Подпись приложения](app-signature.md), с помощью которого сотрудники могут подписать элементы приложений электронной подписью. Вы можете расширить функциональность этого виджета, используя группу зон расширения **Подпись приложения**: 

- **Выбор МЧД при подписании** — позволяет указать доверенность, подтверждающую право подписи документа;

- **Информация о МЧД в архиве подписей** — в архиве подписей можно отображать данные о применённой доверенности.  
  
Опции выбора МЧД при подписании и отображения в архиве подписей применяются, если в компании установлено бизнес-решение [Управление МЧД](m4d-management.md). Подробнее читайте в статье [«Пользовательский модуль для выбора МЧД при подписании»](m4d-for-signing.md);

- **Подпись приложения на форме просмотра** — при подписании документа можно выбрать нового провайдера электронной подписи.  
(extension-zones-5.png)

## Предпросмотр файлов

Для просмотра и редактирования документов доступны модули интеграции с [OnlyOffice](onlyoffice.md) и [Р7-Офис](r7-office.md). Если нужный формат файлов в них не поддерживается, создайте пользовательский модуль и добавьте в него виджет с зоной расширения **Предпросмотр файлов > Страница предпросмотра**. Он позволит работать с файлами тех форматов, для которых вы настроите модуль. 

С примером можно ознакомиться в статье [«Пользовательский модуль для просмотра и редактирования файлов»](external_viewer_intergation.md), а также в [справке ELMA365 TS SDK](https://tssdk.elma365.com/ru/latest/pages/quick-start/start-working-with-file-preview.html).



## Список элементов приложения

С помощью зоны расширения **Список элементов приложения > Зона расширения тулбара** создаваемый виджет можно разместить на верхней панели страницы приложения. 

По умолчанию на этой панели есть виджет [Зона расширения тулбара](toolbar-extention-zone.md), который позволяет пользователям на страницах приложений работать с виджетами модуля. Например, можно добавить кнопку для запуска процесса из модуля, которая отобразится справа от стандартной кнопки создания элемента приложения.

