diff --git a/docs/Admin manuals/framework/Config/Email/component-step1.jpg b/docs/Admin manuals/framework/Config/Email/component-step1.jpg deleted file mode 100644 index c5b1d2a..0000000 Binary files a/docs/Admin manuals/framework/Config/Email/component-step1.jpg and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Email/component-step2.jpg b/docs/Admin manuals/framework/Config/Email/component-step2.jpg deleted file mode 100644 index c4fbf61..0000000 Binary files a/docs/Admin manuals/framework/Config/Email/component-step2.jpg and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Email/component-step20.jpg b/docs/Admin manuals/framework/Config/Email/component-step20.jpg deleted file mode 100644 index 4cffa69..0000000 Binary files a/docs/Admin manuals/framework/Config/Email/component-step20.jpg and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Email/component-step3.jpg b/docs/Admin manuals/framework/Config/Email/component-step3.jpg deleted file mode 100644 index 5d4d89e..0000000 Binary files a/docs/Admin manuals/framework/Config/Email/component-step3.jpg and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Email/component-step30.jpg b/docs/Admin manuals/framework/Config/Email/component-step30.jpg deleted file mode 100644 index 8ec3ca6..0000000 Binary files a/docs/Admin manuals/framework/Config/Email/component-step30.jpg and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Email/Интеграция с почтовым клиентом.md b/docs/Admin manuals/framework/Config/Email/Интеграция с почтовым клиентом.md deleted file mode 100644 index 1cb5124..0000000 --- a/docs/Admin manuals/framework/Config/Email/Интеграция с почтовым клиентом.md +++ /dev/null @@ -1,141 +0,0 @@ -# Интеграция с почтовым клиентом - -## Общая информация - -Для подключения почтового клиента к dbmail следует пройти несколько шагов: - -1. Настроить почту, с которой должна осуществляться рассылка. -2. Настроить конфигурационный файл проекта. -3. Настроить роли сервера. -4. Создать учётную запись и профиль в SQL Server Management Studio (SSMS). -5. Проверить работоспособность рассылки при помощи SQL-запроса. - -## Настройка почты - -Настройка почты, с которой должна осуществляться рассылка, хорошо описана [здесь](https://www.advantshop.net/help/pages/email-google-yandex). К рассмотрению рекомендуется раздел "Примеры настроек для различных почтовых сервисов" для "Почта Яндекс", включая такие подпункты как "Пароли приложения" и "Возможные ошибки при использовании @yandex.ru и SSL настройки". - -## Настройка конфигурационного файла проекта - -### Настройки сервиса электронной почты и смс сообщений - -Чтобы отправка писем на почту работала, необходимо подключить почтовый ящик в разделе **applications.post.emails**. - -!!! note - Раздел applications { post { }} конфигурационного файла ./config/production.js - -- _**protocol**_ – используемый веб-протокол (по умолчанию `'http'`). -- _**host**_ – имя хоста (по умолчанию `'localhost'`). -- _**port**_ – порт для запуска (по умолчанию – `3066`). -- _**route**_ – используемый маршрут (по умолчанию `'/api/v2.0/post'`). -- _**script**_ – путь к модулю, запускающему сервис (по умолчанию `'ecosoft-lexema8/post'`). -- _**attachmentRequestTimeout**_ – максимальное время ожидания загрузки файла в миллисекундах (по умолчанию `1000`). -- _**defaultEmailId**_ – идентификатор почтового ящика, который используется по умолчанию. -- _**emails**_ – словарь с описанием используемых почтовых ящиков. Ключом является уникальный идентификатор почтового ящика, а значением – объект со свойствами: - * *host* – имя хоста smtp-сервера. - * *port* – порт smtp-сервера. - * *secure* – включить/выключить доставку по электронной почте с использованием TLS/STARTTLS (по умолчанию `false`). Доступные значения: `true`, `false`. (Для 'smtp.yandex.ru' значение должно быть `true`) - * *user* – логин. - * *pass* – пароль. - * *userName* – имя отображаемое при отправке почты. - -### Пример - -``` js -applications: { - // ... - post: { - defaultEmailId: 'default', - emails: { - default: { - host: 'smtp.gmail.com', - port: 587, - secure: false, - user: 'lexemaecm@gmail.com', - pass: 'password', - userName: 'Lexema' - } - }, - // ... -} -``` - -## Настройка ролей сервера - -Для дальнейшей настройки в SSMS потребуется назначить текущем пользователю роль _sysadmin_ (или использовать пользователя с такой ролью). Для этого необходимо открыть "Обозреватель объектов". В нижней его части раскрыть папку "Безопасность" -> "Имена для входа (Logins)" -> кликнуть правой кнопкой мыши (ПКМ) по логину интересующего пользователя -> выбрать пункт "Свойства" и перейти в раздел "Роли сервера". Слева от роли sysadmin должна стоять галочка. - -## Учётная запись и профиль в SSMS - -Настройку dbmail в SSMS можно произвести двумя путями: с помощью SQL-запросов и с помощью интерфейса самой программы SSMS. Ниже приведена инструкция по настройке при помощи интерфейса. Требующиеся для аналогичной настройки на текущем и последующих шагах команды можно найти [здесь](https://habr.com/ru/post/179819/). - -В SSMS необходимо открыть "Обозреватель объектов". В нижней его части раскрыть папку "Управление" и кликнуть ПКМ по пункту "Компонент Database Mail" и выбрать действие "Настроить компонент Database Mail". - -![Рисунок 1 "Настроить компонент Database Mail"](component-step1.jpg) - -Далее необходимо создать учётную запись и профиль. Обязательные поля выделены красными прямоугольниками. - -![Рисунок 2.1 Учетная запись. Обязательные поля](component-step20.jpg) - -Следующие изображения с вариантами заполнения полей служат в качестве примера. - -![Рисунок 2.2 Учетная запись. Пример](component-step2.jpg) - -![Рисунок 3.1 Профиль. Обязательные поля](component-step30.jpg) - -В поле "Профиль по умолчанию" (Default Profile) можно выбрать "Да" (Yes), если на проекте используется только этот профиль. - -![Рисунок 3.2 Профиль. Пример](component-step3.jpg) - -## Проверка работоспособности рассылки при помощи SQL-запроса - -Ниже приведен запрос для первой отправки сообщения от подключенной почты при помощи dbmail. Непосредственно отправка письма осуществляется при помощи выполнения команды ```exec msdb.dbo.sp_send_dbmail```, остальные служат для донастройки (при необходимости) и проверки статуса отправки письма (```msdb.dbo.sysmail_allitems```, ```msdb.dbo.sysmail_event_log```) - -``` sql --- в настройках нужно указать созданный профиль: ---update DocflowSettings set EMailProfile='bitedo' - --- Сначала включим Service broker – он необходим для создания очередей писем, используемых DBMail -IF (SELECT is_broker_enabled FROM sys.databases WHERE [name] = 'msdb') = 0 - ALTER DATABASE msdb SET ENABLE_BROKER WITH ROLLBACK AFTER 10 SECONDS -GO --- Включим непосредственно систему DBMail -sp_configure 'show advanced options', 1; -- если стоит 0, то следующая настройка не сработает -GO -RECONFIGURE; -GO -sp_configure 'Database Mail XPs', 1 -GO -RECONFIGURE -GO - --- Далее нужно проверить, запущена ли служба DBMail: -EXECUTE msdb.dbo.sysmail_help_status_sp --- И если она не запущена (ее статус не «STARTED»), то запустить ее запросом -EXECUTE msdb.dbo.sysmail_start_sp --- ищем здесь свой @profile_name -EXECUTE msdb.dbo.sysmail_help_principalprofile_sp --@principal_name = 'bitedo' - --- отправим тестовое сообщение -exec msdb.dbo.sp_send_dbmail @profile_name = 'bitedo' -- отправитель - , @recipients = 'user@lexema.ru' -- получатели, указывается через ; - , @subject = 'theme' -- тема - , @body = 'hello world' -- содержание - , @body_format = 'html' - --- если статус sent – значит отправлено -select * from msdb.dbo.sysmail_allitems ---where sent_status not like 'failed' -order by mailitem_id desc - --- если возникли ошибки, см. логи: -select * from msdb.dbo.sysmail_event_log order by log_id desc -``` - -## Преодоление СПАМ-фильтра - -Письма с созданного почтового ящика могут быть не отправлены по причине сработавшего СПАМ-фильтра почтового провайдера. В логах такая ошибка описана следующим образом: - -``` -The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 10 (2021-06-24T14:52:04). Exception Message: Cannot send mails to mail server. (Transaction failed. The server response was: 5.7.1 [2] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc 1624528324-AOJQDun5U8-q32WauIb).) -``` - -Существует несколько рекомендаций, описанных в статье на сайте [carrotquest](https://www.carrotquest.io/blog/kak-ne-popast-v-spam/). В случае, если после выполнения приведенных рекомендаций отправка писем остается проваленной, можно обратиться в службу поддержки почтового сервиса. \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/SUMMARY.md b/docs/Admin manuals/framework/Config/SUMMARY.md deleted file mode 100644 index ec9aeeb..0000000 --- a/docs/Admin manuals/framework/Config/SUMMARY.md +++ /dev/null @@ -1,4 +0,0 @@ -* [Конфигурирование экземпляра приложения]( ./config_app.md) -* [Конфигурирование сервисов Docker](./config_docker.md) -* [Сборка образа Docker](./build_docker.md) -* [Конфигурирование клиента Packet](./config_npm.md) \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/build_docker.md b/docs/Admin manuals/framework/Config/build_docker.md deleted file mode 100644 index c02f860..0000000 --- a/docs/Admin manuals/framework/Config/build_docker.md +++ /dev/null @@ -1,26 +0,0 @@ -# Сборка Docker образа сервиса конфигурации - -Для сборки образа сервиса конфигурации необходимо перейти в каталог с файлами пакета конфигурации и выполнить команду сборки. - -Сборка образа -``` bash -docker build -f configuration.dockerfile -t <имя создаваемого образа> <путь до каталога> -``` - -Пример -``` bash -docker build -f configuration.dockerfile -t bitedo.configuration-service . -``` - - - -После сборки готовый образ нужно скопировать на сервер приложений. - -Образ содержит все настройки и готов к созданию контейнера в составе приложения. - - - -!!! note - Команды docker для сборки, выгрузки и загрузки можно посмотреть по ссылке https://docs.docker.com/engine/reference/commandline/cli/. - - \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/config_app.md b/docs/Admin manuals/framework/Config/config_app.md deleted file mode 100644 index 5c96901..0000000 --- a/docs/Admin manuals/framework/Config/config_app.md +++ /dev/null @@ -1,27 +0,0 @@ -# Конфигурирование экземпляра приложения -Конфигурация приложения разделена на несколько файлов -основой служит сервис конфигурации который считывает файл и отдает его содержимое по апи - -!!! warning - Необходимо помнить что файлы конфигурации содержат информацию для ограниченного доступа - -Каталог с файлами сервиса конфигурации содержит следующие файлы: - -| Имя | Описание | -|-----|----------| -| ./config/production.js | - конфигурация для сервисов приложения -| ./nginx/default.conf | - настройки сервиса entrypoint (маршруты) -| ./SQL/ | - настроечные скрипты для сервера БД (для ручного запуска) - -Для каждого дополнительного сервиса может быть создан отдельный каталог с его настройками. -Например, для сервиса работы с ОЭП(dss-service) в конфигурации может присутствовать каталог dss c файлами настроек. - -Если каталог с дополнительными настройками сервиса не присутствует - то сервис запускается с настройками по умолчанию. - -!!! note - Для конфигурирования отдельных экземпляров приложения рекомендуется создавать отдельные каталоги для каждого экземпляра. - -## Подготовка файлов конфигурации приложения - -2. проверить настройки в файле ./config/production.js. Других файлов в каталоге ./config/ быть не должно. -3. необходимо проверить маршруты описанные в /nginx/default.conf. Они должны отображаться на сервисы используемые в приложении. diff --git a/docs/Admin manuals/framework/Config/config_docker.md b/docs/Admin manuals/framework/Config/config_docker.md deleted file mode 100644 index 617e74e..0000000 --- a/docs/Admin manuals/framework/Config/config_docker.md +++ /dev/null @@ -1,4 +0,0 @@ -# Настройки приложения при поставке Docker - -Файл docker-compose.yml содержит список необходимых для работы приложения сервисов и параметры их запуска -Файл .env содержит переменные окружения, которые автоматически применятся для текущего экземпляра приложения. \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/config_npm.md b/docs/Admin manuals/framework/Config/config_npm.md deleted file mode 100644 index 413e813..0000000 --- a/docs/Admin manuals/framework/Config/config_npm.md +++ /dev/null @@ -1,3 +0,0 @@ -# Настройки приложения при поставке NPM - -файл ecosystem.config.js содержит список необходимых для работы приложения сервисов и параметры их запуска \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/create.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/create.png deleted file mode 100644 index c983ec2..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/create.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/docExample.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/docExample.png deleted file mode 100644 index 359abbe..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/docExample.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/lookupExample.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/lookupExample.png deleted file mode 100644 index 354d3c7..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/lookupExample.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/menu.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/menu.png deleted file mode 100644 index c5d6255..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/menu.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/registry.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/registry.png deleted file mode 100644 index d8ea392..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/registry.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/uaButton.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/uaButton.png deleted file mode 100644 index e222102..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/uaButton.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/media/uaExample.png b/docs/Admin manuals/framework/Config/Настройка ОА/media/uaExample.png deleted file mode 100644 index ac3d3ec..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка ОА/media/uaExample.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка ОА/Настройка ОА.md b/docs/Admin manuals/framework/Config/Настройка ОА/Настройка ОА.md deleted file mode 100644 index eca3803..0000000 --- a/docs/Admin manuals/framework/Config/Настройка ОА/Настройка ОА.md +++ /dev/null @@ -1,75 +0,0 @@ -# Настройка обозревателя аналитик - -## Общее описание назначения документа - -Настройка обозревателя аналитик (ОА) служит для выделения уникальных узлов в справочнике, открывающемся по кнопке , нажатие на которую открывает всплывающее окно с формой обозревателя аналитик. Так, если существует настройка ОА для контрагентов, то по нажатию на кнопку рядом с соответствующим полем - -![Пример лукапа с ОА](./media/lookupExample.png) - -откроется всплывающее окна с ОА, содержащее в качестве верхнего узла "Контрагенты". - -![Пример ОА для лукапа](./media/uaExample.png){: .zoom} - -## Реестр - -Чтобы открыть реестр настроек обозревателя аналитик, необходимо в меню в папке "Администрирование", подпапке "Обозреватель аналитик" выбрать пункт "Настройка обозревателя аналитик". - -![Меню](./media/menu.png) - -Откроется реестр документов. - -![Реестр "Настройка обозревателя аналитик"](./media/registry.png){: .zoom} - -Для создания нового документа необходимо нажать на кнопку "Создать" на верхней панели инструментов - -![](./media/create.png) - -## Документ - -В поле "Наименование" необходимо заполнить одним из стандартных значений из [таблицы ниже](#таблица). - -В поле "Код" содержатся все узлы ОА. Нужный узел можно выбрать при помощи самого ОА, нажав на кнопку . - -![Пример настройки для контрагентов](./media/docExample.png) - -## Таблица сочетаний наименований и кодов {#таблица} - -Наименование | Код --------------|---- -Base.Projects | Проекты -Woker | Кадры -Contract | Договоры -Department | Подразделения -Contacts | Контактные лица -Contractor | Контрагент -Interest | Интересы -Project | Проекты -AdditionalContract | Дополнительные документы -Currency | Валюта -NotRezident | A-Z Иностранные организации (нерезиденты) -Storage | Склады -BasicMeans | Объекты учета -ItemOfExpenses | Статьи затрат -Bank | Банки -PrimaryDocument | Первичные документы -MaterialGroup | Номенклатура/материалы/услуги -Investment | Капиталовложения -VatRate | Ставки НДС -ItemOfBdds | Статьи ДДС -Measure | Единицы измерения -SegmentValue | Отрасль -ExpensesFuture | Расходы будущих периодов -Bill | Вексель -ArticleOfExpenses | Статьи доходов и расходов -TaxablePeriod | Налоговые периоды -RP_Person | Физические лица -NotRezident_Interest | A-Z Иностранные организации (нерезиденты) -TaxLiability | Виды активов и обязательств -TaxGroup | Налоговые группы ОС -TaxRateProps | Статьи налога на имущество -EquipmentGroup | Оборудование -MaterialGeneralizedName | Обобщенная номенклатура -Zero | 0-9 -Origin | Корень -Direction | Направления -TypesOfFixed | Виды выбытия ОС \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/CustomFTSFiltersForm.png b/docs/Admin manuals/framework/Config/Настройка архива/media/CustomFTSFiltersForm.png deleted file mode 100644 index e7936a1..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/CustomFTSFiltersForm.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/CustomFTSFiltersMenu.png b/docs/Admin manuals/framework/Config/Настройка архива/media/CustomFTSFiltersMenu.png deleted file mode 100644 index a0165f3..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/CustomFTSFiltersMenu.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/DocflowDocumentForm.png b/docs/Admin manuals/framework/Config/Настройка архива/media/DocflowDocumentForm.png deleted file mode 100644 index c72dfb8..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/DocflowDocumentForm.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/Downloads.png b/docs/Admin manuals/framework/Config/Настройка архива/media/Downloads.png deleted file mode 100644 index ce9d67e..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/Downloads.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSForm.png b/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSForm.png deleted file mode 100644 index 59912d3..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSForm.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSHeader.png b/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSHeader.png deleted file mode 100644 index cc4a6da..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSHeader.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSMenu.png b/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSMenu.png deleted file mode 100644 index 7d49848..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSMenu.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSRegistry.png b/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSRegistry.png deleted file mode 100644 index 7f09ff3..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/ResultFTSRegistry.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/arhiv.png b/docs/Admin manuals/framework/Config/Настройка архива/media/arhiv.png deleted file mode 100644 index cc4dec6..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/arhiv.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/attachments.png b/docs/Admin manuals/framework/Config/Настройка архива/media/attachments.png deleted file mode 100644 index dd3d1b6..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/attachments.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/constant.png b/docs/Admin manuals/framework/Config/Настройка архива/media/constant.png deleted file mode 100644 index 283770f..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/constant.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/constant2.png b/docs/Admin manuals/framework/Config/Настройка архива/media/constant2.png deleted file mode 100644 index cea75fd..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/constant2.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/create.png b/docs/Admin manuals/framework/Config/Настройка архива/media/create.png deleted file mode 100644 index c983ec2..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/create.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/docExample.png b/docs/Admin manuals/framework/Config/Настройка архива/media/docExample.png deleted file mode 100644 index 359abbe..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/docExample.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/skipped.png b/docs/Admin manuals/framework/Config/Настройка архива/media/skipped.png deleted file mode 100644 index dd6f7af..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/skipped.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/skippedPrint.png b/docs/Admin manuals/framework/Config/Настройка архива/media/skippedPrint.png deleted file mode 100644 index 7c18b2e..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/skippedPrint.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/media/stages.png b/docs/Admin manuals/framework/Config/Настройка архива/media/stages.png deleted file mode 100644 index 16a5d0f..0000000 Binary files a/docs/Admin manuals/framework/Config/Настройка архива/media/stages.png and /dev/null differ diff --git a/docs/Admin manuals/framework/Config/Настройка архива/Настройка архива.md b/docs/Admin manuals/framework/Config/Настройка архива/Настройка архива.md deleted file mode 100644 index d1402ff..0000000 --- a/docs/Admin manuals/framework/Config/Настройка архива/Настройка архива.md +++ /dev/null @@ -1,159 +0,0 @@ -# Настройка архива вложенных документов - -## Общее описание - -Настройка архива вложенных документов необходима для работы аналитической формы [Архив вложенных документов](./../../../../User manuals/archivedoc.md#архив_вложенных_документов) и происходит в несколько этапов: - -* В документ «Справочники поисковой системы» заносятся поля для фильтра, по которым будут собираться вложения. -* В справочник «Итоговые выборки поисковой системы» добавить документ с выборкой из некоторой таблицы для документа или группы документов, если их сущности извлекаются одинаково. -* В документе "Настройка документа" на вкладке "Контекстный поиск" заполнить несколько полей. -* Обновить страницу (клавиша F5), чтобы изменения вступили в силу. - -## Справочники поисковой системы - -Чтобы открыть документ «Справочники поисковой системы», необходимо в меню в папке "Администрирование", подпапке "Документооборот", подпапке "Поисковая система" выбрать пункт «Справочники поисковой системы». - -![Меню](./media/CustomFTSFiltersMenu.png) - -Откроется документ "Справочники FTS". В нём необходимо заполнить таблицу "Фильтры". - -![Справочники FTS](./media/CustomFTSFiltersForm.png){: .zoom} - -Существует строго определённый набор значений поля "Id", приведённый в [таблице ниже](#таблица). Соответствующее им поле "Name" заполняется произвольно. В справочнике «Итоговые выборки поисковой системы» этим значениям будут поставлены в соответствие поля в таблицах, по которым будет осуществляться поиск и фильтрация документов с вложениями. - -## Итоговые выборки поисковой системы - -Чтобы открыть справочник «Итоговые выборки поисковой системы», необходимо в меню в папке "Администрирование", подпапке "Документооборот", подпапке "Поисковая система" выбрать пункт «Итоговые выборки поисковой системы». - -![Меню](./media/ResultFTSMenu.png) - -Откроется реестр "Итоги FTS". - -![Итоги FTS](./media/ResultFTSRegistry.png){: .zoom} - -Значения этого справочника будут предлагаться для выбора в документе "Настройка документа". Для создания нового документа необходимо нажать на кнопку "Создать" на верхней панели инструментов. - -![Кнопка "Создать"](./media/create.png) - -В поле "Выборка" необходимо ввести обозначение для документа или группы документов, если их сущности извлекаются одинаково, которое будет использоваться в качестве одного из значений в настройках документов. В поле "Примечание" можно внести пояснения, например, к каким именно документам относится выборка. - -![Пример заполнения полей "Выборка" и "Примечание"](./media/ResultFTSHeader.png) - -Под полем "Выборка" необходимо прописать результирующий селект, который в процессе расчета будет выполнять система. Структура селекта для всех выборок должна быть одинаковой, они будут объединяться с помощью оператора ```UNION```. Выборка состоит из следующих полей: - -* ```DocCode``` - уникальный код документа, используемый в системе; как правило ```VCode```. -* ```DocType``` - тип документа; как правило ```TypeName```. -* ```DocDate``` - дата документа; свойство, которое указывается в *Настройке документа* и передаётся в качестве параметра; указывается ```:DateProperty```. -* ```DocNumber``` - номер документа; свойство, которое указывается в *Настройке документа* и передаётся в качестве параметра; указывается ```:NumberProperty```. -* ```ContractorId``` - уникальный код контрагента, используемый в системе. -* ```ContractId``` - уникальный код договора, используемый в системе. -* ```AddContractId``` - уникальный код дополнительного документа к договору, используемый в системе. -* ```ProjectId``` - уникальный код проекта, используемый в системе. - -В зависимости от подключаемых документов будут меняться таблица, стоящая после оператора ```FROM```, и присваиваемые значения установленных в селекте полей. Если для них есть соответствующие им поля в таблице, их необходимо присвоить. Например, полю ```ContractId``` должен соответствовать код договора, который есть в таблице ```dbo.DocflowDocument``` под названием ```Contract```. Если такого поля в таблице нет, необходимо присвоить значение ```null```. Например, в таблице ```dbo.DocflowDocument``` не указывается код дополнительного документа к договору, поэтому значению ```AddContractId``` присваивется ```null```. - -В таблицу справа "Фильтры" необходимо занести значения из *Справочника поисковой системы*, по которым будет осуществляться фильтр, и SQL-скрипт – кусок кода, который будет подставлен в предложение WHERE результирующего селекта. Значение, сравниваемое с ```an.Value```, будет совпадать со значением в столбце ```ID``` таблицы "Фильтр". Значение, сравниваемое с ```an.Value```, будет совпадать с полем таблицы, которое присваивается одному из полей селекта. - -![Пример документа "Итог FTS"](./media/ResultFTSForm.png){: .zoom} - -Программа при такой настройке будет выполнять следующий код: - -```sql -select DocCode = t.VCode - , DocType = t.TypeName - , DocDate = :DateProperty - , DocNumber = :NumberProperty - , ContractorId = t.Contractor - , ContractId = t.Contract - , AddContractId = CONVERT(bigint, NULL) - , ProjectId = t.Projects -from dbo.[DocflowDocument] as t -where t.COrg = @orgId -and exists( - select 1 from #anFilters as an where an.Id = 'Contractor' and an.Value = t.Contractor -) -and exists( - select 1 from #anFilters as an where an.Id = 'Contract' and an.Value = t.Contract -) -and exists( - select 1 from #anFilters as an where an.Id = 'Project' and an.Value = t.Projects -) -``` - -Временная таблица ```#anFilters``` создаётся внутри результирующей процедуры расчета и содержит указанные пользователем фильтры. - -Для PostgreSQL-версии селект имеет следующий вид: - -```sql -SELECT t."VCode" AS "DocCode" - , t."TypeName" AS "DocType" - , :DateProperty AS "DocDate" - , :NumberProperty AS "DocNumber" - , t."Contractor" AS "ContractorId" - , t."VCode" AS "ContractId" - , NULL::bigint AS "AddContractId" - , t."Projects" AS "ProjectId" -FROM contract."Contract" as t -WHERE t."COrg" = _orgidparam -and exists( - select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'Contractor' and an."value" = cast(t."Contractor" as character varying) -) -and exists( - select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'Contract' and an."value" = cast(t."VCode" as character varying) -) -and exists( - select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'Project' and an."value" = cast(t."Projects" as character varying) -) -``` - -## Настройка документов - -После заполнения справочника «Итоговые выборки поисковой системы» необходимо перейти в реестр "Настройка документов". В документе необходимо заполнить поля ```typeNameProperty```, ```dateProperty``` и ```numberProperty``` соответствующими им наименованиями полей таблицы: типа документа, даты документа и номера документа. Также необходимо в поле "Итоги" выбрать одно из значений справочника «Итоговые выборки поисковой системы». После заполнения этих полей необходимо поставить галочку в поле **FTS2** и обновить страницу, чтобы изменения вступили в силу. - -![Пример документа "Настройка документа"](./media/DocflowDocumentForm.png){: .zoom} - -## Таблица сочетаний полей фильтра и примеры скриптов {#таблица} - -ID | Пример Name | Пример SQLScript (на основе таблицы ```dbo.AdditionalContract```) | Пример SQLScript на языке PostgreSQL (на основе таблицы ```dbo.AdditionalContract```) ----|-------------|-----------------|----------------- -Contractor | Контрагент | ```and exists(select 1 from #anFilters as an where an.Id = 'Contractor' and an.Value = t.Contractor)``` | ```and exists( select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'Contractor' and an."value" = cast(t."Contractor" as character varying))``` -Contract | Договор | ```and exists(select 1 from #anFilters as an where an.Id = 'Contract' and an.Value = t.Contract)``` | ```and exists( select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'Contract' and an."value" = cast(t."Contract" as character varying) )``` -AdditionalContract | Доп. документ к договору | ```and exists(select 1 from #anFilters as an where an.Id = 'AdditionalContract' and an.Value = t.VCode)``` | ```and exists( select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'AdditionalContract' and an."value" = cast(t."VCode" as character varying) )``` -Project | Проект | ```and exists(select 1 from #anFilters as an where an.Id = 'Project' and an.Value = t.Projects)``` | ```and exists( select 1 from "tmp_anFilters_for_attachmentArchive" as an where an."id" = 'Project' and an."value" = cast(t."Projects" as character varying) )``` - -## Автоматическое формирование отчета заявления с ЭП - -На проекте возможно настроить автоматическое формирование отчета заявления с электронными подписями по завершению маршрута. Для этого в документе "Настройка учетной политики предприятия" нужно настроить константу **Интеграция с 1С с помощью сервиса ODATA** со значением 1 - -![Константа](media/constant.png){: .zoom} - -По завершению маршрута в окно вложений заявления добавится печатная форма с ЭП. Архив с ЭП можно будет скачать по кнопке "Скачать архив с ЭП". - -![Вложения](media/attachments.png){: .zoom} - -Скачать архив с ЭП можно только когда в маршруте пройдены все этапы с действием "Подписан ЭП" и текущий этап -не требует подписания документа. - -![Этапы](media/stages.png){: .zoom} - -Архив скачается в папку "Загрузки" (Downloads). - -![Загрузки](media/Downloads.png){: .zoom} - -В архиве будут находиться: оригинал заявления, отчет по подписанию и файл с информацией о подписании данного документа по каждому сотруднику. - -![Архив ЭП](media/arhiv.png){: .zoom} - -## Настройка отчета без включения пропущенных этапов подписания - -В проекте есть возможность не добавлять в отчет тех сотрудников, кто включен в маршрут через **ИЛИ** и **НЕ ПРОШЕЛ** этап подписания. - -![Статус пропущен](media/skipped.png){: .zoom} - -Для этого в документе "Настройка учетной политики предприятия" нужно настроить константу **Скрывать участников маршрута без действий** со значением 1. - -![Константа2](media/constant2.png){: .zoom} - -Результат сформированного отчета: - -![Отчет маршрута](media/skippedPrint.png){: .zoom} \ No newline at end of file diff --git a/docs/Admin manuals/framework/Config/Развертывание системы.md b/docs/Admin manuals/framework/Config/Развертывание системы.md deleted file mode 100644 index 0a248d4..0000000 --- a/docs/Admin manuals/framework/Config/Развертывание системы.md +++ /dev/null @@ -1,21 +0,0 @@ -# Самостоятельное развертывание системы - -* [Описание]( ./config_app.md) -* [Конфигурирование сервисов Docker]( ./config_docker.md) -* [Сборка образа Docker]( ./build_docker.md) -* [Конфигурирование клиента Packet]( ./config_npm.md) -* Настройки клиентской части - * [Front](../../service/front/index.md) -* Настройки серверной части - * [Entrypoint](../../service/entrypoint/index.md) - * [MSSQL](../Prepare/prepare_mssql.md) - * [Redis](../../service/redis/redis.md) - * [RabbitMQ](../../service/rabbitMQ/index.md) - * [Gate](../../service/gate/index.md) - * [Logic](../../service/logic/index.md) - * [File](../../service/file/index.md) - * [Post](../../service/post/index.md) - * [Radio](../../service/radio/index.md) - * [Jsreport](../../service/jsreport/index.md) - * [Preview](../../service/preview/index.md) - * [Scheduler](../../sheduler/index.md) diff --git a/docs/Admin manuals/framework/Deploy/SUMMARY.md b/docs/Admin manuals/framework/Deploy/SUMMARY.md deleted file mode 100644 index f476ad3..0000000 --- a/docs/Admin manuals/framework/Deploy/SUMMARY.md +++ /dev/null @@ -1,2 +0,0 @@ -* [Docker образы](./deploy_docker.md) -* [NPM пакеты](./deploy_npm.md) diff --git a/docs/Admin manuals/framework/Deploy/deploy_docker.md b/docs/Admin manuals/framework/Deploy/deploy_docker.md deleted file mode 100644 index 9bd5d60..0000000 --- a/docs/Admin manuals/framework/Deploy/deploy_docker.md +++ /dev/null @@ -1,16 +0,0 @@ -# Распространение приложения использованием образов Docker - -Для развертывания сконфигурированного ранее приложения необходимо выполнить следующие шаги: - -1. Cкопировать файлы развертывания приложения __docker-compose.yml__, __.env__ на сервер приложения. Эти файлы идут в составе поставки пакета сервиса конфигурации приложения. Если сборка образа конфигурации была на текущем сервере - тогда этот шаг можно пропустить. - -2. Запустить приложение - -```bash -docker-compose up -d -``` - -!!!warning - Обратите внимание что образ сервиса конфигурации с **файлами конфигурации** конкретного экземпляра приложения собирается отдельно от образов содержащих сервисы приложения, и содержит все необходимые настройки для экземпляра приложения. Такой подход позволяет переиспользовать образы сервисов приложения с разными **сервисами конфигурации**. - - Файл docker-compose.yml содержит описание необходимых для запуска сервисов. \ No newline at end of file diff --git a/docs/Admin manuals/framework/Deploy/deploy_npm.md b/docs/Admin manuals/framework/Deploy/deploy_npm.md deleted file mode 100644 index 7592cbf..0000000 --- a/docs/Admin manuals/framework/Deploy/deploy_npm.md +++ /dev/null @@ -1,16 +0,0 @@ -# Распространение приложения через npm-пакеты - - -Необходимо: - -1. Получить исходные коды сервисов приложения. - Дистрибутив поставляется в виде zip архива - (Выполнить команду установки зависимостей.) - -2. Скопировать конфигурационные файлы в папку исходных кодов т.к. исходные коды приложения хранятся отдельно от конфигурационных файлов приложения. - - -3. Запустить сервисы командой -``` bash -pm2 restart ecosystem.config.js -``` \ No newline at end of file diff --git a/docs/Admin manuals/framework/Deploy/deploy_postgre.md b/docs/Admin manuals/framework/Deploy/deploy_postgre.md deleted file mode 100644 index 32fdc66..0000000 --- a/docs/Admin manuals/framework/Deploy/deploy_postgre.md +++ /dev/null @@ -1,23 +0,0 @@ -# Создание БД - -1. Необходимо развернуть из резервной копии заранее подготовленные базы данных - - * << app >> - * << app_history >> - -2. Установить для учетной записи администратора следующие привилегии: - - + Включить администратора в роль DB_OWNER для следующих БД: - - * << app >> - * << app_history >> - - + Предоставить администратору разрешения на следующие операции: - - * ALTER ANY CONNECTION - * ALTER ANY LOGIN - * ALTER TRACE - -3. Создать план обслуживания БД включив в него шаг резервного копирования. - -4. Настроить расписание для плана обслуживания \ No newline at end of file diff --git a/docs/Admin manuals/framework/Maintenance/SUMMARY.md b/docs/Admin manuals/framework/Maintenance/SUMMARY.md deleted file mode 100644 index 4664d7d..0000000 --- a/docs/Admin manuals/framework/Maintenance/SUMMARY.md +++ /dev/null @@ -1,4 +0,0 @@ -* [update](update.md) -* [backup](backup.md) -* [clearing](clearing.md) -* [monitoring](monitoring.md) \ No newline at end of file diff --git a/docs/Admin manuals/framework/Maintenance/backup.md b/docs/Admin manuals/framework/Maintenance/backup.md deleted file mode 100644 index 584e654..0000000 --- a/docs/Admin manuals/framework/Maintenance/backup.md +++ /dev/null @@ -1,7 +0,0 @@ -# Backup & Restore - -Резервное копирование баз данных и хранение копий в папке названной по версии приложения - -для развертывания экземпляра из резервной копии необходимо -- восстановить базы данных -- запустить экземпляр сервера приложений нужной версии, с настройками на восстановленные базы данных \ No newline at end of file diff --git a/docs/Admin manuals/framework/Maintenance/clearing.md b/docs/Admin manuals/framework/Maintenance/clearing.md deleted file mode 100644 index 1f9abf5..0000000 --- a/docs/Admin manuals/framework/Maintenance/clearing.md +++ /dev/null @@ -1,4 +0,0 @@ -# Очиска системы от старых Docker образов приложения - -Для удаления старых образов создается файл clearing.sh -при выполнении он удаляет все предшествующие текущему образы. \ No newline at end of file diff --git a/docs/Admin manuals/framework/Maintenance/monitoring.md b/docs/Admin manuals/framework/Maintenance/monitoring.md deleted file mode 100644 index 32ccea1..0000000 --- a/docs/Admin manuals/framework/Maintenance/monitoring.md +++ /dev/null @@ -1,26 +0,0 @@ -# monitoring - -## Базовый мониторинг приложения в Windows - -При запуске сервисов в среде Windows наблюдение за ними происходит в консоли запушенного приложения - -Логи сервисов выводятся в эту-же консоль. - -## Базовый мониторинг контейнеров Docker -наблюдение за сервисами приложения -```bash -docker-compose ps -``` - -просмотр логов контейнеров -```bash -docker-compose logs -``` - -!!! note - Сервисы в контейнере app пишут логи в файлы расположенные на подключеном к контейнеру VOLUME - эти логи можно посмотреть только подключившись к этому VOLUME - -## Использование коллектора логов fluentd - -В корпоративной среде лоя сбора логов контейнеров Docker можно использовать коллектор [fluentd](https://www.fluentd.org/) diff --git a/docs/Admin manuals/framework/Maintenance/update.md b/docs/Admin manuals/framework/Maintenance/update.md deleted file mode 100644 index 11c8882..0000000 --- a/docs/Admin manuals/framework/Maintenance/update.md +++ /dev/null @@ -1,9 +0,0 @@ -# Update - -Обновление версии приложения при поставке в виде Docker образов происходит следующим методом: - - - на сервер приложения загружаются новые Docker образы - - останавливается предыдущий экземпляр приложения - - запускается новый экземпляр приложения - - открывается страница применения миграций схемы БД и выполняются необходимые миграции - \ No newline at end of file diff --git a/docs/Admin manuals/framework/Maintenance/Сборка документооборота/Сборка документооборота.md b/docs/Admin manuals/framework/Maintenance/Сборка документооборота/Сборка документооборота.md deleted file mode 100644 index 90b59f8..0000000 --- a/docs/Admin manuals/framework/Maintenance/Сборка документооборота/Сборка документооборота.md +++ /dev/null @@ -1,571 +0,0 @@ -# Сборка документов, участвующих в документообороте, в БД - -## Общее описание - -Для участия документов определенного типа и успешного запуска этих документов по маршруту необходимо: - -1. В БД прописать таблицу, на которой построен тип документа, в представлении ```DocflowExists```. -2. Выполнить для типа документа "Настройку документа" (после чего обновить страницу). -3. Создать для типа документа шаблон маршрута. - -В данном разделе описывается первый шаг: настройка представления ```DocflowExists```. В ней содержатся данные обо всех документах, участвующих в документообороте. Не внесённые в неё типы документов не отображаются на панели "Документооборот" на главной форме и не отправляются по маршруту. - -## Назначение полей - -Представление ```DocflowExists``` содержит данные о разных типах документов, для каждого из которых можно сопоставить следующие поля: - -- **VCode** – обязательное, целое число. Содержит уникальный код документа. -- **TypeName** – обязательное. Содержит тип документа. -- **Subject** – содержит тему документа. -- **Text** – содержит основной текст документа. -- **DateOfExecution** – содержит плановую дату исполнения. -- **RealDateOfExecution** – содержит фактическую дату исполнения. -- **DocDescription** – содержит описание документа. -- **Description** – содержит описание содержимого документа. -- **DateControl** – содержит дату проверки. -- **COrg** – содержит код организации, в которой находился создавший документ пользователь на момент создания документа. -- **DocumentDate** – содержит дату документа. -- **DocumentNumber** – содержит номер документа, который может настраиваться с помощью [журнала регистрации](../../../СЭД/Журнал регистрации/Журнал регистрации.md). -- **VirtualCUser** – содержит логин виртуального (замещаемого) пользователя. -- **Projects** – содержит уникальный код проекта. -- **SourceDocumentCode** – содержит уникальный код документа-источника, из которого был создан текущий. -- **SourceDocumentType** – содержит тип документа-источника. -- **GlobalId** – содержит глобальный уникальный идентификатор, . - -Не все поля обязательны к заполнению. Если такие поля не участвуют в бизнес-процессе документа, им присваивается ```NULL```. - -Для внесения в представление документов определённого типа необходимо подключать соответствующие им таблицы. Подключение новых таблиц происходит через ```union all```. - -## Примеры - -Ниже приведены примеры представления ```DocflowExists``` на двух разных проектах. В первом может быть интересна настройка карточек СЭД (```from dbo.DocflowDocument```), во втором содержится настройка большего количества типов документов. - -### Пример 1 - -``` sql -ALTER VIEW [dbo].[DocflowExists] -AS -select a.VCode, a.TypeName, a.[Subject], a.[Text], a.DateOfExecution, a.RealDateOfExecution, a.DocDescription, a.[Description], a.DateControl, a.COrg, a.DocumentDate, a.DocumentNumber, a.VirtualCUser,Projects =CONVERT(bigint, null ), -a.GlobalID, a.DocumentSubtype, a.SourceDocumentCode,a.SourceDocumentType -from ( - select VCode, TypeName, [Subject], [Text] = convert(varchar(max), NULL), - DateOfExecution = case TypeName when 'Instruction' then DateOfExecution - when 'IncomingDocument' then DateOfExecution - else convert(datetimeoffset, NULL) end, - RealDateOfExecution = case TypeName when 'Instruction' then RealDateOfExecution else convert(datetimeoffset, NULL) end, - DocDescription = convert(varchar(max), NULL), [Description] = convert(varchar(max), NULL), - DateControl = convert(datetimeoffset, NULL), COrg, - DocumentDate = case when TypeName in ('IncomingDocument', 'OrganizationalDocument', 'OutgoingDocument') - then convert(date,(coalesce([DateOfRegistration],[DocumentDate]))) - else convert(date,DocumentDate) end, - DocumentNumber, - VirtualCUser = coalesce(VirtualCUser, CUser), - GlobalID, - DocumentSubtype, - SourceDocumentCode = convert(bigint,null), - SourceDocumentType = convert(varchar(255),null) - from dbo.DocflowDocument - union all - select VCode, TypeName, [Subject] = SubjectOfContract, [Text] = convert(varchar(max), NULL), DateOfExecution = convert(datetimeoffset, NULL), - RealDateOfExecution = convert(datetimeoffset, NULL), DocDescription = convert(varchar(max), NULL), [Description] = convert(varchar(max), NULL), - DateControl = convert(datetimeoffset, NULL), COrg, - DocumentDate = DateContract, - DocumentNumber = VhodNumber, - VirtualCUser = coalesce(VirtualCUser, CUser), - GlobalID = convert(uniqueidentifier, null), - DocumentSubtype = convert(bigint,null), - SourceDocumentCode = convert(bigint,null), - SourceDocumentType = convert(varchar(255),null) - from dbo.[Contract] - union all - select VCode, TypeName, [Subject] = SubjectOfContract, [Text] = convert(varchar(max), NULL), DateOfExecution = convert(datetimeoffset, NULL), - RealDateOfExecution = convert(datetimeoffset, NULL), DocDescription = convert(varchar(max), NULL), [Description] = convert(varchar(max), NULL), - DateControl = convert(datetimeoffset, NULL), COrg, - DocumentDate = DateContract, - DocumentNumber = Number, - VirtualCUser = coalesce(VirtualCUser, CUser), - GlobalID = convert(uniqueidentifier, null), - DocumentSubtype = convert(bigint,null), - SourceDocumentCode = convert(bigint,null), - SourceDocumentType = convert(varchar(255),null) - from dbo.[AdditionalContract] - - union all - select VCode, 'Test',null , [Text] = convert(varchar(max), NULL), DateOfExecution = convert(datetimeoffset, NULL), - RealDateOfExecution = convert(datetimeoffset, NULL), DocDescription = convert(varchar(max), NULL), [Description] = convert(varchar(max), NULL), - DateControl = convert(datetimeoffset, NULL), 1, - DocumentDate = null, - DocumentNumber = null, - VirtualCUser = null, - GlobalID = convert(uniqueidentifier, null), - DocumentSubtype = convert(bigint,null), - SourceDocumentCode = convert(bigint,null), - SourceDocumentType = convert(varchar(255),null) - from dbo.[Test] - union all - select VCode, TypeName, [Subject] = Text, [Text] = convert(varchar(max), Text), DateOfExecution = convert(datetimeoffset, NULL), - RealDateOfExecution = convert(datetimeoffset, NULL), DocDescription = convert(varchar(max), NULL), [Description] = convert(varchar(max), NULL), - DateControl = convert(datetimeoffset, NULL), COrg, - DocumentDate , - DocumentNumber , - VirtualCUser = coalesce(VirtualCUser, CUser), - GlobalID, - DocumentSubtype , - SourceDocumentCode = convert(bigint,null), - SourceDocumentType = convert(varchar(255),null) - from dbo.[UniversalDocument] - union all - select VCode, TypeName, [Subject] = Subject, [Text] = convert(varchar(max), Text), DateOfExecution = convert(datetimeoffset, NULL), - RealDateOfExecution = convert(datetimeoffset, NULL), DocDescription = convert(varchar(max), NULL), [Description] = convert(varchar(max), NULL), - DateControl = convert(datetimeoffset, NULL), COrg, - DocumentDate = DocDate , - DocumentNumber = null, - VirtualCUser = coalesce(VirtualCUser, CUser), - GlobalID , - DocumentSubtype = convert(bigint,null), - SourceDocumentCode = convert(bigint,null), - SourceDocumentType = convert(varchar(255),null) - from dbo.[CancellationAct] - - ) as a -``` - -### Пример 2 - -``` sql -ALTER VIEW [dbo].[DocflowExists] -AS --- Общее представление документов СЭД -SELECT a."VCode" - , a."TypeName" - , a."Subject" - , a."Text" - , a."DateOfExecution" - , a."RealDateOfExecution" - , a."DocDescription" - , a."Description" - , a."DateControl" - , a."COrg" - , a."DocumentDate" - , a."DocumentNumber" - , a."VirtualCUser" - , a."Projects" - , a."SourceDocumentCode" - , a."SourceDocumentType" - , a."GlobalId" -FROM( - -- Заявки LexDesk - SELECT t."VCode" - , t."TypeName" - , t."Name" AS "Subject" - , t."Description" AS "Text" - , CONVERT(datetimeoffset, t.Deadline) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , t."Name" AS "DocDescription" - , ('"' + t."Name" + '" ' + t."Description") AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, t.Project) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."Ticket" AS t - -- Карточки СЭД - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t."Subject" - , t."Text" - , t."DateOfExecution" - , t."RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."PeriodDate" AS "DocumentDate" - , t."DocumentNumber" - , COALESCE(t."VirtualCUser", t."CUser") AS "VirtualCUser" - , t."Projects" - , t."SourceDocumentCode" - , t."SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."DocflowDocument" AS t - -- Договора - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t."SubjectOfContract" AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."DateContract" AS "DocumentDate" - , t."VhodNumber" AS "DocumentNumber" - , COALESCE(t."VirtualCUser", t."CUser") AS "VirtualCUser" - , t."Projects" - , t."SourceDocumentCode" - , t."SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."Contract" AS t - -- Приложения к договорам - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t.SubjectOfContract AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."DateContract" AS "DocumentDate" - , t."Number" AS "DocumentNumber" - , COALESCE(t."VirtualCUser", t."CUser") AS "VirtualCUser" - , t."Projects" - , t."SourceDocumentCode" - , t."SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."AdditionalContract" AS t - -- Контрагенты, интересы - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."Contractor" AS t - UNION ALL - SELECT t."VCode" - , 'ProjectsMakeDetail' AS "TypeName" - , t."Comment" AS "Subject" - , t."Comment" AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), t."Comment") + ' (' + CONVERT(varchar(max), t."ContractorName") + ')' AS "DocDescription" - , CONVERT(varchar(max), t."Comment") + ' (' + CONVERT(varchar(max), t."ContractorName") + ') ' + COALESCE('Результат действия: ' + CONVERT(varchar(max), t."Result"), '') AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."V_crm_ProjectsMakeDetail" AS t - -- Проекты - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t."Goal" AS "Subject" - , CONVERT(varchar(max), t."Goal") AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), t."Goal") AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , t."VCode" AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."Projects" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."CommercialProposal" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."WriteOffExpensesFP" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t."AnalyticsName" AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."ExpensesFuture" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t."AnalyticsName" AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."ReceiptOfBill" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , t."AnalyticsName" AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."ExpenseOfBill" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), t."TypeDocs") AS "Subject" - , CONVERT(varchar(max), t."Note") AS "Text" - , t."CDate" AS "DateOfExecution" - , t."WDate" AS "RealDateOfExecution" - , CONVERT(varchar(max), t."Note") AS "DocDescription" - , CONVERT(varchar(max), t."Note") AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."CDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."VOtherDocuments" AS t - -- Услуги - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."AccountingDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."ServiceReceipts" AS t - -- Заявки на платеж - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), '') + CASE WHEN rc."VCode" IS NULL THEN '' ELSE 'Получатель: ' + rc."Name" END AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , t."PaymentDestination" AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."AccountingDate" AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , t."Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."RequestForPayment" AS t - LEFT JOIN dbo."UniAnalyt" AS rc ON rc."VCode" = t."Receiver" - -- Банковские документы - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, t."AccountingDate") AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."FinanceMoving" AS t - -- TestECP - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), 'TestEcp') AS "Subject" - , CONVERT(varchar(max), 'TestEcp') AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , CONVERT(bigint, NULL) AS "COrg" - , CONVERT(date, NULL) AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,'EEDB3414-EFA5-4610-A7D5-2B3FD6FEA152') as "GlobalId" - FROM dbo."TestEcp" AS t - -- KarginTest - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), 'Документ') AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , CONVERT(date, NULL) AS "DocumentDate" - , CONVERT(varchar(255), NULL) AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."KarginTest" AS t - -- Универсальный документ - UNION ALL - SELECT t."VCode" - , t."TypeName" - , COALESCE(t."Name",'Документ') AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."DocumentDate" - , t."DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."UniversalDocument" AS t - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."DateDoc" AS "DocumentDate" - , t."NumDoc" AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo."RP_DocAbsence" AS t - WHERE t."TypeName" = 'Base.RP_OrderVacation' - UNION ALL - SELECT t."VCode" - , t."TypeName" - , CONVERT(varchar(max), NULL) AS "Subject" - , CONVERT(varchar(max), NULL) AS "Text" - , CONVERT(datetimeoffset, NULL) AS "DateOfExecution" - , CONVERT(datetimeoffset, NULL) AS "RealDateOfExecution" - , CONVERT(varchar(max), NULL) AS "DocDescription" - , CONVERT(varchar(max), NULL) AS "Description" - , CONVERT(datetimeoffset, NULL) AS "DateControl" - , t."COrg" - , t."AccountingDate" AS "DocumentDate" - , t."DocumentNumber" AS "DocumentNumber" - , t."CUser" AS "VirtualCUser" - , CONVERT(bigint, NULL) AS "Projects" - , CONVERT(bigint, NULL) AS "SourceDocumentCode" - , CONVERT(varchar(255), NULL) AS "SourceDocumentType" - , CONVERT(uniqueidentifier,null) as "GlobalId" - FROM dbo.ActOfReconciliation AS t - WHERE t."TypeName" = 'Base.ActOfReconciliation' -) AS a -``` \ No newline at end of file diff --git a/docs/Admin manuals/framework/Prepare/SUMMARY.md b/docs/Admin manuals/framework/Prepare/SUMMARY.md deleted file mode 100644 index a1cb637..0000000 --- a/docs/Admin manuals/framework/Prepare/SUMMARY.md +++ /dev/null @@ -1,3 +0,0 @@ -* [Docker образы]( ./prepare_serv_docker.md) -* [NPM пакеты]( ./prepare_serv_npm.md) -* [БД MSSQL]( ./prepare_mssql.md) \ No newline at end of file diff --git a/docs/Admin manuals/framework/Prepare/create_db.md b/docs/Admin manuals/framework/Prepare/create_db.md deleted file mode 100644 index 7bef196..0000000 --- a/docs/Admin manuals/framework/Prepare/create_db.md +++ /dev/null @@ -1,12 +0,0 @@ -# Создание БД - -1. Необходимо развернуть из резервной копии заранее подготовленные базы данных - - * ptb - * ptb_history - -2. Создать учетную запись для приложения. Выдать права администратора для созданной учетной записи на следующие базы : - - * ptb - * ptb_history - diff --git a/docs/Admin manuals/framework/Prepare/lexema_resource.md b/docs/Admin manuals/framework/Prepare/lexema_resource.md deleted file mode 100644 index 8ed8b48..0000000 --- a/docs/Admin manuals/framework/Prepare/lexema_resource.md +++ /dev/null @@ -1,20 +0,0 @@ -# Использование ресурсов ООО "Лексема" -## Настройка доступа к приватному репозиторию -!!! note - На этапе внедрения используется репозиторий ООО "Лексема" http://dhub.lex.lan, доступ к нему организуется посредством VPN канала и настройки DNS-resolver. - - При использовании приватных репозиториев заказчика настройки VPN и DNS-resolver делать не нужно, а в настройки Docker внести адрес репозитория заказчика. - - - Для этого необходимо выполнить следующие шаги : - - * Установить на сервер пакет OpenVPN. - * для настройки VPN достаточно разместить полученый файл подключения в папку /etc/openvpn/ и запустить сервис - * внести в файл /etc/hosts запись "192.168.5.247 dhub.lex.lan" - - * удостоверится в том что приватный репозиторий с образами доступен - командой ping . - * внести в файл /etc/docker/daemon.json строку с указанием приватного репозитория//// - -``` - "insecure-registries":["dhub.lex.lan:5000"] -``` \ No newline at end of file diff --git a/docs/Admin manuals/framework/Prepare/prepare_mssql.md b/docs/Admin manuals/framework/Prepare/prepare_mssql.md deleted file mode 100644 index b4087d6..0000000 --- a/docs/Admin manuals/framework/Prepare/prepare_mssql.md +++ /dev/null @@ -1,18 +0,0 @@ -1. Установить сервер БД со следующими настройками - -Настройка сервера СУБД (Microsoft SQL Server) - -| № пп |Наименование параметра |Значение параметра| -| ----- |-----------------------|------------------| -|1 |Server Collation |SQL_Latin1_General_CP1251_CI_AS -|2 |Default Language |English -|3 |FileStream Access Level |Full access enabled -|4 |Server Authentication |SQL Server and Windows Authentication Mode -|5 |Broker Enabled (для БД Lexema_data) |True -|6 |CLR Enabled |True -|7 |TrustWorthy (Для БД Lexema_Data) |True -|8 |Профиль DBMail |Адрес электронной почты, выделенный для рассылки -|9 |Max degree of parallelism |2 -|10 |Cost threshold for parallelism |20 - -1. На сервере создать SQL пользователя с ролью sysadmin \ No newline at end of file diff --git a/docs/Admin manuals/framework/Prepare/prepare_serv_docker.md b/docs/Admin manuals/framework/Prepare/prepare_serv_docker.md deleted file mode 100644 index 2586087..0000000 --- a/docs/Admin manuals/framework/Prepare/prepare_serv_docker.md +++ /dev/null @@ -1,45 +0,0 @@ -# Подготовка сервера приложения для развертывания Docker образов - -Сервер приложений - это хост для выполнения Docker контейнеров приложения. - -## 1. Установить на сервер следующие пакеты: - - * docker , - * docker-compose - -## 2. Настройки Docker Network - - Для межсервисного трафика при запуске приложения создается отдельная виртуальная сеть с именем проекта - - Для взаимодействия с внешними сервисами необходимо создать виртуальную сеть с именем __proxy__. - -Cоздание сети proxy следующей командой: -```bash -docker network create proxy -``` - -## 3. Разместить образы, предоставленные компанией ООО "Лексема" на сервере приложения - -Создать временную папку для загрузки образов -```bash -mkdir /tmp/lexema && cd /tmp/lexema -``` - -Скопировать архивы образов в папку _/tmp/lexema_ на сервере. - -Выполнить команду загрузки образов -```bash -docker load -i *.tar -``` - -Удалить образы -```bash -rm -f *.tar -``` - -## 4. Настроить сервер для доступа к сервису обновлений. - -!!! note - На этапе внедрения сервис обновлений ООО "Лексема" не используется. - Для поставки пакетов с новым функционалом используется сетевой ресурс в сети заказчика. Обновления производятся заказчиком самостоятельно. - diff --git a/docs/Admin manuals/framework/Prepare/prepare_serv_npm.md b/docs/Admin manuals/framework/Prepare/prepare_serv_npm.md deleted file mode 100644 index 0196a6a..0000000 --- a/docs/Admin manuals/framework/Prepare/prepare_serv_npm.md +++ /dev/null @@ -1,25 +0,0 @@ -# Подготовка сервера приложения для развертывания NPM пакетов -Сервер приложений - это хост для запуска сервисов приложения распространяемых в виде пакетов NPM. - -## 1. Установить на сервер следующие пакеты: - - * nginx 1.23+ [link](https://community.chocolatey.org/packages/nginx) - * Redis 3.2.100 [link](https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100) - * Erlang OTP 25.0.2 [link](https://www.erlang.org/downloads) - * RabbitMQ 3.10.6 [link](https://www.rabbitmq.com/install-windows.html) - * Nodejs 10.23 [link](https://nodejs.org/download/release/v10.23.0/) - * PM2 [link](https://pm2.keymetrics.io/docs/usage/quick-start/) - -!!! warning - Учетная запись пользователя под которым производится установка должна иметь имя в английской раскладке - -## 2. Настроить файрвол . - - * Открыть порты 80, 443 для входящего трафика - -## 3. Настроить сервер для доступа к сервису обновлений. - - -!!! note - На этапе внедрения сервис обновлений ООО "Лексема" не используется. - Для поставки пакетов с новым функционалом используется сетевой ресурс в сети заказчика. Обновления производятся заказчиком самостоятельно. diff --git a/docs/Admin manuals/framework/Prepare/steps.md b/docs/Admin manuals/framework/Prepare/steps.md deleted file mode 100644 index 1799de0..0000000 --- a/docs/Admin manuals/framework/Prepare/steps.md +++ /dev/null @@ -1,29 +0,0 @@ -# Шаги по запуску системы в опытно-промышленную эксплуатацию - -## Развертывание и инициализация системы - -### Шаги для Системного администратора - -|
|
Шаг
|
Описание
|
Результат
-| -----|----------|--------------------------------------|----------------- -| 1 | Развертывание системы |Необходимо запустить инсталлятор системы. При запуске указать необходимые параметры:

