All checks were successful
Deploy Static Site / deploy (push) Successful in 6m55s
284 lines
33 KiB
HTML
284 lines
33 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
|
||
<head>
|
||
<title>Включение автомасштабирования сервисов в ELMA365 Enterprise</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="Распределённая сервисная архитектура позволяет масштабировать решение более гибко и запускать сервисы приложения в несколько экземпляров. Обмен информацией между сервисами..." />
|
||
<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="elma365-on-premises.html">ELMA365 On-Premises</a> > <a href="elma365-enterprise.html">ELMA365 On-Premises Enterprise</a> > Администрирование ELMA365 Enterprise / Включение автомасштабирования сервисов в ELMA365 Enterprise</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Включение автомасштабирования сервисов в ELMA365 Enterprise</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 class="p_Normal">Распределённая сервисная архитектура позволяет масштабировать решение более гибко и запускать сервисы приложения в несколько экземпляров. Обмен информацией между сервисами происходит по протоколу gRPC. Балансировку и шифрование gRPC трафика при масштабировании сервисов ELMA365 выполняет компонент дополнений Linkerd. HorizontalPodAutoscaler используется для автомасштабирования сервисов приложения ELMA365. Вы также можете включить поддержку дополнительного средства автомасштабирования KEDA, управляемого на основе событий.</p>
|
||
<p class="p_Normal">Процесс включения автомасштабирования для приложения ELMA365 состоит из пяти этапов:</p>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal"><a href="autoscaling-service-enterprise.html#preparation-service-mesh" class="topiclink">Подготовка Service Mesh</a>.</li><li value="2" class="p_Normal"><a href="autoscaling-service-enterprise.html#alteration-config-file" class="topiclink">Внесение изменений в конфигурационный файл</a>.</li><li value="3" class="p_Normal"><a href="autoscaling-service-enterprise.html#apply-autoscale-options" class="topiclink">Применение параметров автомасштабирования для ELMA365 Enterprise</a>.</li><li value="4" class="p_Normal"><a href="autoscaling-service-enterprise.html#enable-load-sharing" class="topiclink">Включение перераспределения нагрузки в Kubernetes-кластере (опционально)</a>.</li><li value="5" class="p_Normal"><a href="autoscaling-service-enterprise.html#enabling-caching" class="topiclink">Включение кэширования DNS-запросов в Kubernetes-кластере (опционально)</a>.</li></ol>
|
||
<h2 class="p_Heading2"><a id="preparation-service-mesh" class="hmanchor"></a><span class="f_Heading2">Шаг 1. Подготовка Service Mesh</span></h2>
|
||
<p class="p_Normal">В качестве Service Mesh для ELMA365 используется Linkerd. Этот компонент нужен для обеспечения сетевой связанности приложения ELMA365. Без установленного Service Mesh Linkerd балансировка трафика микросервисов недоступна. </p>
|
||
<p class="p_Normal">Подробнее о настройке и установке Service Mesh Linkerd читайте в статье <a href="install-linkerd.html" class="topiclink">«Установка Linkerd»</a>.</p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" class="p_Normal">В рамках статьи приложение ELMA365 установлено в <code><b>namespace: elma365</b></code>. Добавьте аннотацию на <code><b>namespace</b></code> с приложением ELMA365 для автоматической инъекции контейнеров Linkerd-proxy в сервисы ELMA365 командой:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl annotate namespace elma365 linkerd.io/inject=enabled</span></p>
|
||
<ol style="list-style-type:upper-roman" start="2">
|
||
<li value="2" class="p_Normal"><span style="font-size: 15px; font-family: 'Segoe UI',Tahoma,Verdana,Arial,sans-serif; color: #111111; background-color: #ffffff;">Перезапустите все сервисы приложения ELMA365 командой:</span></li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl rollout restart deploy [-n namespace] && kubectl rollout restart ds [-n namespace]</span></p>
|
||
<h2 class="p_Heading2"><a id="alteration-config-file" class="hmanchor"></a><span class="f_Heading2">Шаг 2. Внесение изменений в конфигурационный файл values-elma365.yaml</span></h2>
|
||
<p class="p_Normal">Изменения вносятся в конфигурационный файл <code><b>values-elma365.yaml</b></code>, заполненный при установке ELMA365.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Начало внимание</span></p>
|
||
<p class="p_Normal">Перед редактированием файла <code><b>values-elma365.yaml</b></code> создайте его резервную копию, поскольку некорректная настройка параметров может привести к сбоям в работе приложения ELMA365.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Конец внимание</span></p>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" class="p_Normal"><a href="change-settings-enterprise.html#server-scaling" class="topiclink">Заполните конфигурационный файл</a> <code><b>values-elma365.yaml</b></code> для включения автомасштабирования.</li></ol>
|
||
<p class="p_Normal">Чтобы включить поддержку автомасштабирования, укажите <code><b>true</b></code> в параметре <code><b>global.autoscaling.enabled</b></code>. Задайте в этом параметре нужный инструмент автомасштабирования:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">hpa</span> — Horizontal Pod Autoscaler. Используется по умолчанию. При увеличении нагрузки развёртывается больше экземпляров модулей приложения. Чтобы включить этот инструмент, не требуется настройка дополнительных компонентов;</li></ul>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">keda</span> — Kubernetes Event-driven Autoscaling. Дополнительное средство автомасштабирования, управляемое событиями. С помощью KEDA вы можете управлять масштабированием в зависимости от нагрузки и от количества событий, которые необходимо обработать. Чтобы включить этот инструмент, предварительно установите и настройте модуль дополнений <a href="install-keda.html" class="topiclink">KEDA</a>.</li></ul>
|
||
<ol style="list-style-type:upper-roman" start="2">
|
||
<li value="2" class="p_Normal">Задайте минимальное и максимальное количество реплик сервисов приложения ELMA365. Глобально для всех сервисов значения устанавливаются в параметрах <code><b>global.autoscaling.minReplicas</b></code> и <code><b>global.autoscaling.maxReplicas</b></code>.</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">global:</span><br />
|
||
<span class="f_CodeExample"> ...</span><br />
|
||
<span class="f_CodeExample"> # автомасштабирование сервисов</span><br />
|
||
<span class="f_CodeExample"> autoscaling:</span><br />
|
||
<span class="f_CodeExample"> enabled: </span><span class="f_CodeExample" style="font-weight: bold;">true</span><br />
|
||
<span class="f_CodeExample"> # выбор метода автомасштабирования</span><br />
|
||
<span class="f_CodeExample"> type: "hpa"</span><br />
|
||
<span class="f_CodeExample"> # минимальное и максимальное количество реплик</span><br />
|
||
<span class="f_CodeExample"> minReplicas: 1</span><br />
|
||
<span class="f_CodeExample"> maxReplicas: 9</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">...</span></p>
|
||
<p class="p_Normal">Вы также можете задать индивидуальные параметры репликации для каждого сервиса. </p>
|
||
<h2 class="p_Heading2"><a id="apply-autoscale-options" class="hmanchor"></a><span class="f_Heading2">Шаг 3. Применение параметров автомасштабирования для ELMA365 Enterprise</span></h2>
|
||
<p class="p_Normal">Вы можете обновить параметры для ELMA365 Enterprise двумя способами: через интернет или <a href="autoscaling-service-enterprise.html#offline-update" class="topiclink">без доступа к сети</a>.</p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Обновление параметров через интернет</span></h3>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" class="p_Normal">Определите версию чарта, с помощью которого было установлено или обновлено приложение ELMA365:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm show chart elma365/elma365</span></p>
|
||
<p class="p_Normal">Пример выполнения команды:</p>
|
||
<p class="p_Normal"><img alt="autoscaling-service-enterprise-1" width="417" height="141" style="margin:0;width:417px;height:141px;border:none" src="autoscaling-service-enterprise-1.png"/></p>
|
||
<p class="p_Normal">В результате выполнения команды информация о версии чарта будет указана в строке <code><b>version</b></code>. Сохраните это значение для выполнения следующего шага.</p>
|
||
<ol style="list-style-type:upper-roman" start="2">
|
||
<li value="2" class="p_Normal">Обновите параметры приложения ELMA365 с применением конфигурационного файла <code><b>values-elma365.yaml</b></code>. Для этого используйте следующую команду, указав в ней для флага <code><b>--version</b></code> установленную версию чарта вместо <code><b><elma365-chart-version></b></code>:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm upgrade --install elma365 elma365/elma365 -f values-elma365.yaml --version <elma365-chart-version> --timeout=30m --wait [-n namespace]</span></p>
|
||
<h3 class="p_Heading3"><a id="offline-update" class="hmanchor"></a><span class="f_Heading3">Обновление параметров без доступа в интернет</span></h3>
|
||
<p class="p_Normal">Перейдите в каталог с загруженным чартом ELMA365 и выполните команду:</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm upgrade --install elma365 ./elma365 -f values-elma365.yaml --timeout=30m --wait [-n namespace]</span></p>
|
||
<p class="p_Normal">Обновление параметров занимает 10–30 минут. Дождитесь его завершения.</p>
|
||
<h2 class="p_Heading2"><a id="enable-load-sharing" class="hmanchor"></a><span class="f_Heading2">Шаг 4. Включение перераспределения нагрузки в Kubernetes-кластере (опционально)</span></h2>
|
||
<p class="p_Normal">Descheduler используется для перебалансировки кластеров путём вытеснения подов, которые потенциально могут быть запущены на более подходящих узлах.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Начало внимание</span></p>
|
||
<p class="p_Normal">Если в Kubernetes-кластере три и более ноды, рекомендуется установить компонент дополнения Descheduler.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Конец внимание</span></p>
|
||
<p class="p_Normal">Пример работы Descheduler:</p>
|
||
<p class="p_Normal">В Kubernetes-кластере из-за проблем с электропитанием стала недоступна одна из нод. Все сервисы приложения ELMA365, которые размещались на недоступной ноде, запустятся на оставшихся в работе нодах. После устранения проблем с электропитанием, нода вернётся в кластер, но сервисы приложения ELMA365 продолжат работу на других нодах. Descheduler периодически проверяет размещение подов в кластере Kubernetes. Descheduler перераспределит поды между нодами Kubernetes-кластера, используя набор преднастроенных стратегий. Перераспределение подов приведёт к выравниванию нагрузки на нодах кластера.</p>
|
||
<p class="p_Normal">Подробнее о настройке и установке Descheduler читайте в статье <a href="install-descheduler.html" class="topiclink">«Установка Descheduler»</a>.</p>
|
||
<h2 class="p_Heading2"><a id="enabling-caching" class="hmanchor"></a><span class="f_Heading2">Шаг 5. Включение кеширования DNS-запросов в Kubernetes-кластере (опционально)</span></h2>
|
||
<p class="p_Normal">NodeLocal DNS Cache позволяет снизить нагрузку по DNS-запросам в кластере Kubernetes. NodeLocal DNS позволяет повысить стабильность преобразования DNS имён, что в свою очередь позволит избежать правил DNAT, connection tracking и ограничений по количеству соединений.</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Начало внимание</span></p>
|
||
<p class="p_Normal">Если в Kubernetes-кластере более одной ноды, рекомендуется установить компонент дополнения NodeLocal DNS Cache. </p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Конец внимание</span></p>
|
||
<p class="p_Normal">Подробнее о настройке и установке NodeLocal DNS Cache читайте в статье <a href="install-nodelocal-dns-cache.html" class="topiclink">«Установка NodeLocal DNS Cache»</a>.</p>
|
||
|
||
<div class="bottom-nav">
|
||
|
||
<a id="prev-link" class="topic__navi_prev" href="enable-tls-enterprise.html">
|
||
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
|
||
class="bottom-nav__link">enable-tls-enterprise.html</span>
|
||
</a>
|
||
|
||
|
||
<a id="next-link" class="topic__navi_next" href="enable-monitoring-enterprise.html">
|
||
<span class="bottom-nav__link">enable-monitoring-enterprise.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>
|