﻿# Создать модуль

> [HTML Version](create-extention.html)

Вы можете создавать собственные модули для платформы ELMA365. Например, можно настраивать новые виджеты для форм или действия для бизнес-процессов со сложной логикой. Такие модули можно многократно использовать для решения разных задач. Можно написать интеграцию со сторонней системой или добавить свой метод API.

Чтобы создать собственный модуль:

1. Перейдите в **Администрирование** **>** **Модули**.

2. Нажмите кнопку **+ Модуль** и в открывшемся окне выберите опцию **Создать**.

3. Укажите название и описание модуля, выберите иконку и нажмите **Создать**.

**(create-module-1.png)**

После этого вы перейдёте на страницу управления модулем. Работа осуществляется на отдельных вкладках: 

- [Основные](#main-tab) — общая информация о модуле: название, графическое обозначение, краткое и полное описание, ссылка на документацию, описывающую процесс работы с модулем, разработчик, создавший данный модуль, ссылка на сайт разработчика; 

- [Настройки](extention-settings.md) — глобальные параметры модуля;

- [Виджеты](extention-widegets.md) — разработайте свои собственные виджеты для форм бизнес-процессов, приложений, страниц разделов и т. д.;

- [Методы API](extention-api.md) — создайте методы модуля, которые будут доступны из внешних систем. Например, для запуска бизнес-процесса из внешнего приложения. Методы также можно вызывать из скриптов на формах виджетов, процессов и страниц в ELMA365;

- [Действия в БП](extention-activities.md) — добавьте новые действия для бизнес-процессов;

- [Процессы](extention-processes.md) — бизнес-процессы, работающие в рамках модуля, которые используются для настройки действий;

- [Сервисы](portable-services.md) — интегрируйте пользовательские переносимые микросервисы в модуль, чтобы расширить его функциональные возможности и решить множество задач в ELMA365;

- [Обработка событий](events_processing.md) — создайте и настройте действия, совершаемые в системе при наступлении определённых событий. События можно обрабатывать при помощи [скриптов](script-activity.md), настроить [запуск процесса](call-process-activity.md), а также отправлять сообщения о произошедшем событии во [внешний сервис](custom_services.md);

- [Внешнее приложение](module-external-app.md) — подключите внешнее приложение, чтобы предоставить доступ сторонним сервисам к защищённым ресурсам ELMA365 по протоколу авторизации OAuth2. После этого данные из ELMA365 могут служить способом аутентификации на стороннем сервисе, а также источником для обращения через Web API;

- [Внешние сервисы](module-soap-service.md) — настройте интеграцию с веб-сервисом, использующим протокол SOAP (Simple Object Access Protocol), для обмена данными с ELMA365. Это позволит получить доступ к языку описания веб-сервиса (WSDL) и обращаться к его методам и типам данных в серверных скриптах, чтобы использовать их для решения задач в ELMA365;

- [Переводы](translate-configuration-and-components.md)** **— добавьте файлы формата **.po** с переводом ресурсов на языки, которые отличаются от исходного языка модуля;

- [Показатели](business-process-metrics.md) — создайте и опубликуйте показатель, с помощью которого можно оценивать эффективность исполнения экземпляров бизнес-процессов по различным параметрам.

Настроенный модуль можно выгрузить в виде файла формата **.e365**. Подробнее об этом читайте в статье [«Экспорт модуля»](export_extention.md). После импорта в другую компанию пользователи могут [управлять модулем](manage-extention.md). 

Вы можете изменить настройки модуля. Для этого в разделе **Администрирование > Модули** наведите курсор на модуль и нажмите появившийся значок шестерёнки. Откроется страница управления модулем. После внесения изменений сохраните их.

Если в системе активировано создание версий структур, после создания модуля вы можете [фиксировать и восстанавливать его версии](#versions).

## Вкладка «Основные»

Дополните или отредактируйте основную информацию о модуле. 

 **(create-module-2.png)**

- **Название\*** — наименование модуля;

- **Иконка **— графическое обозначение модуля;

- **Краткое описание\* **— информация о возможностях модуля, которая отображается в** **разделе **Администрирование**;

- **Детальное описание **— подробное описание функций модуля;

- **Язык** — язык, который считается для модуля исходным. Определяет исходный язык при [переводе на уровне компонента](localization.md#translation-levels);

- **Ссылка на справку **— ссылка на документацию, описывающую процесс работы с модулем;

- **Разработчик **— компания-разработчик, создавшая модуль;

- **Сайт разработчика **— ссылка на сайт разработчика. 

Укажите всю необходимую информацию и нажмите **Сохранить**.

## Управление версиями модуля

Если в системе включено [версионирование структур](elma365-structure-versioning.md), вы можете вручную зафиксировать версию модуля после его создания.

Версия модуля включает текущие версии его виджетов, процессов и методов API. Другие структуры модуля и настройки не входят в состав его версии, т. к. для них не поддерживается версионирование.

В дальнейшем, если будут вноситься изменения в виджеты, процессы или методы API и обнаружится ошибка в работе модуля, можно быстро восстановить его предыдущую версию. При этом другие структуры в составе модуля и настройки модуля не будут изменены или удалены. 

Рассмотрим пример. Вы сохранили **Версию 1**. Затем добавили в модуль пользовательский виджет, а также **Действие в БП** и создали **Версию 2**. Далее в работе виджета обнаружилась ошибка, и вы восстанавливаете **Версию 1**.

Новая версия модуля не будет содержать виджет, добавленный в **Версии 2**, но будет включать **Действие в БП**, т.к. оно не связано с составом версий модуля.

Подробнее о работе с версиями читайте в статье [«Управление версиями конфигурации»](configuration-versioning.md).