|

Зайти в систему Lexema-ECM можно под указанным логином и паролем через локально развернутый сайт. Сайт доступен только на компьютере, где запускали инсталлятор систем

-| 2 | Публикация сайта | Публикация сайта | Сайт доступен либо в интранете, либо в интернете -| 3 | Инициализация настроек проекта данными по умолчанию | Необходимо нажать кнопку в документе Настройки. При нажатии кнопки происходит заполнение справочников системы данными по умолчанию. В дальнейшем эта информация может быть отредактирована в соответствующих справочниках системы | По умолчанию заполнены следующие настройки и справочники системы:

- -## Настройка системы для опытно-промышленной эксплуатации - -### Шаги для Администратора проекта - -|
|
Шаг
|
Описание
|
Результат
-| -----|----------|--------------------------------------|----------------------- -| 4 | Регистрация пользователей системы | Процесс регистрации пользователей состоит из следующих шагов:

| Пользователи зарегистрированы -| 5 | Назначение прав и ролей пользователям в системе | В системе предусмотрены специализированные роли: Юрист, Регистратор, Рецензент, которые дают пользователям дополнительные права в соотвествии с их функциональными обязанностями. Подробнее о ролях написано в соответствующем разделе. Кроме того, руководителям отделов можно настроить возможность просматривать документы сотрудников своего отдела без непосредтвенного участия в маршрутах, так называемые горизонтальные права | Права настроены и роли назначены -| 6 | Актуализация настроек документов и маршрутов согласования документов | В Lexema-ECM предусмотрено два главных настроечных документа, регламентирующих работу документов и маршрутов согласования. Это:

