313 lines
63 KiB
HTML
313 lines
63 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
|
||
<head>
|
||
<title>Непрерывная интеграция и выкладка (Low-code 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="Непрерывная интеграция и Непрерывная сборка и выкладка (CI — Continuous integration, CD — Continuous delivery and deploy) — это подход к разработке комплексных пользовательских..." />
|
||
<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="devtools.html">Инструменты разработчика</a> / Непрерывная интеграция и выкладка (Low-code CI/CD)</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Непрерывная интеграция и выкладка (Low-code 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="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-weight: bold;">Непрерывная интеграция </span>и <span style="font-weight: bold;">Непрерывная сборка и выкладка </span>(CI — Continuous integration, CD — Continuous delivery and deploy) — это подход к разработке комплексных пользовательских решений с использованием цикла <span style="font-weight: bold;">Разработка > Тестирование > Эксплуатация</span> (Develop > Test > Production). </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">С таким способом разработки решение проходит три этапа: создаётся, тестируется, передаётся в эксплуатацию. Для выполнения каждого этапа предназначается отдельная компания. Она регистрируется в своём окружении: </p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">dev-компания — для стадии разработки;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">test-компания — для тестирования разработанного решения;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">prod-компания — для эксплуатации конечными пользователями. </li></ul>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Решение переходит на следующий этап с помощью экспорта в компанию в другом окружении. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Подход 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;">elma365pm</span> — вспомогательная независимая утилита командной строки применяется совместно со сторонними сервисами контроля версий и настройки пайплайнов, например, GitLab. Утилита позволяет экспортировать в файл компонент конфигурации компании (раздел, модуль или решение). Затем работа осуществляется в стороннем сервисе, что позволяет использовать операции из High-code разработки. Компонент обновляется до новой версии, упаковывается в файл и импортируется в другую компанию. Подробнее читайте в статье <a href="lowcode-devops-pm.html" class="topiclink">«Утилита elma365pm для CI/CD в решениях»</a>;</li><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 на основе стандартных процессов экспорта и импорта. Компании связываются между собой. Затем настраивается операция обмена: выбираются компоненты конфигурации, указывается тип операции и т. д. Профиль обмена сохраняется, что позволяет выполнять операцию несколько раз. Присутствует возможность сравнить конфигурации двух компаний и проанализировать результат выполнения операции. Процесс обмена выполняется в фоновом режиме. </li></ul>
|
||
<p class="p_Normal">Подробную информацию о подходе к разработке CI/CD, а также рекомендации по его осуществлению вы можете найти в <a href="https://community.elma365.com/ru/threads/1784/" target="_blank" class="weblink">ELMA365 Community</a>.</p>
|
||
<p style="text-indent: -24px; margin: 7px 0 16px 22px;">В этой статье рассмотрим подробнее настройку инструмента <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> и работу с ним.</p>
|
||
<h2 class="p_Heading2"><a id="glossary" class="hmanchor"></a><span class="f_Heading2" style="font-size: 16px;">Терминология</span></h2>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">В статье используются следующие термины: </p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Компания </span>— зарегистрированная и лицензированная платформа ELMA365 в одном из вариантов <a href="platform-distribution.html" class="topiclink">поставки</a>: SaaS, On-Premises;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Окружение (среда)</span> — компания, которая регистрируется отдельно для определённого этапа работы с решением: разработки, тестирования, эксплуатации (dev, test, prod). Для регистрации и лицензирования компаний в dev и test окружениях обратитесь к вашему менеджеру ELMA365;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Конфигурация</span> — структура, включающая в себя: установленные и пользовательские решения, разделы, модули и их содержимое, бизнес-процессы, группы, виджеты, шаблоны документов и другие сущности, созданные на уровне компании, организационную структуру и номенклатуру дел;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Текущая конфигурация</span> — компания, в которой настраивается связь и операция обмена;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Внешняя конфигурация</span> — компания, с которой производится обмен компонентами конфигурации;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Привязка</span> — связь, созданная между двумя компаниями для обмена компонентами текущей и внешней конфигураций. Связанные компании могут быть зарегистрированы в одинаковом или разных окружениях; </li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Профиль обмена</span> — операция, которая определяет процесс экспорта или импорта между связанными компаниями. В профиле указываются компоненты для обмена, которые могут включать <a href="360007990371.html" class="topiclink">разделы</a>, <a href="extentions.html" class="topiclink">модули</a>, <a href="solution.html" class="topiclink">решения</a> или всю конфигурацию. Позволяет сравнивать текущую и внешнюю конфигурации и просматривать результаты обмена. Профиль может использоваться многократно для проведения операций обмена. </li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Настройка непрерывной выкладки (Low-code CI / CD)</span></h2>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Страница <span style="font-weight: bold;">Непрерывная выкладка (</span><span style="font-weight: bold; color: #394149;">Low-code CI / CD)</span><span style="color: #394149;"> доступна <a href="360006871932.html#administrators" class="topiclink">администраторам системы</a> в </span>разделе <span style="font-weight: bold;">Администрирование > Инструменты разработчика</span>. <span style="color: #394149;"> </span></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Страница включает в себя три вкладки: <span style="font-weight: bold;">Привязки</span>, <span style="font-weight: bold;">Профили</span>, <span style="font-weight: bold;">Уведомления</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;"><a href="low-code-ci-cd.html#bind-companies" class="topiclink">Устанавливается связь между двумя компаниями</a> для осуществления обмена текущей или внешней конфигурацией.</li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><a href="low-code-ci-cd.html#create-profile" class="topiclink">Создаётся профиль обмена</a>, в котором указывается выполняемая операция — экспорт или импорт, выбираются объекты обмена и задаются условия решения возможных конфликтов. </li><li value="3" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><a href="low-code-ci-cd.html#compare-configurations" class="topiclink">Осуществляется сравнение двух конфигураций и их компонентов</a>, выбранных в профиле обмена. Выявляются различия и анализируется результат выполнения операции обмена.</li><li value="4" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><a href="low-code-ci-cd.html#check-profile" class="topiclink">Выполняется проверка созданного профиля</a>, с помощью которой выявляются возможные ошибки процесса обмена.</li><li value="5" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><a href="low-code-ci-cd.html#run-profile" class="topiclink">Запускается операция обмена</a> по заданному профилю.</li><li value="6" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Опционально <a href="low-code-ci-cd.html#use-channel" class="topiclink">настраивается канал для уведомлений</a> о неуспешно выполненных операций обмена. </li></ol>
|
||
<h3 class="p_Heading3"><a id="bind-companies" class="hmanchor"></a><span class="f_Heading3">Установить связь между двумя компаниями </span></h3>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Для реализации непрерывной интеграции (CI) и непрерывной сборки и выкладки (CD) в ELMA365 настраивается обмен компонентами между двумя компаниями в разных окружениях. Для этого <span style="font-style: italic; font-weight: bold;">текущая компания</span> связывается с <span style="font-style: italic; font-weight: bold;">внешней компанией</span> при помощи создания <span style="font-style: italic; font-weight: bold;">привязки</span>. </p>
|
||
<p style="margin: 0 0 11px 0;">Рекомендуется связать компании в разных окружениях следующими парами: разработка/тестирование (dev/test), тестирование/эксплуатация (test/prod).</p>
|
||
<p style="margin: 0 0 11px 0;">В каждой паре первая компания (например, dev) является текущей конфигурацией, в которой создаётся привязка. Вторая компания (например, test) выступает в качестве внешней конфигурации, с которой выполняется обмен. Это позволит последовательно перемещать версии решений между компаниями, из dev-окружения в test, а затем из test-компании в prod. </p>
|
||
<p style="margin: 0 0 11px 0;">В текущей компании можно создать неограниченное количество привязок с различными компаниями, зарегистрированными в любом окружении. </p>
|
||
<p style="margin: 0 0 11px 0;">Регистрация и лицензирование компаний в dev и test окружениях осуществляется через менеджера ELMA365.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало внимание</span></p>
|
||
<p class="p_Normal">В ELMA365 SaaS можно установить только одну связь с внешней компанией и настроить одну операцию обмена между ними.</p>
|
||
<p class="p_Normal">В поставке On-Premises нет ограничений по количеству добавляемых привязок и профилей.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец внимание</span></p>
|
||
<p class="p_Normal">Чтобы привязать одну компанию к другой, выполните следующие действия: </p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Перейдите в ELMA365, которую необходимо привязать, например, в test-компанию. Откройте раздел <span style="font-weight: bold;">Администрирование > Токены</span> и <span style="color: #0000ff;"><a href="https://elma365.com/ru/help/platform/360016488452.html" target="_blank" class="weblink">создайте токен</a></span> для связи.</li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Откройте ELMA365, где нужно создать связь, например, dev-компанию для разработки. Перейдите в раздел <span style="font-weight: bold;">Администрирование > Инструменты разработчика</span> и выберите страницу <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span>. </li><li value="3" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">На вкладке <span style="font-weight: bold;">Привязки</span> нажмите <span style="font-weight: bold;">+ Создать</span> и в открывшемся окне заполните поля:</li></ol>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 37px;"><img alt="low-code-CI-CD-1" width="676" height="527" style="margin:0;width:676px;height:527px;border:none" src="low-code-ci-cd-1.png"/></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Имя</span><span style="font-weight: bold; color: #ff0000;">*</span> — задайте название привязки, которое будет отображаться в списке, например, <span style="font-weight: bold;">Тестовая среда</span>;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Url</span><span style="font-weight: bold; color: #ff0000;">*</span> — укажите URL-адрес главной страницы внешней компании; </li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Токен</span><span style="font-weight: bold; color: #ff0000;">*</span> — скопируйте токен, созданный во внешней компании на шаге 1, и вставьте его в поле. </li></ul>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="4" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Сохраните настройки. </li></ol>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Все привязанные внешние компании отображаются на вкладке <span style="font-weight: bold;">Привязки</span>. С каждой из них возможен обмен конфигурациями или их компонентами. Чтобы изменить данные привязки, нажмите на запись в списке. </p>
|
||
<p style="margin: 0 0 11px 0;">Если для привязки не добавлены профили обмена, вы можете отредактировать её данные или удалить связь с внешней компанией. Для этого нажмите на название привязки в списке и выполните действие в её карточке. Если вы увидели предупреждение о существующих операциях обмена, удалите их на вкладке <span style="font-weight: bold;">Профили</span> и повторите действие. </p>
|
||
<h3 class="p_Heading3"><a id="create-profile" class="hmanchor"></a><span class="f_Heading3">Создать профиль обмена </span></h3>
|
||
<p style="margin: 0 0 11px 0;">После привязки внешней конфигурации к компании, вы можете осуществлять обмен компонентами. Для этого создаётся профиль обмена. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">В профиле указывается, с какой внешней конфигурацией выполняется обмен и определяется тип операции (экспорт или импорт данных). Затем отмечаются объекты для обмена — выбрать можно все объекты, входящие в конфигурацию, или её отдельные компоненты. Также в профиле задаётся стратегия разрешения конфликтов в процессе обмена. </p>
|
||
<p class="p_Normal">В ELMA365 SaaS можно настроить только одну операцию обмена. В поставке On-Premises отсутствуют ограничения по количеству профилей обмена, например, можно добавить профиль для каждого пользовательского решения, разработанного в dev-компании. </p>
|
||
<p class="p_Normal">По созданному профилю можно осуществить проверку выполнения обмена, сравнить конфигурации двух компаний, а также запускать операцию множество раз.</p>
|
||
<p class="p_Normal">Например, в dev-окружении разработаны несколько пользовательских решений. Вы можете экспортировать их в другую компанию для тестирования функциональных возможностей. Для этого в тестовой компании создайте профиль обмена, включите в него все решения из dev-окружения и запустите операцию экспорта. Когда в dev-компании будут разработаны новые версии решений, вы сможете перенести их в тестовое окружение, выполнив тот же профиль обмена. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Чтобы создать профиль обмена: </p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Перейдите в раздел <span style="font-weight: bold;">Администрирование > Инструменты разработчика ></span> <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> и откройте вкладку<span style="font-weight: bold;"> Профили</span>.</li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">В правом верхнем углу страницы нажмите <span style="font-weight: bold;">+ Создать</span> и заполните детали обмена:</li></ol>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 36px;"><img alt="low-code-CI-CD-2" width="774" height="544" style="margin:0;width:774px;height:544px;border:none" src="low-code-ci-cd-2.png"/></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Имя</span><span style="font-weight: bold; color: #ff0000;">*</span> — задайте название обмена, которое будет отображаться в списке профилей;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Привязка</span><span style="font-weight: bold; color: #ff0000;">*</span> — выберите внешнюю конфигурацию, т. е. привязку, созданную на странице <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> на вкладке <span style="font-weight: bold;">Привязки</span>;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Направление</span><span style="font-weight: bold; color: #ff0000;">*</span> — укажите операцию для профиля обмена: <ul style="list-style-type:circle">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Импорт</span> — компоненты внешней конфигурации загружаются в текущую компанию;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Экспорт</span> — компоненты текущей конфигурации переносятся в привязанную внешнюю компанию.</li></ul>
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Стратегия</span><span style="font-weight: bold; color: #ff0000;">*</span> — выберите способ решения конфликтов, возможных при выполнении операции обмена. Конфликты могут возникать, если выявлена несовместимость между компонентами текущей и внешней конфигураций, например, обмен совершается не последовательно между версиями компонентов или переносимые объекты были изменены в обеих компаниях. Если при обмене хотя бы в одном компоненте обнаружен конфликт, операция производится согласно заданной стратегии: <ul style="list-style-type:circle">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Заменить объекты</span> — при возникновении конфликтов существующие компоненты целевой конфигурации будут полностью заменены на импортируемые объекты. Такая стратегия обмена может привести к некорректной работе компонентов целевой конфигурации. Например, если в скриптах используются свойства приложения, которые по результатам обмена удалятся, такой скрипт не будет исполняться;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Сохранить объекты</span> — если при обмене найдены конфликтующие компоненты, сохраняется версия целевой конфигурации, а операция обмена отменяется, т. е. завершается с ошибкой. Например, в контекст одного приложения добавлены различные свойства в тестовой и эксплуатационной конфигурации. При обмене компонентами возникнет конфликт, и импорт будет невозможен. </li></ul>
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Элементы Конфигурации</span> — нажмите <span style="font-weight: bold;">Выбрать</span>. В зависимости от указанной операции откроется структура конфигурации: при импорте показывается состав внешней системы, при экспорте — элементы текущей компании. Отметьте флажком компоненты, которые будут перенесены в другую конфигурацию, и нажмите <span style="font-weight: bold;">Применить</span>.<ul style="list-style-type:circle">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Орг. структура</span><span style="font-weight: bold; color: #ff0000;">*</span> — если в профиле выбирается обмен конфигурацией целиком, дополнительно укажите необходимость переноса <span style="color: #0000ff;"><a href="https://elma365.com/ru/help/platform/360003861992.html" target="_blank" class="weblink">организационной структуры</a></span>. <span style="font-weight: bold;"> </span></li></ul></li></ul>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 36px;">Обратите внимание,<span style="font-weight: bold;"> </span>перенести можно только те компоненты, для которых доступен экспорт. Например, если в эксплуатационной ELMA365 активировано платное бизнес-решение из каталога ELMA365 Store, его нельзя выбрать для экспорта в тестовую среду. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 36px;">В процессе обмена связанными друг с другом решениями в <span style="font-weight: bold;">Low-code CI / CD</span> не нужно создавать зависимости между ними, в отличии от процесса экспорта таких решений в отдельные файлы <span style="font-weight: bold;">.e365 </span>и последующего импорта файлов в другую компанию. Если решения работают вместе, они экспортируются в одном профиле обмена. После выполнения операции все связи в объектах сохранятся.</p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="3" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Сохраните настроенный профиль обмена.</li></ol>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Все созданные профили обмена отображаются на странице <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> на вкладке<span style="font-weight: bold;"> Профили</span>. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="low-code-CI-CD-3" width="835" height="338" style="margin:0;width:835px;height:338px;border:none" src="low-code-ci-cd-3.png"/></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Указанные в профиле направление и стратегия отмечаются в списке значками:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><img alt="ci-cd-import-icon" width="27" height="25" style="margin:0;width:27px;height:25px;border:none" src="ci-cd-import-icon.png"/><span class="f_ImageCaption">,</span> <img alt="ci-cd-export-icon" width="26" height="23" style="margin:0;width:26px;height:23px;border:none" src="ci-cd-export-icon.png"/><span class="f_ImageCaption"> </span>— импорт, экспорт;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><img alt="ci-cd-replace-objects-icon" width="27" height="26" style="margin:0;width:27px;height:26px;border:none" src="ci-cd-replace-objects-icon.png"/><span class="f_ImageCaption">,</span> <img alt="ci-cd-save-objects-icon" width="29" height="28" style="margin:0;width:29px;height:28px;border:none" src="ci-cd-save-objects-icon.png"/> — заменить объекты, сохранить объекты.</li></ul>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Чтобы убрать профиль из списка, поставьте флажок рядом с его названием и нажмите появившуюся в правом верхнем углу страницы кнопку <span style="font-weight: bold;">Удалить</span>.</p>
|
||
<h3 class="p_Heading3"><a id="compare-configurations" class="hmanchor"></a><span class="f_Heading3">Сравнить компоненты конфигураций из профиля обмена</span></h3>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Перед проверкой и запуском операции обмена вы можете сравнить состояние объектов, выбранных в профиле, для текущей и внешней конфигураций. Входящие изменения будут отображаться со статусами, при помощи которых вы сможете проанализировать результат выполнения обмена.</p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Для этого на странице <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> откройте<span style="font-weight: bold;"> </span>вкладку <span style="font-weight: bold;">Профили</span> и напротив созданного профиля обмена нажмите значок <img alt="ci-cd-compare-components-icon" width="23" height="26" style="margin:0;width:23px;height:26px;border:none" src="ci-cd-compare-components-icon.png"/>.</p>
|
||
<p class="p_Normal">В открывшемся окне сформируются структуры двух конфигураций со всеми объектами, которые добавлены в выбранный профиль:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Целевая конфигурация</span> — это структура конфигурации, которая будет изменена при выполнении профиля обмена. Например, при операции импорта целевой будет являться текущая компания, при экспорте — внешняя конфигурация; </li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-weight: bold;">Входящие изменения</span> — это компоненты из той конфигурации, которая будет перенесена в целевую компанию.</li></ul>
|
||
<p class="p_Normal">Чтобы посмотреть подробную информацию о различиях между конфигурациями, разверните структуру в столбце входящих изменений. В списке перечислены разделы, приложения, страницы, виджеты, скрипты и т. д.</p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="low-code-CI-CD-4" width="982" height="624" style="margin:0;width:982px;height:624px;border:none" src="low-code-ci-cd-4.png"/></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Компоненты отмечаются цветовыми обозначениями, которые соответствуют статусам:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><img alt="low-code-CI-CD-status-new" width="59" height="14" style="margin:0;width:59px;height:14px;border:none" src="low-code-ci-cd-status-new.png"/> — созданные компоненты, которые при выполнении обмена добавятся в целевую конфигурацию. Например, в эксплуатационную ELMA365 загрузится новое решение из тестового окружения;</li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><img alt="low-code-CI-CD-status-changed" width="85" height="14" style="margin:0;width:85px;height:14px;border:none" src="low-code-ci-cd-status-changed.png"/> — объекты присутствуют в обеих компаниях. Они были отредактированы в компании, с которой совершается обмен, и обновятся в целевой конфигурации. Например, в тестовой среде внесены изменения в настройки форм приложений, отредактированные объекты необходимо перенести в эксплуатационную компанию; </li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><img alt="low-code-CI-CD-status-missing" width="99" height="16" style="margin:0;width:99px;height:16px;border:none" src="low-code-ci-cd-status-missing.png"/> — компоненты присутствуют в целевой конфигурации, но не найдены в структуре входящих изменений. После выполнения обмена объекты целевой конфигурации, отмеченные этим статусом, не изменятся; </li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><img alt="low-code-CI-CD-few-statuses" width="150" height="16" style="margin:0;width:150px;height:16px;border:none" src="low-code-ci-cd-few-statuses.png"/> — в отмеченных компонентах найдено несколько различий. Например, в тестовом окружении в решении удалили раздел и добавили новый, а в эксплуатационной компании присутствует предыдущая версия решения. </li></ul>
|
||
<p class="p_Normal">Чтобы просмотреть изменения в коде входящих скриптов, нажмите на значок рядом с его названием. В открывшемся окне сравнения вы увидите код из текущей и внешней конфигураций. Навигация по изменениям и количество добавленных или удаленных строк отображены на верхней панели. Для полноэкранного режима нажмите значок в правом верхнем углу.</p>
|
||
<p class="p_Normal"><img alt="low-code-CI-CD-5" width="855" height="342" style="margin:0;width:855px;height:342px;border:none" src="low-code-ci-cd-5.png"/></p>
|
||
<p class="p_Normal">При закрытии окна с кодом вы вернётесь к сравнению конфигураций по выбранному профилю. Здесь предусмотрен поиск по названию компонентов. Результат сравнения можно отфильтровать по определённому статусу, а также отобразить всю структуру или только компоненты, в которых найдены различия.</p>
|
||
<h3 class="p_Heading3"><a id="check-profile" class="hmanchor"></a><span class="f_Heading3">Проверить выполнение профиля обмена</span></h3>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">После создания профиля обмена вы можете проверить выполнение указанной в нём операции. Для этого на странице <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> откройте вкладку <span style="font-weight: bold;">Профили</span>. Напротив созданного профиля обмена нажмите значок <img alt="ci-cd-check-profile-icon" width="23" height="26" style="margin:0;width:23px;height:26px;border:none" src="ci-cd-check-profile-icon.png"/> и подтвердите действие. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Запустится проверка на совместимость компонентов текущей и внешней компаний. Процесс аналогичен проверкам, выполняемым при стандартных операциях экспорта и импорта любого компонента системы. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">В результате проверки выявляются ошибки, препятствующие выполнению операции. Например, в экспортируемых или импортируемых компонентах могут присутствовать ссылки или зависимости от объектов, которые не включены в профиль обмена. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Подробнее о процессе проверки на примере операции загрузки и выгрузки решения читайте в статьях <a href="upload-solution-file.html#check-solution" class="topiclink">«Импорт решения из файла .e365»</a> и <a href="export-solution-file.html#check-up" class="topiclink">«Экспорт решения из файла .e365»</a>. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Текущее состояние и результат проверки отображается в списке профилей обмена в столбце <span style="font-weight: bold;">Статус</span>. Нажав на статус по окончании проверки, вы сможете просмотреть отчёт с её результатом. Если при проверки выявлены ошибки, выполнить профиль обмена будет невозможно. </p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="low-code-CI-CD-6" width="958" height="293" style="margin:0;width:958px;height:293px;border:none" src="low-code-ci-cd-6.png"/></p>
|
||
<h3 class="p_Heading3"><a id="run-profile" class="hmanchor"></a><span class="f_Heading3">Запустить обмен компонентами</span></h3>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">После сравнения конфигураций по профилю вы можете запустить операцию обмена. Для этого на вкладке <span style="font-weight: bold;">Профили</span> напротив нужной записи нажмите <span style="font-weight: bold;">Выполнить </span>и подтвердите действие. По окончании переноса в списке профилей отобразится статус операции.</p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="low-code-ci-cd-7" width="922" height="337" style="margin:0;width:922px;height:337px;border:none" src="low-code-ci-cd-7.png"/></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Чтобы посмотреть историю выполнения операции обмена, нажмите на статус профиля в таблице. В открывшемся окне отображаются данные по последнему произведённому обмену. Если обмен завершился с ошибкой, вы можете развернуть список компонентов и посмотреть подробную информацию, как при проверке профиля обмена.</p>
|
||
<h3 class="p_Heading3"><a id="use-channel" class="hmanchor"></a><span class="f_Heading3">Настроить канал уведомлений</span></h3>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Ошибки, возникшие при выполнении экспорта или импорта компонентов, можно отображать в ленте сообщений в отдельном <span style="color: #0000ff;"><a href="360014191132.html" class="topiclink">канале</a></span>. Чтобы настроить уведомления:</p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Перейдите в раздел <span style="font-weight: bold;">Сообщения</span>, <span style="color: #0000ff;"><a href="360014191132.html" class="topiclink">создайте канал</a></span> и настройте права доступа для его участников. </li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Откройте раздел <span style="font-weight: bold;">Администрирование > Инструменты разработчика ></span> <span style="font-weight: bold;">Непрерывная выкладка (Low-code CI / CD)</span> и перейдите на вкладку<span style="font-weight: bold;"> Уведомления</span>.</li><li value="3" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">В поле <span style="font-weight: bold;">Канал для уведомлений</span> выберите созданный канал.</li></ol>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 36px;"><img alt="low-code-ci-cd-8" width="710" height="286" style="margin:0;width:710px;height:286px;border:none" src="low-code-ci-cd-8.png"/></p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="4" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;">Для применения настроек нажмите на появившуюся на странице кнопку <span style="font-weight: bold;">Сохранить</span>. </li></ol>
|
||
|
||
<div class="bottom-nav">
|
||
|
||
<a id="prev-link" class="topic__navi_prev" href="performance-report.html">
|
||
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
|
||
class="bottom-nav__link">performance-report.html</span>
|
||
</a>
|
||
|
||
|
||
<a id="next-link" class="topic__navi_next" href="server-script-tracing.html">
|
||
<span class="bottom-nav__link">server-script-tracing.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">© 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">© 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>
|
||
</body>
|
||
|
||
</html>
|