diff --git a/.github/workflows/generate-puml-svg.yml b/.github/workflows/generate-puml-svg.yml
new file mode 100644
index 00000000..e19e53ef
--- /dev/null
+++ b/.github/workflows/generate-puml-svg.yml
@@ -0,0 +1,23 @@
+name: generate plantuml
+on: push
+jobs:
+ generate_plantuml:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ repository-projects: write
+ name: plantuml
+ steps:
+ - name: checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 1
+ - name: plantuml
+ id: plantuml
+ uses: grassedge/generate-plantuml-action@v1.5
+ with:
+ message: "Render PlantUML files"
+ path: docs/images
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git "a/docs/ER\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270.md" "b/docs/ER\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270.md"
new file mode 100644
index 00000000..882e5a6d
--- /dev/null
+++ "b/docs/ER\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270.md"
@@ -0,0 +1,3 @@
+# ER-диаграмма подсистемы управление интеграциями
+
+![image](images/ERArchitectureIntegrationsSubsystem.svg)
\ No newline at end of file
diff --git a/docs/images/ERArchitectureIntegrationsSubsystem.svg b/docs/images/ERArchitectureIntegrationsSubsystem.svg
new file mode 100644
index 00000000..6c448a69
--- /dev/null
+++ b/docs/images/ERArchitectureIntegrationsSubsystem.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/puml/ERArchitectureIntegrationsSubsystem.puml b/docs/puml/ERArchitectureIntegrationsSubsystem.puml
new file mode 100644
index 00000000..a01a4c41
--- /dev/null
+++ b/docs/puml/ERArchitectureIntegrationsSubsystem.puml
@@ -0,0 +1,210 @@
+@startuml integrations_subsystem
+
+title ER-Diagram integrations subsystem
+
+entity "Справочник: Интегрируемые системы" as eSysInt {
+ *УникальныйИдентификатор : uuid <>
+ --
+ *Код : строка (9)
+ *Наименование : строка (100)
+ Родитель (иерархия групп) : uuid <>
+ ИдентификаторНастройки : строка (100)
+}
+
+entity "Справочник: Настройки интеграции" as eIntSettings {
+ *УникальныйИдентификатор : uuid <>
+ --
+ *Код : строка (9)
+ *Наименование : строка (100)
+ Родитель (иерархия групп) : uuid <>
+ ИнтегрируемаяСистема : uuid <>
+ ТипИнтеграции : uuid <>
+ СтрокаПодключения : строка (100)
+ Порт : строка (7)
+ ВнешняяКомпонента : хранилище значений
+ УчетнаяЗапись : uuid <>
+ ТипАвторизации : uuid <>
+ ИдентификаторНастройки : строка (100)
+ ИспользоватьПользовательскиеФункции : булево
+ Имя объекта : строка (100)
+ ИзмененВручную : булево
+ ИмяФайлаВнешнейКомпоненты : строка (100)
+}
+
+entity "Безопасное хранилище" as eSecureStorage {
+ *Ссылка : uuid <>
+ *Ключ : строка : "Логин", "Пароль", "Токен"
+ Значение : строка
+}
+
+entity "Справочник: Типы интеграций" as eIntTypes {
+ *УникальныйИдентификатор : uuid <>
+ --
+ *Код : строка (9)
+ *Наименование : строка (100)
+ Родитель (иерархия элементов) : uuid <>
+}
+
+enum "Справочник: Типы интеграций - предопределенные элементы" as eIntTypes_predetermined {
+ + Файловые обмены:
+ - Каталог
+ - FTP-ресурсы
+ - Почтовый клиент
+ + Прямое подключение к БД:
+ - -
+ + Вызов внешней процедуры:
+ - SOAP
+ - REST API
+ - COM
+ - Внешняя компонента
+ - Командная строка
+ + Брокеры сообщений:
+ - RabbitMq
+ - Kafka
+}
+
+entity "Справочник БСП: Учетные записи электронной почты" as eEmailAccounts {
+ УникальныйИдентификатор : uuid <>
+}
+
+enum "Перечисление: Типы авторизации" as eAuthorizationTypes {
+ + Базовая
+ + Токен
+}
+
+entity "Справочник: Интеграционные потоки" as eIntFlows {
+ *УникальныйИдентификатор : uuid <>
+ --
+ *Код : строка (9)
+ *Наименование : строка (100)
+ Родитель (иерархия элементов) : uuid <>
+ ИдентификаторНастройки : строка (100)
+ НастройкаИнтеграции : uuid <>
+ ТочкаВхода : строка (неогр)
+ ПользовательскаяФункция : uuid <>
+ ИзмененВручную : булево
+ --
+ Параметры входа
+ --
+ - НомерСтроки
+ - Имя : строка (неогр)
+ - Тип : uuid <>
+ - ПараметрURL : булево
+ - ЗначениеПоУмолчанию : булево, строка, число, дата, любая ссылка
+ - ПолеОбъекта : строка (100)
+}
+
+enum "Перечисление: Методы запроса REST" as eRestMethodTypes {
+ + GET
+ + POST
+ + PUT
+ + PATCH
+ + DELETE
+}
+
+entity "Справочник: Пользовательские функции" as eUserFunctions {
+ УникальныйИдентификатор : uuid <>
+}
+
+enum "Перечисление: Типы параметров интеграций" as eIntParamsTypes {
+ + Строка
+ + Число
+ + Булево
+ + Null
+ + Массив
+ + Объект
+ + Дата
+}
+
+entity "Справочник: История интеграции" as eIntHistory {
+ *УникальныйИдентификатор : uuid <>
+ --
+ *Код : строка (36)
+ ДатаИнтеграции : дата и время
+ ДатаИнтеграцииВМиллисекундах : число (20, 0)
+ ИнтегрируемаяСистема : uuid <>
+ Статус : uuid <>
+ ФорматИнтеграции : uuid <>
+ ИсходящееСообщение : строка (неогр)
+ ВходящееСообщение : строка (неогр)
+ ОписаниеОшибки : строка (неогр)
+ ПротоколОбмена : строка (неогр)
+ ИнтеграционныйПоток : uuid <>
+ Ошибка : булево
+ Пользователь : uuid <>
+ ДлительностьОбмена : число (5, 0)
+ ДлительностьВызова : число (5, 0)
+ --
+ Объекты интеграции
+ --
+ - НомерСтроки
+ - ОбъектИнтеграции : любая ссылка
+ - СозданОбновлен : uuid <>
+}
+
+enum "Перечисление: Статусы интеграции" as eIntStatuses {
+ + Выгружено
+ + Загружено
+ + ОшибкаВыгрузки
+ + ОшибкаЗагрузки
+}
+
+enum "Перечисление: Форматы интеграции" as eIntFormates {
+ + XML
+ + JSON
+ + DBF
+ + CSV
+ + TXT
+ + XLS / XLSX
+ + BAT / SH
+ + DLL
+ + HTML
+ + ПроизвольныйФормат
+}
+
+entity "Справочник БСП: Пользователи" as eUsers {
+ УникальныйИдентификатор : uuid <>
+}
+
+enum "Перечисление: Создан обновлен" as eCreatedUpdated {
+ + Создан
+ + Обновлен
+}
+
+
+
+eSysInt <- eSysInt : Родитель
+
+eIntSettings <- eIntSettings : Родитель
+eIntSettings ---> eSysInt : ИнтегрируемаяСистема
+eIntSettings ---> eIntTypes : ТипИнтеграции
+eIntSettings ..> eSecureStorage : Хранение параметров подключения
+eIntSettings ---> eEmailAccounts : УчетнаяЗапись
+eIntSettings ---> eAuthorizationTypes : ТипАвторизации
+eIntSettings .. eIntTypes_predetermined
+
+eIntFlows <- eIntFlows : Родитель
+eIntFlows --> eIntSettings : НастройкаИнтеграции
+eIntFlows --> eUserFunctions : ПользовательскаяФункция
+eIntFlows --> eIntParamsTypes : Тип (параметры входа)
+
+eIntHistory --> eSysInt : ИнтегрируемаяСистема
+eIntHistory --> eIntStatuses : Статус
+eIntHistory --> eIntFormates : ФорматИнтеграции
+eIntHistory --> eIntFlows : ИнтреграционныйПоток
+eIntHistory --> eUsers : Пользователь
+eIntHistory -> eCreatedUpdated : СозданОбновлен (объекты интеграции)
+
+
+newpage
+
+
+note as eIntSettings_predetermined
+ Справочник: Настройки интеграции - предопределенные элементы
+ <#lightblue,#black>|= Код |= Наименование |= Родитель |= ИнтегрируемаяСистема |= ТипИнтеграции |= СтрокаПодключения |= Порт |= ВнешняяКомпонента |= УчетнаяЗапись |= ТипАвторизации |= ИдентификаторНастройки |= ИспользоватьПользовательскиеФункции |= Имя COM-объекта |= ИзмененВручную |
+ <#white>| 000000001 | RabbitMQ | <пустая ссылка> | RabbitMQ | RabbitMQ | <путь к серверу> | <порт сервера> | - | <пустая ссылка> | "базовая" по умолчанию | <идентификатор> | Ложь | - | Ложь |
+ <#white>| 000000002 | Kafka | <пустая ссылка> | Kafka | Kafka | <путь к серверу> | <порт сервера> | - | <пустая ссылка> | "базовая" по умолчанию | <идентификатор> | Ложь | - | Ложь |
+ <#white>| 000000003 | ActiveDirectory | <пустая ссылка> | ActiveDirectory | COM | Provider="ADsDSOObject" | - | - | <пустая ссылка> | "базовая" по умолчанию | <идентификатор> | Ложь | ADODB.Connection | Ложь |
+end note
+
+@enduml
\ No newline at end of file