update
All checks were successful
Deploy Static Site / deploy (push) Successful in 3m24s

This commit is contained in:
2025-05-29 16:37:23 +04:00
parent 7365966470
commit e217f89702
2727 changed files with 0 additions and 206405 deletions

View File

@ -1,678 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Утилита elma365pm для CI/CD в решениях</title>
<meta name="generator" content="Help+Manual" />
<meta name="keywords" content="«Особенности использования утилиты»,администратором системы,Раздел" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Пользовательские решения можно разрабатывать короткими итерациями, чтобы поддерживать их целостность и версионность. Такой подход реализуется при помощи цикла Разработка&nbsp;&gt;..." />
<meta name="picture" content="" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Cправка по Low-code платформе ELMA365" />
<meta property="og:url" content="https://elma365.com/ru/help" />
<meta property="og:image" content="" />
<meta property="og:site_name" content="ELMA365" />
<link rel="icon" href="favicon.png" type="image/png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./jquery-ui.min.css" />
<link rel="stylesheet" href="default.css" />
<link rel="stylesheet" href="./search-yandex.css" />
<link rel="stylesheet" href="./article.css" />
<link rel="stylesheet" href="./glossary.css" />
<link rel="stylesheet" href="./theme.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="helpman_settings.js"></script>
<script type="text/javascript" src="helpman_topicinit.js"></script>
<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
$(document).ready(function(){highlight();});
</script>
</head>
<body>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-M6ETBEC1R9"></script><script>window.dataLayer=window.dataLayer || []; function gtag(){dataLayer.push(arguments);}gtag('js', new Date()); gtag('config', 'G-M6ETBEC1R9');</script>
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
<header class="header elma-365">
<div class="container">
<a class="header__logo" href="https://elma365.com/ru/help">
<img src="./logo.svg" alt="header logo">
</a>
<!-- <div class="hero__search-form" id="search-panel">
<form class="search-form" onsubmit="ym(83179930,'reachGoal','poisk')">
<label class="search-form__label">
<span id="reset-search" class="search__icon"></span>
<input class="search-form__input" type="text">
</label>
<input class="search-form__submit" type="submit" value="Submit">
</form>
</div> -->
<div class="hero__search-form" id="search-panel"> <form class="search-form"> <label class="search-form__label"> <span id="reset-search" class="search__icon"></span> <input class="search-form__input" type="text"> </label> <input class="search-form__submit" type="submit" value="Submit"> </form> </div>
<div class="hero__search">
<a href="#" id="search-icon" class="hero__search-icon">
<img src="search-icon-white.svg" alt="search string">
</a>
<a href="#" id="side-menu-icon" class="hero__side-icon">
<img src="side_menu.svg" alt="side menu">
</a>
</div>
<div class="header__navi">
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a class="project-link" href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li><li><a class="project-link" href="https://elma365.com/ru/help/business_solutions/-elma365-store.html">Бизнес-решения</a></li></ul></span></li><li><a href="https://api.elma365.com/ru/"target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/"target="_blank">SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/" target="_blank">Академия</a></li><li><a href="https://elma365.com/ru/" target="_blank">Сайт ELMA365</a></li></ul>
</div>
</div>
</header>
<main class="main container">
<aside class="sidebar" id="sidebar">
<div class="sidebar__header">
<a class="header__logo" href="https://elma365.com/ru/help">
<img src="./logo-light.svg">
</a>
<span class="sidebar__close elma-365-close" id="close"></span>
</div>
<div class="sidebar__wrapper" id="side-menu">
</div>
</aside>
<article class="article" id="article">
<div class="article-inner">
<div class="content">
<header class="article__header">
<div class="article__bread" style="display:flex; gap:10px;">
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
<div class="topic__breadcrumbs">
<p><a href="solutions-building.html">Разработка решений на платформе ELMA365</a> / Утилита elma365pm для CI/CD в решениях</p>
</div>
</div>
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Утилита elma365pm для CI/CD в решениях</span></h1>
</div>
</header>
<section class="article__content">
<div class="scroll-top-inner">
<a href="#h1-article" class="scroll-top"></a>
</div>
<!-- Placeholder for topic body. -->
<p style="margin: 7px 0 16px 0;">Пользовательские решения можно разрабатывать короткими итерациями, чтобы поддерживать их целостность и версионность. Такой подход реализуется при помощи цикла <span style="font-weight: bold;">Разработка &gt; Тестирование &gt; Эксплуатация</span> (Develop &gt; Test &gt; Production). В нём решение проходит три этапа, каждый из которых выполняется в отдельной компании: dev-компания используется для разработки, test-компания — для тестирования, prod-компания — для эксплуатации готового решения.</p>
<p style="margin: 7px 0 16px 0;">Этот цикл осуществляется с помощью принципов <span style="font-weight: bold;">Непрерывная интеграция</span> (Continuous integration) и <span style="font-weight: bold;">Непрерывная сборка и выкладка</span> (Continuous delivery and deploy) или CI/CD. </p>
<p style="margin: 7px 0 16px 0;">В ELMA365 для реализации подхода CI/CD предусмотрено несколько инструментов, которые можно использовать независимо друг от друга:</p>
<ul style="list-style-type:disc">
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">инструмент <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> — обмен компонентами между<span style="font-weight: bold;"> </span>компаниями из разных окружений выполняется на основе стандартных процессов экспорта и импорта. Все настройки осуществляются в интерфейсе ELMA365. Две компании связываются между собой. Затем создаётся профиль обмена: выбираются компоненты конфигурации, указывается тип операции и т. д. Профиль сохраняется, что позволяет выполнять операцию обмена несколько раз. Присутствует возможность сравнить конфигурации двух компаний и проанализировать результат выполнения операции. Процесс обмена выполняется в фоновом режиме. Подробнее о работе с инструментом читайте в статье <a href="low-code-ci-cd.html" class="topiclink">«Непрерывная интеграция и выкладка (Low-code CI/CD)»</a>;</li><li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">утилита <span style="font-weight: bold;">elma365pm</span> — вспомогательная независимая утилита командной строки применяется совместно со сторонними сервисами контроля версий и настройки пайплайнов, например, GitLab. Утилита позволяет экспортировать в файл компонент конфигурации компании (раздел, модуль или решение). Затем работа осуществляется в стороннем сервисе, что позволяет использовать операции из High-code разработки. Компонент обновляется до новой версии, упаковывается в файл и импортируется в другую компанию. </li></ul>
<p style="margin: 7px 0 16px 0;">В этой статье описывается основной принцип работы с утилитой <span style="font-weight: bold;">elma365pm</span> и используемые при этом команды.</p>
<p style="margin: 7px 0 16px 0;">Пример организации цикла разработки и выкладки с использованием системы контроля версий GitLab и нескольких окружений dev-test-prod приведён в <a href="https://community.elma365.com/ru/threads/1784/" target="_blank" class="weblink">ELMA365 Community</a>.</p>
<h2 class="p_Heading2"><a id="download" class="hmanchor"></a><span class="f_Heading2">Загрузка утилиты</span></h2>
<p style="margin: 10px 0 0 0;">Нажмите на ссылку, чтобы загрузить утилиту <span style="font-weight: bold;">elma365pm</span> для различных операционных систем, совместимую с поставками <span style="color: #394149;">ELMA365 SaaS</span> и последней версией ELMA365 On-Premises:</p>
<ul style="list-style-type:disc">
<li style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><a href="https://dl.elma365.com/elma365pm/latest/elma365pm.linux.amd64.zip" class="weblink">Linux</a>;</li><li style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><a href="https://dl.elma365.com/elma365pm/latest/elma365pm.windows.amd64.zip" class="weblink">Windows</a>;</li><li style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><a href="https://dl.elma365.com/elma365pm/latest/elma365pm.darwin.amd64.zip" class="weblink">macOS (архитектура Intel x64)</a>;</li><li style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><a href="https://dl.elma365.com/elma365pm/latest/elma365pm.darwin.arm64.zip" class="weblink">macOS (архитектура ARM x64, процессор M1)</a>.</li></ul>
<p class="p_Normal">После загрузки распакуйте <span style="font-weight: bold;">.exe</span>-файл.</p>
<h2 class="p_Heading2"><a id="comands" class="hmanchor"></a><span class="f_Heading2">Доступные команды утилиты</span></h2>
<p class="p_Normal">Работа с утилитой <span style="font-weight: bold;">elma365pm</span> осуществляется с помощью выполнения команд в командной строке. Команды могут использоваться с доступными флагами. Они прописываются после наименования команды. </p>
<p class="p_Normal">После загрузки утилиты вы можете запросить справочную информацию, выполнив команду:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm&nbsp;--help</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-size: 13px; font-family: Inter; color: #394149;">Подробная инструкция для каждой команды вызывается следующим образом:</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm&nbsp;&lt;command&gt;&nbsp;--help</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">В таблице ниже приведены доступные команды и флаги:</span></p>
<div style="text-align: left; text-indent: 0; padding: 0 0 0 0; margin: 7px 0 16px 0;"><table style="border:none; border-spacing:0;">
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Команда:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm unpack</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;">р</span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">аспаковать пакет экспорта формата </span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">.e365 </span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">в файловую систему. В команде задаётся путь до пакета и до папки-распаковки.</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm unpack --src=String --out=String</b></code></p>
<p style="margin: 7px 0 16px 0;"><span style="font-style: italic;">Флаги:</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--src=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Путь до компонента.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--out=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">Директория файловой системы, куда распаковывается пакет.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--experimental-restruct</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p class="p_Normal">По умолчанию структура каталогов и файлов после распаковки пакета экспорта соответствует внутренней структуре такого пакета. <br />
Примените флаг, чтобы реструктурировать пакет для повышения наглядности. </p>
<p class="p_Normal">Тогда при распаковке сформируется иерархическая структура решения. Например, файл с описанием приложения будет находиться в каталоге раздела, каталог раздела — в каталоге решения, описания переносимых сервисов или методов API в каталоге модуля и т. д.<br />
Использовать флаг необходимо с осторожностью.</p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Команда:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm pack</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"></span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">упаковать директорию в пакет </span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">.e365</span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">. В команде задаётся путь до распакованного пакета и файл, в который необходимо упаковать компоненты. </span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm pack --src=String --out=String</b></code></p>
<p style="margin: 7px 0 16px 0;"><span style="font-style: italic;">Флаги:</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--src=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">Директория файловой системы, где хранится распакованный пакет.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--out=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">Файл, куда запаковывается пакет.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--version-up</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Обновление версии пакета.</span></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Команда:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm export</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> — </span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">экспортировать компонент из ELMA365 в директорию файловой системы.</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm export &lt;command&gt;</b></code></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Подкоманды (доступные компоненты экспорта):</span></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>elma365pm export namespace</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> — экспорт раздела.</span></p>
<p style="line-height: 1.28; margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm export namespace (ns) --token=STRING --host=STRING --out=STRING</b></code></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>elma365pm export solution</b></code><span style="font-size: 13px;"> — э</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">кспорт решения.</span></p>
<p style="line-height: 1.28; margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm export solution (sln) --token=STRING --host=STRING --out=STRING</b></code></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>elma365pm export module</b></code><span style="font-size: 13px;"> — э</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">кспорт модуля.</span></p>
<p style="line-height: 1.28; margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm export module (mod) --token=STRING --host=STRING --out=STRING</b></code></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>elma365pm export configuration</b></code><span style="font-size: 13px;"> — э</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">кспорт конфигурации.</span></p>
<p style="line-height: 1.28; margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm export configuration (cfg) --token=STRING --host=STRING --out=STRING</b></code></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Флаги, доступные для подкоманд экспорта:</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--token=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; color: #0000ff;"><a href="360016488452.html" class="topiclink">Токен авторизации</a></span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">, созданный в ELMA365 в разделе </span><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Администрирование</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--host=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Адрес хоста ELMA365.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--out=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">Директория файловой системы, куда экспортируется пакет.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--code=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Код идентификатора экспортируемого компонента.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--dts</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p class="p_Normal">Флаг управляет генерацией файлов <span style="font-weight: bold;">d.ts</span>, которые активируют подсказки IDE по типам языка TypeScript в скриптах. По умолчанию включен.</p>
<p class="p_Normal"><span style="font-weight: bold;">Важно:</span> для пакетов с множеством компонентов генерация может занять продолжительное время.</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--experimental-restruct</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p class="p_Normal">Реструктурировать пакет для отображения логической иерархии файлов. Применяется с осторожностью.</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--allow-deps=true/false</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p class="p_Normal">Применяется при экспорте решений. Позволяет выгрузить решение с добавленными связями с компонентами другого решения. Подробнее читайте в разделе <a href="lowcode-devops-pm.html#export-use" class="topiclink">«Особенности использования утилиты»</a>.</p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Команда:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm import</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"></span><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">импортировать объекты в ELMA365.</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm import --token=STRING --host=STRING --src=STRING</b></code></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Флаги:</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--token=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; color: #0000ff;"><a href="360016488452.html" class="topiclink">Токен авторизации</a></span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">, созданный в ELMA365 в разделе </span><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Администрирование</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--host=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Адрес хоста ELMA365.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--src=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">Директория файловой системы</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> для упаковки и импорта.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--version-up</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Обновление версии пакета.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--replace-org-struct</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Замена организационной структуры. Используется только при импорте конфигурации компании.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--force</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Принудительный импорт при наличии конфликтов. Используйте с осторожностью, конфликт может означать, что данные на целевом хосте повреждены.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--fail-on-conflict</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Вывод в коде выхода ненулевой код ошибки, если при принудительном импорте пакета возникли конфликты. Используется только с флагом </span><code><b>--force</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;">.</span></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Команда:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm check</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> — проверить пакет на пригодность к импорту.</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm check --token=STRING --host=STRING --src=STRING</b></code></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Флаги:</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--token=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; color: #0000ff;"><a href="360016488452.html" class="topiclink">Токен авторизации</a></span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">, созданный в ELMA365 в разделе </span><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Администрирование</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;">.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--host=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Адрес хоста ELMA365.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--src=String</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-size: 15px; font-family: 'Times New Roman',Times,Georgia,serif;">Директория файловой системы</span><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> для упаковки и импорта.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--version-up</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Обновление версии пакета.</span></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Команда:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm version</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> — показать информацию о версии утилиты</span></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Использование:</span><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;"> </span></p>
<p style="margin: 7px 0 16px 0;"><code><b>elma365pm version</b></code></p>
<p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-style: italic;">Флаг:</span></p>
<p style="margin: 7px 0 16px 0;"><code><b>--json</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;"> — вывод информации в JSON</span></p>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold;">Флаги, доступные для каждой команды:</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--help</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Справочная информация о команде.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--debug</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Вывод подробных логов выполнения операции.</span></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; padding:0; border:none"><p style="margin: 7px 0 16px 0;"><code><b>--timeout</b></code></p>
</td>
<td style="vertical-align:top; padding:0; border:none"><p><span style="font-family: 'Times New Roman',Times,Georgia,serif;">Ожидание выполнения операции. По умолчанию задано значение 5 минут. Изменяется в случае обработки объёмного пакета. Пример: </span><code><b>elma365pm export solution --timeout=10m</b></code><span style="font-family: 'Times New Roman',Times,Georgia,serif;">.</span></p>
</td>
</tr>
</table>
</div>
<h2 class="p_Heading2"><a id="export-use" class="hmanchor"></a><span class="f_Heading2">Особенности использования утилиты</span></h2>
<p style="line-height: 1.28; margin: 0 0 11px 0;">Обратите внимание на особенности работы с утилитой <span style="font-weight: bold;">elma365pm</span>:</p>
<ol style="list-style-type:decimal">
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">С помощью утилиты нельзя экспортировать или импортировать <span style="color: #0000ff;"><a href="solution.html" class="topiclink">платные системные решения</a></span>.</li><li value="2" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Чтобы экспортировать решение с настроенными <span style="color: #0000ff;"><a href="export-solution-file.html#add-dependencies" class="topiclink">связями с компонентами другого решения</a></span>, в команде экспорта применяется параметр <code><b>--allow-deps</b></code> со значением <code><b>true</b></code>: </li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm export solution --token=TOKEN --host=https://dev-elma365.myorg</span><br />
<span class="f_CodeExample">--out=my_solution&nbsp;--code=my_solution_code --allow-deps=true </span></p>
<p style="margin: 7px 0 16px 35px;">Если не использовать параметр <code><b>--allow-deps</b></code> или установить для него значение <code><b>false</b></code>, решение со связанными компонентами не экспортируется.</p>
<h2 class="p_Heading2"><a id="use-case" class="hmanchor"></a><span class="f_Heading2">Пример использования утилиты</span></h2>
<p style="margin: 7px 0 16px 0;">Для примера в качестве инфраструктуры хранения исходного кода и непрерывной сборки используется сервис GitLab. Это наиболее популярный продукт с возможностью разворачивания своего сервера в закрытом контуре.</p>
<p style="margin: 7px 0 16px 0;">Рассмотрим основные этапы непрерывной сборки и выкладки на примере решения <span style="font-weight: bold;">Служебные записки</span> (<code><b>Internal_Documents</b></code>). </p>
<ol style="list-style-type:upper-roman">
<li value="1" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Разработчик решения выполняет работу в компании с dev-окружением.</li><li value="2" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">После окончания разработки необходимо выгрузить решение в папку репозитория в файловой системе. Для этого используется команда:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm&nbsp;export&nbsp;solution&nbsp;--token=TOKEN&nbsp;--host=https://dev15-elma365.myorg</span><br />
<span class="f_CodeExample">--out=Internal_Documents&nbsp;--code=Internal_Documents</span></p>
<p style="margin: 7px 0 16px 36px;">Токен для экспорта и импорта создаётся <a href="360006871932.html#administrators" class="topiclink">администратором системы</a> в разделе <span style="font-weight: bold;">Администрирование &gt; Токены</span>.</p>
<p style="margin: 7px 0 16px 36px;">После выполнения этой команды в папке <span style="font-weight: bold;">/Internal_Documents</span> будут содержаться файлы решения <span style="font-weight: bold;">Служебные записки</span>. </p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Затем разработчик использует инструменты работы с репозиторием git, согласно внутреннему регламенту.</li></ol>
<p style="margin: 7px 0 16px 36px;">В нашем примере он фиксирует свои изменения (commit) в отдельную рабочую ветку (branch) и отправляет их в общий репозиторий (push) на сервис GitLab. Далее на сервере в рабочем репозитории создаётся запрос на слияние своей ветки в общую ветку develop.</p>
<ol style="list-style-type:upper-roman" start="3">
<li value="4" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">После проверки и согласования ветки разработчика осуществляется слияния. </li><li value="5" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">В процессе автоматической сборки решения на ветке develop выполняется:</li></ol>
<ul style="list-style-type:disc">
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">упаковка артефакта решения в файл <span style="font-weight: bold;">.e365</span> для тестирования:</li></ul>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm&nbsp;pack&nbsp;--src=procurement&nbsp;--out=dist/procurement.e365</span></p>
<ul style="list-style-type:disc">
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">загрузка решения в компанию с test-окружением:</li></ul>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm&nbsp;import&nbsp;--token=TEST-TOKEN&nbsp;--host=https://test-elma365.myorg</span><br />
<span class="f_CodeExample">--src=Internal_Documents&nbsp;--version-up&nbsp;--force</span></p>
<p style="margin: 7px 0 16px 0;">Чтобы проигнорировать ошибки импорта и выполнить принудительную загрузку в примере используется флаг <code><b>--force</b></code>.</p>
<ol style="list-style-type:upper-roman" start="6">
<li value="6" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">После тестирования решения загружается для эксплуатации в компанию с prod-окружением: </li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">elma365pm&nbsp;import&nbsp;--token=PRODUCTION-TOKEN&nbsp;--host=https://elma365.myorg</span><br />
<span class="f_CodeExample">--src=Internal_Documents&nbsp;--version-up</span></p>
<p style="margin: 7px 0 16px 0;">Подробнее о применении утилиты <span style="font-weight: bold;">elma365pm </span>и работе с ней<span style="font-weight: bold;"> </span>на примере читайте на <a href="https://elma365.com/ru/news/tool-for-creating-lowcode-devops-practices/" target="_blank" class="weblink">официальном сайте ELMA365</a>.</p>
<h2 class="p_Heading2"><a id="structure" class="hmanchor"></a><span class="f_Heading2">Файловая структура решения</span></h2>
<p class="p_Normal" style="line-height: 1.50; margin: 10px 0 0 0;"><span style="font-size: 15px;">При распаковке решения в файлы командой </span><code><b>elma365pm export</b></code><span style="font-size: 15px;"> вы увидите в целевой папке структуру решения. Для примера используется готовое бизнес-решение </span><a href="memos.html" class="topiclink">Служебные записки</a>.</p>
<p class="p_Normal" style="line-height: 1.50; margin: 10px 0 0 0;"><span style="font-size: 15px;"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">Файловая структура</a></span></p>
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.50; padding: 0 0 0 0; margin: 10px 0 0 0;"><table style="border:none; border-spacing:0;">
<tr>
<td style="vertical-align:top; padding:0; border:none"><p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">PS&nbsp;InternalDocuments&gt;&nbsp;tree&nbsp;/F</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">package</span><span class="f_CodeExample">.json</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">├───appViews</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;├───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;└───resources</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type.json.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote.json.po</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">├───groups</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;└───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27b37284-0ab0-4d9e-8b39-893938770deb.json</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">├───pages</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;├───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├───global</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InternalDocuments.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_9556a21b-ef8b-4dd6-ad43-2a6d81dd5fda.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sep_adab5a75-98bf-46f2-af6e-4a67866260a6.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sep_ffe43b88-2ee2-42b0-939a-d4f88a435c98.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;└───resources</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├───global</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InternalDocuments.widgets.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type.widgets.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_9556a21b-ef8b-4dd6-ad43-2a6d81dd5fda.widgets.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sep_adab5a75-98bf-46f2-af6e-4a67866260a6.widgets.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sep_ffe43b88-2ee2-42b0-939a-d4f88a435c98.widgets.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote.widgets.json</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">├───permissionsSettings</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;└───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├───global</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InternalDocuments.pagePermissions.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type.pagePermissions.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type.permissionSettings.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document_type@__directory.permissionSettings.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_9556a21b-ef8b-4dd6-ad43-2a6d81dd5fda.pagePermissions.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sep_adab5a75-98bf-46f2-af6e-4a67866260a6.pagePermissions.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sep_ffe43b88-2ee2-42b0-939a-d4f88a435c98.pagePermissions.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote.pagePermissions.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote.permissionSettings.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNote@__directory.permissionSettings.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_process_serviceNoteProcessing.permissionSettings.json</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">├───processor</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;├───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments.serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNoteProcessing.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNoteProcessing.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;└───resources</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments.serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNoteProcessing.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceNoteProcessing.runtime</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">├───templates</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;├───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments.serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;accb6290-4c06-44c3-8ce1-fe0721fab4e2</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;└───resources</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments.serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───accb6290-4c06-44c3-8ce1-fe0721fab4e2</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Служебная&nbsp;записка.docx</span><br />
<span class="f_CodeExample"></span><br />
<span class="f_CodeExample">└───widgets</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manifest.json</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;├───entities</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├───InternalDocuments.document_type</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments.serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_20d7fc9f-744b-4c5b-9e63-ad6cb52d8f73</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_20d7fc9f-744b-4c5b-9e63-ad6cb52d8f73.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_20d7fc9f-744b-4c5b-9e63-ad6cb52d8f73.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_bd63ceb5-914e-406a-90e3-d513b9258ed4</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_bd63ceb5-914e-406a-90e3-d513b9258ed4.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_bd63ceb5-914e-406a-90e3-d513b9258ed4.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_c4663ece-c7bb-4926-8cc0-1272029cb586</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_c4663ece-c7bb-4926-8cc0-1272029cb586.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_c4663ece-c7bb-4926-8cc0-1272029cb586.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_dd59c19d-84ff-45ef-b393-db8726a154a8</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_dd59c19d-84ff-45ef-b393-db8726a154a8.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_dd59c19d-84ff-45ef-b393-db8726a154a8.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_f51fd1ff-a3ce-4e1d-b7ca-5fd5e324e08b</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_f51fd1ff-a3ce-4e1d-b7ca-5fd5e324e08b.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_f51fd1ff-a3ce-4e1d-b7ca-5fd5e324e08b.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_view</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_view.client.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_view.server.ts</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;└───resources</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├───InternalDocuments.document_type</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└───InternalDocuments.serviceNote</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_20d7fc9f-744b-4c5b-9e63-ad6cb52d8f73.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_bd63ceb5-914e-406a-90e3-d513b9258ed4.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_c4663ece-c7bb-4926-8cc0-1272029cb586.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_dd59c19d-84ff-45ef-b393-db8726a154a8.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form_f51fd1ff-a3ce-4e1d-b7ca-5fd5e324e08b.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_create.po</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_view.po</span></p>
</td>
</tr>
</table>
</div>
<p class="p_Comment"><span class="f_Comment">На верхнем уровне находятся папки сервисов, т. к. архитектура системы микросервисная. В каждой папке сервиса обычно есть файл</span><span style="font-size: 15px;"> </span><code><b>manifest.json</b></code> и две папки <code><b>entities</b></code> и <code><b>resources</b></code><span class="f_Comment">. В корне также лежит файл <code><b>package.json</b></code>, в котором описаны основные данные выгруженного решения или раздела.</span></p>
<p class="p_Comment"><span class="f_Comment">В основном файлы в структуре делятся на три типа:</span></p>
<ol style="list-style-type:decimal">
<li value="1" style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-size: 15px; font-weight: bold;">Файлы описаний конфигурации</span><span style="font-size: 15px;"> — это файлы формата </span><span style="font-size: 15px; font-weight: bold;">.json</span><span style="font-size: 15px;"> или файлы без расширения, также являющиеся JSON-файлами. В этих файлах можно найти описание полей и настройки приложения, описание процесса, виджеты и модули.</span></li><li value="2" style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-size: 15px; font-weight: bold;">Файлы скриптов</span><span style="font-size: 15px;"> — это файлы формата </span><span style="font-size: 15px; font-weight: bold;">.ts</span><span style="font-size: 15px;">, в которых хранятся тексты скриптов процессов, виджетов, модулей. </span></li></ol>
<p style="line-height: 1.50; margin: 0 0 0 30px;">Файлы скриптов распаковываются для удобного просмотра и совместного ревью кода. Содержимое этих файлов не упаковывается в пакет при импорте. Вы можете редактировать распакованные файлы скриптов, а также использовать файлы-автодополнения для удобства работы в редакторах кода.</p>
<ol style="list-style-type:decimal">
<li value="3" style="line-height: 1.50; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-size: 15px; font-weight: bold;">Прочие файлы ресурсов или локализации</span><span style="font-size: 15px;">. Такие файлы обычно находятся в папке </span><code><b>resources</b></code><span style="font-size: 15px;">. Локализация пакетов решений в будущем будет переработана, поэтому сейчас файлы локализации используются ровно один раз при первом импорте пакета. Вы можете вносить изменения прямо в эти файлы, и они будут упакованы утилитой.</span></li></ol>
<div class="bottom-nav">
<a id="prev-link" class="topic__navi_prev" href="create-service.html">
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
class="bottom-nav__link">create-service.html</span>
</a>
<a id="next-link" class="topic__navi_next" href="npm-package.html">
<span class="bottom-nav__link">npm-package.html</span> <span
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
</a>
</div>
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
<div class="feedback-wrap"><div class="feedback" id="feedback"><span><b>Была ли статья полезной?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx">Спасибо за ваш отзыв!</div><div id="feedback-success-popup"><div class="wrap"><button type="button" class="feedback-popup-close">×</button><svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_212_2187)"><path d="M22 0.6875C10.2294 0.6875 0.6875 10.2294 0.6875 22C0.6875 33.7706 10.2294 43.3125 22 43.3125C33.7706 43.3125 43.3125 33.7706 43.3125 22C43.3125 10.2294 33.7706 0.6875 22 0.6875ZM22 40.5625C11.8023 40.5625 3.4375 32.3078 3.4375 22C3.4375 11.8024 11.6922 3.4375 22 3.4375C32.1977 3.4375 40.5625 11.6922 40.5625 22C40.5625 32.1976 32.3078 40.5625 22 40.5625ZM34.1713 16.933L18.6613 32.3186C18.257 32.7197 17.604 32.7171 17.203 32.3128L9.82283 24.873C9.42176 24.4686 9.42434 23.8157 9.82867 23.4146L10.5609 22.6884C10.9652 22.2873 11.6181 22.2899 12.0192 22.6942L17.9468 28.6697L31.9926 14.7366C32.3969 14.3356 33.0498 14.3382 33.4509 14.7425L34.1772 15.4747C34.5783 15.879 34.5757 16.532 34.1713 16.933Z" fill="#27AE60"></path></g><defs><clipPath id="clip0_212_2187"><rect width="44" height="44" fill="white"></rect></clipPath></defs></svg><p>Ваш отзыв успешно отправлен!</p><span>Спасибо за обратную связь.</span></div></div><div class="feedback__popup" id="feedback__popup_why"><button type="button" class="feedback-popup-close">×</button><div class="feedback__popup-header">Уточните, почему:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Рекомендации не помогли</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Текст трудно понять</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Нет ответа на мой вопрос</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Содержание статьи не соответствует заголовку</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Другая причина</label></div><div class="feedback__popup" id="feedback__popup-other"><button type="button" class="feedback-popup-close">×</button> <div class="feedback__popup-header">Расскажите, что вам не понравилось в статье:</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Отправить"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg"/><span class="feedback-form__btn-group_yes-btn">Да</span></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg"/><span class="feedback-form__btn-group_no-btn">Нет</span></label></div><select name="category"><option disabled>Выберите вариант</option><option value="bad_recommendation" selected>Рекомендации не помогли</option><option value="difficult_text">Текст трудно понять</option><option value="no_answer">Нет ответа на мой вопрос</option><option value="bad_header">Содержание статьи не соответствует заголовку</option><option value="other_reason">Другая причина</option></select><input type="submit"></form></div></div>
</section>
</div>
<aside class="article__sidebar" style="display:none">
<input type="checkbox" />
<div class="article__arrow"></div>
<div class="table-of-contents elma365-right" id="toc2Content">
<h3 class="h3-toc">В этой статье</h3>
<nav id="toc2"></nav>
</div>
</aside>
</div>
</article>
</main>
<footer class="footer">
<div class="footer-container">
<div class="footer-mobile">
<ul class="footer-mobile__list"><li><a href="https://api.elma365.com/ru/" target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/" target="_blank">TS SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/elma365" target="_blank">Академия</a></li></ul><ul class="footer-mobile__list"><li><a href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li></ul>
</div>
<div class="container">
<div class="footer-wrap">
<div><span class="mobile-question-popup">Отправить фидбэк</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Задать вопрос</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Отправить"></div></form><div class="hidden fade-in question-success-xs">Ваш фидбэк отправлен.</div></div>
<div class="footer-flex-b">
<div class="footer-top">
<span class="footer-copy">&copy; 2025
ELMA365
</span>
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
</a>
</div>
<div class="footer-line">
<div class="footer-line-copy">
<span class="footer-copy">&copy; 2025
ELMA365
</span>
</div>
<ul class="footer-list">
<li class="footer-item"><a href="https://elma365.com/ru/" target="_blank" class="footer-link" style="color: #0D4A75;"><img src="browse.svg" alt="browse icon" class="footer-img">elma365.com</a></li><li class="footer-item"><a href="https://www.youtube.com/user/ELMABPM" target="_blank" class="footer-link"><img src="yt.svg" alt="youtube icon" class="footer-img"></a></li><li class="footer-item"><a href="https://vk.com/elma_bpm" target="_blank" class="footer-link"><img src="vk.svg" alt="vk icon" class="footer-img"></a></li><li class="footer-item"><a href="https://t.me/elmaday" target="_blank" class="footer-link"><img src="tg.svg" alt="telegram icon" class="footer-img"></a></li><li class="footer-item"><a href="https://dzen.ru/elma" target="_blank" class="footer-link"><img src="dzen.svg" alt="dzen icon" class="footer-img"></a></li>
<li class="footer-item">
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<a href="#" class="arrow-top"></a>
</div>
</footer>
<!-- <script type="text/javascript" src="jquery1.min.js"></script>-->
<iframe name="hmnavigation" style="display:none!important"></iframe>
<!--<script src="./jquery-ui.js"></script> -->
<script src="./jquery-ui.min.js"></script>
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
<script src="./jquery.tocify.min.js"></script>
<script src="./TypoReporter.min.js"></script>
<script src="./google-search.js"></script>
<script src="./main.js"></script>
<script type="text/javascript">
HMInitToggle('TOGGLE0186A1','hm.type','dropdown','hm.state','0');
</script>
</body>
</html>