update help elma

This commit is contained in:
2025-05-27 21:32:35 +04:00
parent a6b05d6789
commit 898b22bf32
4500 changed files with 89372 additions and 120699 deletions

View File

@ -1,20 +1,19 @@
<!DOCTYPE html>
<html lang="ru">
<html lang="en">
<head>
<title>Виджет «Код»</title>
<title>Code</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="Виджет Код позволяет работать с HTML кодом. Например, можно выделить цветом элементы формы или отобразить на странице данные из ELMA365 и других систем. Кроме того, при помощи..." />
<meta name="description" content="The&nbsp;Code&nbsp;widget allows you to work with HTML code. For example, you can highlight form elements or display data from BRIX and other systems on a page. In addition, with this..." />
<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" />
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
<meta property="og:url" content="https://brix365.com/en/help" />
<meta property="og:image" content="" />
<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" />
@ -24,7 +23,6 @@
<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>
@ -36,16 +34,16 @@
</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 class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-en.svg" alt="header logo">
</a>
<!-- <div class="hero__search-form" id="search-panel">
<form class="search-form" onsubmit="ym(83179930,'reachGoal','poisk')">
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
<label class="search-form__label">
<span id="reset-search" class="search__icon"></span>
<input class="search-form__input" type="text">
@ -65,7 +63,7 @@
</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>
<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://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
</div>
@ -80,8 +78,8 @@
<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 class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-light-en.svg">
</a>
<span class="sidebar__close elma-365-close" id="close"></span>
</div>
@ -94,15 +92,15 @@
<div class="article-inner">
<div class="content">
<header class="article__header">
<div class="article__bread" style="display:flex; gap:10px;">
<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>Low-code дизайнер &gt; <a href="interface_settings.html">Создание интерфейсов</a> &gt; Типы виджетов &gt; HTML-виджеты / Виджет «Код»</p>
<p>Low-code designer &gt; <a href="interface_settings.html">Set up interfaces</a> &gt; Widget types &gt; HTML widgets / Code</p>
</div>
</div>
<div class="topic__title"><h1 class="p_Heading1" style="text-align: center; margin: 19px 0 19px 0;"><span class="f_Heading1" style="font-size: 32px;">Виджет «Код»</span></h1>
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Code</span></h1>
</div>
</header>
@ -111,80 +109,83 @@
<a href="#h1-article" class="scroll-top"></a>
</div>
<!-- Placeholder for topic body. -->
<p class="p_Normal" style="margin: 19px 0 0 0;">Виджет <span style="font-weight: bold;">Код </span>позволяет работать с <span style="font-weight: bold;">HTML</span> кодом. Например, можно выделить цветом элементы формы или отобразить на странице данные из ELMA365 и других систем. Кроме того, при помощи этого виджета вы можете добавить <a href="client_server_scripts.html" class="topiclink">скрипты</a> на форму или страницу, а также создать <a href="360029574371.html" class="topiclink">динамические формы</a> в процессе или приложении.</p>
<p style="line-height: 1.20; background: #ffffff; margin: 19px 0 0 0;"><span style="color: #394149; background-color: #ffffff;">The </span><span style="font-weight: bold; color: #394149; background-color: #ffffff;">Code</span><span style="color: #394149; background-color: #ffffff;"> widget allows you to work with&nbsp;</span><span style="font-weight: bold; color: #394149; background-color: #ffffff;">HTML</span><span style="color: #394149; background-color: #ffffff;">&nbsp;code. For example, you can highlight form elements or display data from BRIX and other systems on a page. In addition, with this widget you can add </span><span style="background-color: #ffffff;"><a href="client_server_scripts.html" class="topiclink">scripts</a></span><span style="color: #394149; background-color: #ffffff;"> to a form or a page, as well as create </span><span style="background-color: #ffffff;"><a href="360029574371.html" class="topiclink">dynamic</a></span><span style="color: #394149; background-color: #ffffff;"> task and app forms.</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p class="p_Normal">Использование констант <code><b>Global</b></code> или <code><b>Namespace</b></code> в скриптах ограничивает экспорт компонентов системы. Подробнее об этом читайте в статье <a href="global-constants.html#export-restrictions" class="topiclink">«Глобальные константы в скриптах»</a>.</p>
<p style="line-height: 1.20; margin: 19px 0 0 0;"><span style="color: #394149;">Using </span><code><b>Global</b></code><span style="color: #394149;"> or </span><code><b>Namespace</b></code><span style="color: #394149;"> constants in scripts restricts the export of system components. Read more about it in the <a href="global-constants.html#export" class="topiclink">Global constants in scripts</a> article</span>.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Добавление виджета</span></h2>
<p style="background: #ffffff;">Чтобы разместить виджет, перетащите его с правой панели <span style="color: #394149;"><a href="interface_designer.html" class="topiclink">дизайнера интерфейсов</a></span> на поле для моделирования или нажмите кнопку <span style="font-weight: bold;">+Виджет</span>. Подробнее читайте в статье <a href="360029250931.html" class="topiclink">«Шаблон формы»</a>. </p>
<p style="background: #ffffff;">В открывшемся окне настроек вы можете добавить на форму <span style="font-weight: bold;">HTML</span> код, формируемый динамически с помощью специальных вставок.</p>
<p class="p_Normal" style="margin: 14px 0 0 0;"><img alt="code-widget-1" width="718" height="426" style="margin:0;width:718px;height:426px;border:none" src="code-widget-1.png"/></p>
<p class="p_Normal" style="margin: 14px 0 0 0;">Отметьте опцию <span style="font-weight: bold;">Не показывать содержимое в режиме конструктора</span> и задайте название скрипта, чтобы на поле для моделирования не отображался составленный вами код.</p>
<h2 class="p_Heading2" style="margin: 19px 0 0 0;"><a id="code" class="hmanchor"></a><span class="f_Heading2" style="font-size: 24px;">Конструкции для вставок кода</span></h2>
<p class="p_Normal" style="margin: 19px 0 0 0;">В виджете <span style="font-weight: bold;">Код</span> используется синтаксис, позволяющий делать вставки трёх видов:</p>
<ol style="list-style-type:decimal">
<li value="1"><code><b>&lt;%Конструкции, объявления%&gt;</b></code><span style="font-weight: bold;"> </span>— примеры будут рассмотрены ниже.</li><li value="2"><code><b>&lt;%- Вывод значения с экранированием HTML-символов %&gt;</b></code><span style="font-weight: bold;"> </span>— например, если в значении встречается знак «&lt;», то в таком виде он и будет выведен.</li><li value="3"><code><b>&lt;%= Вывод значения без экранирования HTML-символов %&gt;</b></code><span style="font-weight: bold;"> </span>— например, если задано значение <code><b>&lt;b&gt;Внимание!&lt;/b&gt;</b></code>, то будет выведен текст «<span style="font-weight: bold;">Внимание!</span>» (с выделением жирным).</li></ol>
<p class="p_Normal" style="margin: 14px 0 0 0;">Далее рассмотрим применение вставок первого вида.</p>
<h3 class="p_Heading3"><span class="f_Heading3">Условия</span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">if&nbsp;</span><span class="f_CodeExample">(data.Value&nbsp;&gt;&nbsp;10)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample">//&nbsp;Здесь&nbsp;содержимое,&nbsp;которое&nbsp;нужно&nbsp;отобразить</span><br />
<h2 class="p_Heading2"><span class="f_Heading2">Add the widget</span></h2>
<p style="line-height: 1.20; background: #ffffff; margin: 7px 0 16px 0;"><span style="color: #394149;">To configure the widget, drag it from the right-side panel of the <a href="interface_designer.html" class="topiclink">interface designer</a> to the canvas or click </span><span style="font-weight: bold; color: #394149;">+Widget</span><span style="color: #394149;">. To learn more, see <a href="360029250931.html" class="topiclink">Form templates</a>.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 7px 0 16px 0;"><span style="color: #394149;">In the pop-up window, you can add HTML code that is dynamically generated using special syntax constructions.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 7px 0 16px 0;"><img alt="code_wdgt" width="869" height="425" style="margin:0;width:869px;height:425px;border:none" src="code_wdgt.png"/></p>
<p class="p_Normal"><span style="font-size: 15px; color: #394149;">Check the </span><span style="font-size: 15px; font-weight: bold; color: #394149;">Hide contents in the builder mode</span><span style="font-size: 15px; color: #394149;"> option and enter a name of the script so that the code you write is not shown on the modeling canvas.</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Syntax constructions</span></h2>
<p style="line-height: 1.20; background: #ffffff; margin: 19px 0 0 0;"><span style="color: #394149;">In this widget you can use syntax constructions of three types:</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 7px 0 16px 0;"><span style="font-weight: bold; color: #394149;">1. </span><code><b><% Constructions, declarations %></b></code><span style="color: #394149;">. See the examples below.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 7px 0 16px 0;"><span style="font-weight: bold; color: #394149;">2. </span><code><b><%- Escaping of HTML characters %></b></code><span style="color: #394149;">. For example, if the value is preceded by the </span><span style="font-weight: bold; color: #394149;">&lt;</span><span style="color: #394149;"> character, it will be represented as </span><span style="font-weight: bold; color: #394149;">&lt;</span><span style="color: #394149;">.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 7px 0 16px 0;"><span style="font-weight: bold; color: #394149;">3. </span><code><b><%= Unescaping of HTML characters %></b></code><span style="color: #394149;">. For example, if the value is </span><code><b>&lt;b&gt;Attention!&lt;/b&gt;</b></code><span style="color: #394149;">, &nbsp;the displayed text will be </span><span style="font-family: Inter;"></span><span style="font-weight: bold; color: #394149;">Attention</span><span style="font-family: Inter;">” </span><span style="color: #394149;">(in bold).</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 19px 0 0 0;"><span style="color: #394149;">Let</span><span style="font-family: Inter;"></span><span style="color: #394149;">s have a look at the syntax constructions of the first type:</span></p>
<h3 class="p_Heading3"><span class="f_Heading3">Conditions</span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;if&nbsp;(data.Value&nbsp;&gt;&nbsp;10)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample" style="font-style: italic;">Content&nbsp;that&nbsp;you&nbsp;want&nbsp;to&nbsp;display</span><span class="f_CodeExample">.</span><br />
<span class="f_CodeExample">&lt;%&nbsp;}&nbsp;%&gt;</span></p>
<h3 class="p_Heading3"><span class="f_Heading3">Условия if-else</span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">if&nbsp;</span><span class="f_CodeExample">(</span><span class="f_CodeExample" style="font-weight: bold;">true</span><span class="f_CodeExample">)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample">//&nbsp;Здесь&nbsp;содержимое,&nbsp;которое&nbsp;нужно&nbsp;отобразить</span><br />
<span class="f_CodeExample">&lt;%&nbsp;}&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">else&nbsp;</span><span class="f_CodeExample">{&nbsp;%&gt;</span><br />
<span class="f_CodeExample">//&nbsp;Здесь&nbsp;содержимое,&nbsp;которое&nbsp;нужно&nbsp;отобразить</span><br />
<h3 class="p_Heading3"><span class="f_Heading3">if-else </span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;if&nbsp;(true)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample" style="font-style: italic;">Content&nbsp;that&nbsp;you&nbsp;want&nbsp;to&nbsp;display.</span><br />
<span class="f_CodeExample">&lt;%&nbsp;}&nbsp;else&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample" style="font-style: italic;">Content&nbsp;that&nbsp;you&nbsp;want&nbsp;to&nbsp;display.</span><br />
<span class="f_CodeExample">&lt;%&nbsp;}&nbsp;%&gt;</span></p>
<h3 class="p_Heading3"><span class="f_Heading3">Циклы</span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">for&nbsp;</span><span class="f_CodeExample">(</span><span class="f_CodeExample" style="font-weight: bold;">const&nbsp;</span><span class="f_CodeExample">item&nbsp;of&nbsp;data.items)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample">//&nbsp;Здесь&nbsp;содержимое,&nbsp;которое&nbsp;нужно&nbsp;отобразить</span><br />
<h3 class="p_Heading3"><span class="f_Heading3">Loops</span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;for&nbsp;(const&nbsp;item&nbsp;of&nbsp;data.items)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample" style="font-style: italic;">Content&nbsp;that&nbsp;you&nbsp;want&nbsp;to&nbsp;display.</span><br />
<span class="f_CodeExample">&lt;%&nbsp;}&nbsp;%&gt;</span></p>
<h3 class="p_Heading3"><span class="f_Heading3">Объявления (например, функция)</span></h3>
<h3 class="p_Heading3"><span class="f_Heading3">Declarations (for example, function)</span></h3>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%&nbsp;function&nbsp;renderValueInTag(value,&nbsp;tag)&nbsp;{&nbsp;%&gt;</span><br />
<span class="f_CodeExample">&lt;&lt;%=&nbsp;tag</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">%&gt;&gt;</span><br />
<span class="f_CodeExample">&lt;%-&nbsp;value</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">%&gt;</span><br />
<span class="f_CodeExample">&lt;&lt;%=&nbsp;tag&nbsp;%&gt;&gt;</span><br />
<span class="f_CodeExample">&lt;%-&nbsp;value&nbsp;%&gt;</span><br />
<span class="f_CodeExample">&lt;/&lt;%=&nbsp;tag&nbsp;%&gt;&gt;</span><br />
<span class="f_CodeExample">&lt;%&nbsp;}&nbsp;%&gt;</span></p>
<h3 class="p_Heading3"><span class="f_Heading3">Вызов функции из клиентского скрипта</span></h3>
<p class="p_Normal">С помощью конструкции <code><b><%= Scripts %>.ИМЯ_ФУНКЦИИ()</b></code> из виджета <span style="font-weight: bold;">Код</span> можно вызывать клиентский скрипт, созданный на языке <span style="font-weight: bold;">TypeScript</span> и добавленный в дизайнере интерфейсов на вкладке <a href="designer-tabs.html#script-tab" class="topiclink">Скрипты</a>. </p>
<p class="p_Normal">Например, при нажатии кнопки <span style="font-weight: bold;">Открыть</span> будет исполнен скрипт с наименованием <span style="font-weight: bold;">OpenPopup</span>. </p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;button&nbsp;onclick=&quot;&lt;%=&nbsp;Scripts%&gt;.OpenPopup()&quot;&gt;Открыть&lt;/button&gt;</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Отображение других виджетов через виджет «Код»</span></h2>
<p class="p_Normal">Вы можете добавлять в код вставки для отображения пользовательских и некоторых системных виджетов, используя контекстное меню. Тогда вам не придётся писать код вставки вручную. Применяйте этот способ, например, когда нужно повторно использовать виджеты.</p>
<p class="p_Normal">Так, настраивая страницу просмотра товара, вы размещаете на ней пользовательский виджет с фотографией товара, ценой и ссылками на его характеристики. При этом вы хотите вынести на страницу такие же виджеты, но с информацией о других товарах, близких по ценовой категории. То есть вам нужно переиспользовать пользовательский виджет, который уже используется на странице другого товара.</p>
<p class="p_Normal">В этом случае, настраивая страницу с помощью виджета <span style="font-weight: bold;">Код</span>, в контекстном меню скрипта выберите опцию <span style="font-weight: bold;">Добавить виджет</span>. Затем в открывшемся окне выберите виджет, который хотите использовать. Вставка с текстом кода автоматически добавится в скрипт.</p>
<p class="p_Normal">Пример вставки для отображения пользовательского виджета:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%=&nbsp;UI.widget.render('@custom_widget',&nbsp;{title:&nbsp;Context.data.title,&nbsp;notes:&nbsp;&quot;Примечание&quot;})&nbsp;%&gt;</span></p>
<p class="p_Normal">В этой опции доступны виджеты <span style="font-weight: bold;">Вкладки</span>, <span style="font-weight: bold;">Выпадающее меню</span>, <span style="font-weight: bold;">Выпадающее окно</span> и <span style="font-weight: bold;">Панель с заголовком</span>, а также пользовательские виджеты, созданные на том же уровне, что форма или страница. Например, работая с виджетом <span style="font-weight: bold;">Код</span> на странице раздела, в опции <span style="font-weight: bold;">Добавить виджет</span> вы можете выбрать пользовательские виджеты, созданные в этом разделе, а также на формах и страницах приложений этого раздела.</p>
<p class="p_Normal">Вы можете включить доступ к пользовательским виджетам других разделов. Для этого на <a href="interface_designer.html#toolbar" class="topiclink">панели инструментов</a> дизайнера нажмите кнопку <span style="font-weight: bold;">Настройки</span> и включите опцию <span style="font-weight: bold;">Разрешить использование всех элементов</span>. Обратите внимание, это ограничивает возможность <a href="360009669292.html" class="topiclink">экспорта приложения</a> или <a href="360007722171.html" class="topiclink">раздела</a>.</p>
<h2 class="p_Heading2"><span class="f_Heading2">Пример использования виджета</span></h2>
<p class="p_Normal" style="margin: 14px 0 0 0;">При помощи скрипта в виджете <span style="font-weight: bold;">Код</span> можно получить информацию из приложения <span style="font-weight: bold;">Сотрудники</span>, чтобы отображать на странице имена пользователей с днями рождения в текущем месяце.</p>
<p class="p_Normal" style="margin: 14px 0 0 0;"><img alt="виджет код пример" width="677" height="267" style="margin:0;width:677px;height:267px;border:none" src="hmfile_hash_b34e1534.png"/></p>
<p class="p_Normal" style="margin: 14px 0 0 0;"><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></p>
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; padding: 0 0 0 0; margin: 14px 0 0 0;"><table style="border:none; border-spacing:0;">
<h3 class="p_Heading3"><span class="f_Heading3">Call a function from the client script</span></h3>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">You can use the </span><code><b><%= Scripts %>.FUNCTION_NAME()</b></code><span style="color: #394149;"> construction in the </span><span style="font-weight: bold; color: #394149;">Code</span><span style="color: #394149;"> widget to call a client script written in TypeScript and added on the <a href="designer-tabs.html#scripts" class="topiclink">Scripts</a> tab of the interface designer.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">For example, clicking the Open button will start the </span><code><b>OpenPopup</b></code><span style="color: #394149;"> script.</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;button&nbsp;onclick=&quot;&lt;%=&nbsp;Scripts%&gt;.OpenPopup()&quot;&gt;Open&lt;/button&gt;</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="font-size: 13px; color: #000000; background-color: #ffffff;">&nbsp;</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Displaying other widgets using the Code widget</span></h2>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">In your code, you can add syntax constructions to display custom or some of the system widgets via the context menu. This way you will not need to write the code of the construction manually. This method is extremely useful for reusing widgets.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">Let's say you need to set up a page for viewing a product. On the page, you place an image of the product, add a price and links to its technical characteristics. You also want to use other widgets with information about similar products on the same page. This means that you can reuse the widget that is already used for the first product.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">Here is what you can do: when setting up the page using the </span><span style="font-weight: bold; color: #394149;">Code</span><span style="color: #394149;"> widget, in the script context menu select </span><span style="font-weight: bold; color: #394149;">Add widget</span><span style="color: #394149;">. Then, in the pop-up, select the widget that you want to reuse. The syntax construction will be automatically added to your script.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">Here is an example of such a construction for displaying a custom widget:</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="font-size: 13px; color: #000000; background-color: #ffffff;">&nbsp;</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%=</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">UI.widget.render('@custom_widget',</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">{title:</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">Context.data.title,</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">notes:</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">&quot;Description&quot;})</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">%&gt;</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">The following widgets can be reused in this manner: </span><span style="font-weight: bold; color: #394149;">Tabs</span><span style="color: #394149;">, </span><span style="font-weight: bold; color: #394149;">Drop-down menu</span><span style="color: #394149;">, </span><span style="font-weight: bold; color: #394149;">Pop-up</span><span style="color: #394149;">, </span><span style="font-weight: bold; color: #394149;">Panel with header</span><span style="color: #394149;">, and custom widgets created within the same app or workspace as the form or page that you are setting up. That is, when working with the </span><span style="font-weight: bold; color: #394149;">Code</span><span style="color: #394149;"> widget on a workspace</span><span style="font-family: Inter;"></span><span style="color: #394149;">s page, you can use the </span><span style="font-weight: bold; color: #394149;">Add widget</span><span style="color: #394149;"> option to add custom widgets created in the same workspace or on forms and pages of its apps.</span></p>
<p style="line-height: 1.20; background: #ffffff; margin: 14px 0 0 0;"><span style="color: #394149;">You can enable access to custom widgets that belong to other workspaces. To do that, click </span><span style="font-weight: bold; color: #394149;">Settings</span><span style="color: #394149;"> in the top pane of the interface designer and select </span><span style="font-weight: bold; color: #394149;">Allow using all items</span><span style="color: #394149;">. Please note that in this case you will not be able to export the app or workspace later. </span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Use case</span></h2>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: 'Times New Roman',Times,Georgia,serif; color: #394149; background-color: #ffffff;">By using a script in the </span><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold; color: #394149; background-color: #ffffff;">Code</span><span style="font-family: 'Times New Roman',Times,Georgia,serif; color: #394149; background-color: #ffffff;"> widget you can get data from the&nbsp;</span><span style="font-family: 'Times New Roman',Times,Georgia,serif; font-weight: bold; color: #394149; background-color: #ffffff;">Employees</span><span style="font-family: 'Times New Roman',Times,Georgia,serif; color: #394149; background-color: #ffffff;">&nbsp;app in order to display the information on the upcoming birthdays on the page.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="CW2" width="749" height="374" style="margin:0;width:749px;height:374px;border:none" src="cw2.png"/></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">Script</a></p>
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.28; padding: 0 0 0 0; margin: 0 0 11px 0;"><table style="border:none; border-spacing:0;">
<tr>
<td style="vertical-align:top; padding:0; border:none"><p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">async function onInit():Promise &lt;</span><span class="f_CodeExample" style="font-weight: bold;">void</span><span class="f_CodeExample">&gt; {</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample">// Получаем список пользователей</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample" style="font-weight: bold;">const</span><span class="f_CodeExample"> users = await System.users.search().size(10000).all()</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample" style="font-style: italic;">// Выбираем пользователей с ДР в текущем месяце</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample" style="font-weight: bold;">const </span><span class="f_CodeExample">thisMonthUsers = users.filter (f=&gt;f.data.birthDate &amp;&amp; f.data.birthDate.month == </span><span class="f_CodeExample" style="font-weight: bold;">new</span><span class="f_CodeExample"> TDate().month)</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample">// Записываем пользователя и дату рождения в таблицу</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> (let user of thisMonthUsers) {</span><br />
<span class="f_CodeExample">  &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample" style="font-weight: bold;">const</span><span class="f_CodeExample"> row = Context.data.currentMonth!.insert()</span><br />
<span class="f_CodeExample">  &nbsp; &nbsp; &nbsp; row.user = user!</span><br />
<span class="f_CodeExample">  &nbsp; &nbsp; &nbsp; row.birthDate = user.data.birthDate!.format(&quot;DD/MM/YYYY&quot;) &nbsp; </span><br />
<span class="f_CodeExample">  &nbsp; }</span><br />
<span class="f_CodeExample">  &nbsp; </span><span class="f_CodeExample">// Сохраняем таблицу в контекстную переменную</span><br />
<span class="f_CodeExample">  &nbsp; Context.data.currentMonth = Context.data.currentMonth</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">}</span></p>
<td style="vertical-align:top; padding:0; border:none"><p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">async </span><span class="f_CodeExample">function </span><span class="f_CodeExample">onInit( :Promise &lt;</span><span class="f_CodeExample">void</span><span class="f_CodeExample">&gt; {</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Get list of users</span><br />
<span class="f_CodeExample"> &nbsp; </span><span class="f_CodeExample">const </span><span class="f_CodeExample">users = await System.users.search().size(10000).all()</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// </span><span class="f_CodeExample" style="font-style: italic;">Select users with birthdays in the current month</span><br />
<span class="f_CodeExample"> &nbsp; </span><span class="f_CodeExample">const </span><span class="f_CodeExample">thisMonthUsers = users.filter (f=&gt;f.data.birthDate &amp;&amp; f.data.birthDate.month == </span><span class="f_CodeExample">new</span><span class="f_CodeExample"> TDate().month)</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Add user and date of birth to the table</span><br />
<span class="f_CodeExample"> &nbsp; </span><span class="f_CodeExample">for </span><span class="f_CodeExample">(let user of thisMonthUsers) {</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">const </span><span class="f_CodeExample">row = Context.data.currentMonth!.insert()</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;row.user = user!</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;row.birthDate = user.data.birthDate!.format(&quot;DD/MM/YYYY&quot;) &nbsp; </span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;}</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Save table to context variable</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;Context.data.currentMonth = Context.data.currentMonth</span><br />
<span class="f_CodeExample">}</span></p>
</td>
</tr>
</table>
</div>
<p class="p_Normal">Для вывода значения контекстной переменной в виджете <span style="font-weight: bold;">Код</span>, используйте вставку вида:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%= UI.widget.contextValue ('currentMonth', {readonly:</span><span class="f_CodeExample" style="font-weight: bold;">true</span><span class="f_CodeExample">}) %&gt;</span></p>
<p class="p_Normal">При этом <code><b>currentMonth</b></code> — это контекстная переменная типа <span style="font-weight: bold;">Таблица</span>, в которую с помощью функции <code><b>OnInit()</b></code> записаны пользователи с днями рождения в текущем месяце. Функция выполняется, когда пользователь открывает страницу.</p>
<p class="p_Normal">Подробнее о методах вывода в виджете <span style="font-weight: bold;">Код</span> можно прочитать в справке<span style="font-weight: bold;"> </span>ELMA365 TS SDK<span style="font-weight: bold;"> </span>в статьях <a href="https://tssdk.elma365.com/ru/latest/interfaces/_102_ui_widgets_.widget.html" target="_blank" class="weblink">«API для отображения стандартных виджетов»</a> и <a href="https://tssdk.elma365.com/ru/latest/modules/_102_ui_widgets_.html" target="_blank" class="weblink">«Виджет „Код“»</a>.</p>
<p class="p_Normal">To show the value of the context variable in the <span style="font-weight: bold;">Code</span> widget, use the following syntax:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">&lt;%=&nbsp;UI.widget.contextValue&nbsp;('currentMonth',&nbsp;{readonly:true})&nbsp;%&gt;</span></p>
<p class="p_Normal">Note that <code><b>currentMonth</b></code> is a context variable of the <span style="font-weight: bold;">Table</span> type. Users who have birthday in the current month are added to the table via the<span style="font-size: 15px; color: #394149;"> </span><code><b>onInit()</b></code><span style="font-size: 15px; color: #394149;"> function. This function is executed when a user opens the page.</span></p>
<p style="line-height: 1.20; margin: 16px 0 16px 0;"><span style="font-size: 15px; color: #394149;">To learn more about methods in the </span><span style="font-size: 15px; font-weight: bold; color: #394149;">Code</span><span style="font-size: 15px; color: #394149;"> widget, see</span><span style="font-size: 15px; color: #394149;"> </span><span style="font-size: 15px; color: #394149;"><a href="https://tssdk.brix365.com/en/interfaces/_102_ui_widgets_.widget.html" target="_blank" class="weblink">API for displaying standard widgets</a></span><span style="font-size: 15px; color: #394149;"> and </span><span style="font-size: 15px; color: #394149;"><a href="https://tssdk.brix365.com/en/modules/_102_ui_widgets_.html" target="_blank" class="weblink">API for client scripts</a> in</span><span style="font-size: 15px; color: #394149;"> </span><span style="font-size: 15px; color: #394149;">TS SDK. </span></p>
<div class="bottom-nav">
@ -201,7 +202,7 @@
</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>
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></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" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
</section>
</div>
@ -209,7 +210,7 @@
<input type="checkbox" />
<div class="article__arrow"></div>
<div class="table-of-contents elma365-right" id="toc2Content">
<h3 class="h3-toc">В этой статье</h3>
<h3 class="h3-toc">In this topic</h3>
<nav id="toc2"></nav>
</div>
</aside>
@ -220,63 +221,30 @@
<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>
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</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 class="footer-wrap">
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
<div class="footer-flex-b">
<span class="footer-copy">&copy; 2025 BRIX</span>
<ul class="footer-list">
<li class="footer-item">
<a href="#" class="arrow-top" style="display: block;"></a>
</li>
</ul>
</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="./jquery-ui.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>