При инициализации системы настройки заполняются значениями по умолчанию, которые можно актуализировать. Настройка документов – определяет виды действий, доступные в документе (согласовать, утвердить, подписать и т.д.) и возможности участников маршрутов в этом документе (возможность отозвать документ, отконить документ или получать уведомления и т.д.). Настройка шаблонов маршрутов предназначена для хранения часто используемых маршрутов согласования. Как правило в документах, маршруты доступны для ручной корректировки, но можно назначить жесткий маршрут, в котором обязательно участие какого-то конкретного сотрудника. Эти и подобные возможности можно заложить в настройке шаблона маршрута. Подробнее о настройках написано в соответствующих разделах.

| Маршруты актуализированы в соотвествии с внутренними регламентами Заказчика -| 7 | Настройка структуры компании для холдинга | Настройка структуры холдинга происходит в документе Управление компаниями. В новом филиале необходим завести сотрудников и назначить роли, настроить шаблоны для маршрутов. Настройки документов являются общими для всего холдинга. | Работа в холдинге настроена - - -**ПОЗДРАВЛЯЕМ!** - -**ВЫ ПРОШЛИ 7 ВАЖНЫХ ШАГОВ И СИСТЕМА LEXEMA-ECM ГОТОВА К ЭКСПЛУАТАЦИИ!** - -По вопросам, возникающим при настройке системы можно обратиться в техническую поддержку. \ No newline at end of file diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswSending.png b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswSending.png deleted file mode 100644 index 86519ec..0000000 Binary files a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswSending.png and /dev/null differ diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswTyping.png b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswTyping.png deleted file mode 100644 index ca0cf9c..0000000 Binary files a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswTyping.png and /dev/null differ diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswWarn.png b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswWarn.png deleted file mode 100644 index c929086..0000000 Binary files a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/chPswWarn.png and /dev/null differ diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/createDomainUser.png b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/createDomainUser.png deleted file mode 100644 index 5f07964..0000000 Binary files a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/createDomainUser.png and /dev/null differ diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/login.png b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/login.png deleted file mode 100644 index dcd1157..0000000 Binary files a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/login.png and /dev/null differ diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/onetimeCode.png b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/onetimeCode.png deleted file mode 100644 index b624157..0000000 Binary files a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/media/onetimeCode.png and /dev/null differ diff --git a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/Настройка авторизации.md b/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/Настройка авторизации.md deleted file mode 100644 index 8400dff..0000000 --- a/docs/Admin manuals/framework/User managment/Авторизация/Настройка авторизации пользователей/Настройка авторизации.md +++ /dev/null @@ -1,163 +0,0 @@ -# Настройка авторизации пользователей - -## Общие сведения - -Настройка авторизации пользователей производится с помощью конфигурационного файла *./config/local.js* в разделе **gate**. Следует отметить, что этот файл должен содержаться в списке исключений системы контроля версий (занесён в файл .gitignore). Также для этих целей можно использовать файл *./config/production.js*, однако следует учитывать, что настройки файла local.js более приоритетные, чем у production.js. - -Использовать файл *./config/default.js* для настройки авторизации не рекомендуется по причине необходимости прописать в настройках конфиденциальные данные. - -## Стандартная авторизация - -Настройки веб-сервисов производятся в разделе **applications**, настройки авторизации пользователей - в подразделе **gate**. Более подробно про настройку раздела **gate** можно прочитать в [перечне настроек gate](./../../../../service/gate/configuration.md). - -- **_sessionLifeTime_** - время жизни сессии в минутах (по умолчанию `10`). -- **_ldap_** - раздел, содержащий настройки доменной авторизации (с проверкой логина/пароля на контроллере домена) - * **_url_** - адрес контроллера домена. Пример: `ldap(s)://domain:port`. - * **_bindDN_** - логин администратора домена. В случае пустой строки будет произведена попытка анонимного подключения. - * **_bindCredentials_** - пароль администратора домена. - * **_searchBase_** - описание базового имени откуда начинается поиск пользователей. Пример: `ou=users,dc=example,dc=org` - * **_searchFilter_** - описание фильтра ldap для поиска пользователей. - * **_searchAttributes_** - список атрибутов, возвращаемых контроллером домена при удачном поиске. -- **_validation_** - настройки валидации пароля и логина пользователя. - * **_passwordRegularExpression_** - регулярное выражение для проверки пароля (по умолчанию `/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,}$/`). - -Пример: - -```js -applications: { - gate: { - sessionLifeTime: 1800, - ldap: { - url: 'ldap://domain.local:port', - bindDN: 'CN=User,CN=Users,DC=domain,DC=local', - bindCredentials: 'password', - searchBase: 'OU=Users,OU=Organization,DC=domain,DC=local', - searchFilter: '(&(objectclass=person)(sAMAccountName={{username}}))', - searchAttributes: ['displayName', 'sAMAccountName'] - }, - validation: { - passwordRegularExpression: /^[a-zA-Z0-9]{3,}$/ - }, - // ... - }, - // ... -} -``` - -## Двухфакторная авторизация - -- **_twoFactorProvider_** - провайдер двухфакторной аутентификации. Доступные значения: *none*, *email*, *phone* (по умолчанию `'none'`). В случае установки значения none считается выключенной. -- **_userTokenLifeTime_** - устанавливает время действия токена восстановления пароля или кода входа при двухфакторной аутентификации в часах (по умолчанию 1). Можно задавать дробные числа, чтобы указать минуты и/или секунды. -- **_attemptsLimitForConfirmCode_** - количество попыток ввода токена восстановления пароля или кода входа при двухфакторной аутентификации (по умолчанию 0). Если значение равно 0, то количество попыток не ограничено. -- **_timeLimitForResendingConfirmCode_** - лимит времени (в секундах) для возможности повторной отправки токена восстановления пароля или кода входа при двухфакторной аутентификации (по умолчанию 0 - без ограничений по времени). Настройка влияет на доступность кнопки отправки кода. На сервере проверка не осуществляется. - -Чтобы отправка писем на почту работала, необходимо подключить почтовый ящик в разделе **applications.post.emails**. Чтобы работала отправка СМС, необходимо произвести настройки в разделе **applications.post.sms**. - -Пример: - -``` js -applications: { - gate: { - sessionLifeTime: 1800, - ldap: { - // ... - }, - validation: { - // ... - }, - - twoFactorProvider: 'phone', - userTokenLifeTime: 0.1, - attemptsLimitForConfirmCode: 3, - timeLimitForResendingConfirmCode: 30 - }, - // ... - post: { - defaultEmailId: 'default', - emails: { - default: { - host: 'smtp.gmail.com', - port: 587, - secure: false, - user: 'lexemaecm@gmail.com', - pass: 'password', - userName: 'Lexema' - } - }, - sms:{ - provider: 'mts', - token: 'abc01234-012a-0abc-0895-abc012345678', - sender:'LEXEMAECM' - }, - // ... -} -``` - -## Доменная авторизация - -Обновление данных происходит после каждой авторизации пользователя в системе. для обновления необходимо настроить следующие разделы конфигурации: - -- **_applications.gate.ldap.searchAttributes_** - параметр, отвечающий за возвращаемые наборы данных пользователей при авторизации. -- **_applications.gate.ldapSchemeDictionary_** - словарь сопоставления атрибутов пользователя системы и пользователя домена. - -**_ldapSchemeDictionary_** - словарь сопоставления атрибутов, возвращаемых после поиска пользователя в контроллере домена, и полей, доступных для обновления в таблице пользователей. Ключ словаря - параметр пользователя системы, значение ключа - параметр пользователя домена. Значения должны быть описаны в параметре ldap.searchAttributes. Доступные значения для обновления в таблице: *firstName*, *lastName*, *middleName*, *email*, *phoneNumber*. - -Пример: - -```js -applications: { - gate: { - sessionLifeTime: 1800, - ldap: { - url: 'ldap://domain:port', - bindDN: 'CN=User,CN=Users,DC=domain', - bindCredentials: 'password', - searchBase: 'OU=Users,OU=Organization,DC=domain', - searchFilter: '(&(objectclass=person)(sAMAccountName={{username}}))', - searchAttributes: ['sn', 'givenName', 'mobile', 'middleName', 'mail', 'sAMAccountName'] - }, - ldapSchemeDictionary: { - firstName: 'givenName', - lastName: 'sn', - middleName: 'middleName', - email: 'mail', - phoneNumber: 'mobile' - } - }, - // ... -} -``` - -## Смена пароля при первом входе в систему - -- Чтобы новым пользователям в системе предлагалось сменить пароль при первом входе, необходимо включить настройку **_enableChangePasswordOnFirstLogin_**. -- **_userTokenProvider_** - имя провайдера восстановления пароля (по умолчанию 'Email'). Доступные значения: *Email*, *Phone*. От этой настройки зависит, придёт код для смены пароля на почту или в СМС. - -Чтобы отправка писем на почту работала, необходимо подключить почтовый ящик в разделе **applications.post.emails**. Чтобы работала отправка СМС, необходимо произвести настройки в разделе **applications.post.sms**. - -Пример: - -```js -applications: { - gate: { - sessionLifeTime: 1800, - ldap: { - // ... - }, - validation: { - // ... - }, - - enableChangePasswordOnFirstLogin : true, - userTokenProvider: 'Email' - }, - // ... -} -``` - -## Ограничение срока действия паролей пользователей - -- Настройка **_passwordExpiration_** задает срок действия пароля пользователя в днях, значение 0 отключает проверку (по умолчанию значение 0). По истечении срока действия пароля, при попытке входа в систему пользователю будем предложено сменить пароль. Письмо с одноразовым кодом для смены пароля придёт на почту пользователя. -- **_userTokenProvider_** - имя провайдера восстановления пароля (по умолчанию 'Email'). Доступные значения: *Email*, *Phone*. От этой настройки зависит, придёт код для смены пароля на почту или в СМС. - -Чтобы отправка писем на почту работала, необходимо подключить почтовый ящик в разделе **applications.post.emails**. Чтобы работала отправка СМС, необходимо произвести настройки в разделе **applications.post.sms**. \ No newline at end of file