Files
help365/business_solutions/antifraud-fill-in-variables.html
2025-05-26 16:15:30 +04:00

330 lines
63 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<title>Подстановка переменных в документ</title>
<meta name="generator" content="Help+Manual" />
<meta name="keywords" content="" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Графический элемент становится доступен в дизайнере бизнес-процессов после подключения Модуля антифрод. Он&nbsp;позволяет с&nbsp;помощью модели искусственного интеллекта внести новые..." />
<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="elma-ai.html">ELMA AI</a> &gt; <a href="antifraud-solution.html">Решение «Антифрод в договорном документообороте»</a> / Подстановка переменных в документ</p>
</div>
</div>
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Подстановка переменных в документ</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;"><img alt="antifraud-fill-in-variables-1" width="103" height="83" style="margin:0;width:103px;height:83px;border:none" src="antifraud-fill-in-variables-1.png"/><span style="font-size: 15px; font-family: Inter;">Графический элемент становится доступен в дизайнере бизнес-процессов после подключения </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-solution.html" class="topiclink">Модуля антифрод</a></span><span style="font-size: 15px; font-family: Inter;">. Он позволяет с помощью модели искусственного интеллекта внести новые значения переменных в </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360026936731.html" class="topiclink">сгенерированный по шаблону</a></span><span style="font-size: 15px; font-family: Inter;"> и отредактированный документ. Подстановка осуществляется на основе подготовленной </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-solution.html#templates-and-masks" class="topiclink">маски документа</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Действие доступно только для документов в формате </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">.docx</span><span style="font-size: 15px; font-family: Inter;">.</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Новые значения подставляются в файл, сформированный на основе данных из элемента приложения. Допустим, сотрудник вносит первоначальные сведения в приложение </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Договоры</span><span style="font-size: 15px; font-family: Inter;">. В ходе бизнес-процесса по шаблону формируется файл договора, затем сотрудник вручную добавляет в него перечень услуг и отправляет на согласование. Позже может выясниться, что данные договора нужно уточнить, например, со стороны контрагента изменился подписант. Чтобы не пришлось снова генерировать договор и повторно вносить дополнения вручную, в процессе можно предусмотреть изменение данных с помощью блока </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;">. В этом случае сотрудник может просто исправить информацию в карточке договора. С помощью ИИ новое значение переменной подставится в сформированный файл вместо предыдущего.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для корректной работы</span><span style="font-size: 15px; font-family: Inter; font-weight: bold;"> </span><span style="font-size: 15px; font-family: Inter;">перед настройкой блока нужно:</span></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-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#add-varialbes" class="topiclink">создать входные и выходные переменные</a></span><span style="font-size: 15px; font-family: Inter;">, которые указываются в настройках блока;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#place-activities" class="topiclink">использовать в процессе другие графические элементы</a></span><span style="font-size: 15px; font-family: Inter;">, чтобы подготовить данные для выполнения подстановки на сервере ИИ и учесть обработку ошибок.</span></li></ul>
<h2 class="p_Heading2"><a id="add-varialbes" class="hmanchor"></a><span class="f_Heading2">Добавить входные и выходные переменные</span></h2>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для настройки блока нужно заранее создать определённый набор свойств. Они указываются в настройках блока в полях, которые подразделяются на:</span></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-size: 15px; font-family: Inter; font-weight: bold;">входные атрибуты</span><span style="font-size: 15px; font-family: Inter;"> — в них передаются свойства, содержащие данные для выполнения подстановки;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">выходные атрибуты</span><span style="font-size: 15px; font-family: Inter;"> — сопоставляются со свойствами, в которых сохраняется результат работы блока.</span></li></ul>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для упрощения настройки рекомендуем использовать названия, совпадающие с атрибутами из настроек блока.</span></p>
<ol style="list-style-type:decimal">
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Добавление входных переменных.</span></li></ol>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Добавьте в </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="process_context.html" class="topiclink">контекст бизнес-процесса</a></span><span style="font-size: 15px; font-family: Inter;"> переменные:</span></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-size: 15px; font-family: Inter; font-weight: bold;">Маска </span><span style="font-size: 15px; font-family: Inter;">(тип </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360009707032.html#file_type" class="topiclink">Файлы</a></span><span style="font-size: 15px; font-family: Inter;">) — файл маски, соответствующей шаблону, по которому сгенерирован документ. Используется на сервере ИИ для уточнения позиций переменных в документе, а также поиска в тексте функций, циклов и т. п.;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Переменные</span><span style="font-size: 15px; font-family: Inter;"> (тип </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360009707032.html#string" class="topiclink">Строка</a></span><span style="font-size: 15px; font-family: Inter;">) — текущие данные из карточки документа, сериализованные в JSON. Свойство используется на сервере ИИ, чтобы подставить изменившиеся значения в файл. Создание строки в ходе процесса описано в разделе </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#json" class="topiclink">«Сформировать JSON-строку для подстановки новых значений»</a></span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Исходный документ </span><span style="font-size: 15px; font-family: Inter;">(тип </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Файлы</span><span style="font-size: 15px; font-family: Inter;">) — сгенерированный по шаблону документ, в который подставлены новые значения переменных. Файл используется на сервере ИИ для уточнения позиций переменных в документе, а также поиска в тексте функций, циклов и т. п. Подробнее о его формировании читайте в разделе </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#genarate-new-doc" class="topiclink">«Сформировать по шаблону файл с новыми значениями»</a></span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Отредактированный документ </span><span style="font-size: 15px; font-family: Inter;">(тип </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Файлы</span><span style="font-size: 15px; font-family: Inter;">) — сгенерированный по шаблону и отредактированный пользователем документ в формате </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">.docx</span><span style="font-size: 15px; font-family: Inter;">, в который подставляются новые значения переменных;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Переменные на предыдущем шаге</span><span style="font-size: 15px; font-family: Inter;"> (тип </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Строка</span><span style="font-size: 15px; font-family: Inter;">) — старые данные из карточки документа, сериализованные в JSON. Свойство используется на сервере ИИ для определения изменений в значениях переменных;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Исходный документ на предыдущем шаге </span><span style="font-size: 15px; font-family: Inter;">(тип </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Файлы</span><span style="font-size: 15px; font-family: Inter;">) — версия документа в формате </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">.docx</span><span style="font-size: 15px; font-family: Inter;"> до последнего редактирования. Например, если перед подстановкой переменных сотрудник вносил правки в текст, в этом свойстве хранится версия без данных правок. Версия используется на сервере ИИ для уточнения позиций переменных в документе, а также поиска в тексте функций, циклов и т. п.</span></li></ul>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Обратите внимание, входные переменные нужно заполнить данными до того, как ход процесса дойдёт до шага </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;">. Это делается с помощью других графических элементов. Например, файл маски можно записать из карточки документа с помощью блока </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360020300571.html" class="topiclink">Присваивание</a></span><span style="font-size: 15px; font-family: Inter;">. &nbsp;</span></p>
<ol style="list-style-type:decimal">
<li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Добавление выходных переменных.</span></li></ol>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Свойства для сопоставления с выходными атрибутами добавляются:</span></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-size: 15px; font-family: Inter;">в контекст бизнес-процесса — если результаты работы блока будут отображаться на формах задач и использоваться для определения дальнейших шагов процесса;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">в </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360028941112.html" class="topiclink">контекст приложения</a></span><span style="font-size: 15px; font-family: Inter;"> — если данные нужно сразу записать в карточку документа. Чтобы свойства нужного приложения были доступны при сопоставлении атрибутов, в настройки процесса добавляется переменная типа </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Приложение</span><span style="font-size: 15px; font-family: Inter;">, ссылающаяся на него.</span></li></ul>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Создайте следующие переменные, в которые запишется информация:</span></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-size: 15px; font-family: Inter; font-weight: bold;">Ответ сервера AI </span><span style="font-size: 15px; font-family: Inter;">(тип </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Строка</span><span style="font-size: 15px; font-family: Inter;">) — текст ответа, полученного с сервера ИИ. Его может использовать администратор для анализа ошибок, возникших при обработке документа на сервере. Например, чтобы узнать, какая проблема возникла при распознавании значений в JSON-строке с данными документа;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Статус запроса на сервер </span><span style="font-size: 15px; font-family: Inter;">(тип </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360009707032.html#number" class="topiclink">Число</a></span><span style="font-size: 15px; font-family: Inter;">) — код состояния HTTP, полученный с сервера ИИ. Переменную можно использовать для определения следующего шага процесса в зависимости от успешности подстановки. Подробнее читайте в разделе </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#error-handling" class="topiclink">«Настроить обработку ошибок»</a></span><span style="font-size: 15px; font-family: Inter;">. Также на основе кода администратор может анализировать возникшие ошибки;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Документ с подставленными переменными</span><span style="font-size: 15px; font-family: Inter;"> (тип </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Файлы</span><span style="font-size: 15px; font-family: Inter;">) — файл обработанного документа, в который подставлены новые значения переменных.</span></li></ul>
<h2 class="p_Heading2"><a id="place-activities" class="hmanchor"></a><span class="f_Heading2">Настроить обязательные шаги в процессе</span></h2>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Разместите блок </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;"> в том месте на схеме процесса, где нужно внести в документ обновлённые значения.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Чтобы блок работал корректно, в ходе процесса нужно:</span></p>
<ol style="list-style-type:decimal">
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#json" class="topiclink">Подготовить JSON-строки для сравнения старых и новых данных документа</a></span><span style="font-size: 15px; font-family: Inter;">. Они используются на сервере ИИ для добавления новых значений в файл.</span></li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#check-variables" class="topiclink">Задать проверку на изменения в значениях документа</a></span><span style="font-size: 15px; font-family: Inter;">, чтобы не применять подстановку переменных без необходимости.</span></li><li value="3" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#genarate-new-doc" class="topiclink">Перед блоком подстановки сформировать версию документа с новыми значениями</a></span><span style="font-size: 15px; font-family: Inter;">. Она используется на сервере ИИ для уточнения позиций переменных в файле.</span></li><li value="4" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#error-handling" class="topiclink">Учесть в процессе ошибок</a></span><span style="font-size: 15px; font-family: Inter;">.</span></li></ol>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Рассмотрим, какие графические элементы для этого применяются.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="antifraud-fill-in-variables-2" width="700" height="319" style="margin:0;width:700px;height:319px;border:none" src="antifraud-fill-in-variables-2.png"/></p>
<h3 class="p_Heading3"><a id="json" class="hmanchor"></a><span class="f_Heading3">Сформировать JSON-строки для подстановки новых значений</span></h3>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">При подстановке новых значений в документ на сервере ИИ сопоставляются его старые и новые данные. Для этого используются JSONстроки, в которые записаны свойства из карточки документа и их значения. Строки со старыми и новыми данными нужно передать во входных переменных блока </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;">, поэтому их нужно создать до шага подстановки: перед редактированием документа и после него.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для формирования строк используется графический элемент </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360027203731.html" class="topiclink">Скрипт</a></span><span style="font-size: 15px; font-family: Inter;">. Представьте свойства приложения и их значения в виде объекта </span><code><b>Map</b></code><span style="font-size: 15px; font-family: Inter;">, затем переведите их в JSON и запишите результат в переменные.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">Пример скрипта для преобразования переменных приложения в JSON-строку</a></span></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 mapVariables(): Promise&lt;void&gt; {</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Получение свойств приложения, записанного в переменную процесса с кодом `application`</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;const applicationData = (await Context.data.application!.fetch()).data;</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Создание объекта `Map` из всех свойств приложения, кроме системных, так как их не нужно проверять</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Системные свойства фильтруются по '__' в начале названия</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;let variables = new Map(</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;Object.keys(applicationData)</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;.filter(key =&gt; !key.startsWith('__'))</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;.map(key =&gt; [key, applicationData[key]])</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;);</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Удаление ненужных свойств — маски и типа документа</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;variables.delete('mask');</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;variables.delete('contractType');</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Преобразование в строки тех значений переменных,</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// для которых нужна особая логика,</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// например, форматирование значений даты начала и окончания договора</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;variables.set('StartDate', applicationData.StartDate?.format('DD.MM.YYYY'));</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;variables.set('EndDate', applicationData.EndDate?.format('DD.MM.YYYY'));</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Преобразование объекта `Map` в объект со строковыми значениями</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;const variablesObject: { [key: string]: string } = {};</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;[...variables].sort((a, b) =&gt; a[0].localeCompare(b[0]))</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;.forEach(variable =&gt; {</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;variablesObject[variable[0]] = variable[1]?.toString();</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;});</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Преобразование объекта в JSON и запись строки в переменную `variables` из контекста процесса</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;Context.data.variables = JSON.stringify(variablesObject);</span><br />
<span class="f_CodeExample">}</span></p>
</td>
</tr>
</table>
</div>
<h3 class="p_Heading3"><a id="check-variables" class="hmanchor"></a><span class="f_Heading3">Настроить проверку на изменение значений</span></h3>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Чтобы процесс направлялся по ветке с подстановкой переменных, только если пользователь изменил данные, задайте проверку с помощью </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360012495911.html" class="topiclink">шлюза</a></span><span style="font-size: 15px; font-family: Inter;">. </span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="antifraud-fill-in-variables-3" width="482" height="194" style="margin:0;width:482px;height:194px;border:none" src="antifraud-fill-in-variables-3.png"/></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">В настройках шлюза установите для перехода к блоку подстановки условие, в котором сравниваются сформированные ранее JSON-строки со старыми и новыми значениями. Если они не совпадают, необходима подстановка новых данных в файл.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="antifraud-fill-in-variables-4" width="671" height="290" style="margin:0;width:671px;height:290px;border:none" src="antifraud-fill-in-variables-4.png"/></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Другой переход отметьте как вариант по умолчанию.</span></p>
<h3 class="p_Heading3"><a id="genarate-new-doc" class="hmanchor"></a><span class="f_Heading3">Сформировать по шаблону файл с новыми значениями</span></h3>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для уточнения позиций переменных на сервере ИИ используется сгенерированный файл с новыми значениями. Его нужно сформировать в ходе процесса по тому же шаблону, что и изначальный файл, но с обновлёнными данными документа.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для этого после шага изменения данных в карточке используйте блок </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360026720792.html" class="topiclink">Генерация по шаблону</a></span><span style="font-size: 15px; font-family: Inter;"> или </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="generate-from-file.html" class="topiclink">Генерация по файлу</a></span><span style="font-size: 15px; font-family: Inter;">. Запишите получившийся файл в переменную, чтобы передать её во входных атрибутах при настройке блока подстановки.</span></p>
<h3 class="p_Heading3"><a id="error-handling" class="hmanchor"></a><span class="f_Heading3">Настроить обработку ошибок</span></h3>
<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-size: 15px; font-family: Inter; font-weight: bold;">Ошибки в работе блока</span><span style="font-size: 15px; font-family: Inter;">. Во время работы блока могут возникать критические ошибки, к примеру, если </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Модуль антифрод</span><span style="font-size: 15px; font-family: Inter;"> оказывается отключён. Такие случаи обрабатываются с помощью дополнительного исходящего перехода из блока </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;">. Например, при его активации процесс может завершаться. Добавьте переход на схему, чтобы при настройке блока указать его на вкладке </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Обработка ошибок</span><span style="font-size: 15px; font-family: Inter;">.</span></li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Ошибки на сервере ИИ</span><span style="font-size: 15px; font-family: Inter;">. Во время подстановки значений также могут возникать ошибки на стороне сервера. Нужно предусмотреть действия, которые будут выполняться при неуспешной обработке документа. Например, добавить задачу, в которой пользователь может запустить подстановку данных повторно.</span></li></ol>
<p style="line-height: 1.28; margin: 0 0 11px 34px;"><span style="font-size: 15px; font-family: Inter;">Чтобы задать точку, в которой процесс может продолжиться по разным веткам, используется </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360012495911.html" class="topiclink">шлюз</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 34px;"><img alt="antifraud-fill-in-variables-5" width="318" height="167" style="margin:0;width:318px;height:167px;border:none" src="antifraud-fill-in-variables-5.png"/></p>
<p style="line-height: 1.28; margin: 0 0 11px 34px;"><span style="font-size: 15px; font-family: Inter;">В настройках шлюза в качестве варианта по умолчанию укажите переход для обработки ошибок сервера. Для другого перехода задайте условие. Чтобы определить успешность обработки документа, можно использовать код статуса HTTP, который при работе блока </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;"> записывается в специальную переменную. Если статус ответа с сервера равен </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">200</span><span style="font-size: 15px; font-family: Inter;">, продолжится основной ход процесса.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 34px;"><img alt="antifraud-fill-in-variables-6" width="633" height="330" style="margin:0;width:633px;height:330px;border:none" src="antifraud-fill-in-variables-6.png"/></p>
<h2 class="p_Heading2"><span class="f_Heading2">Настройка блока</span></h2>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">После выполнения предварительных действий дважды нажмите на блок </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;"> на схеме процесса и задайте настройки на трёх вкладках: </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Основное</span><span style="font-size: 15px; font-family: Inter;">, </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Входные и выходные атрибуты</span><span style="font-size: 15px; font-family: Inter;">, </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Обработка ошибок</span><span style="font-size: 15px; font-family: Inter;">.</span></p>
<h3 class="p_Heading3"><span class="f_Heading3">Вкладка «Основное»</span></h3>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Заполните основные настройки:</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="antifraud-fill-in-variables-7" width="572" height="271" style="margin:0;width:572px;height:271px;border:none" src="antifraud-fill-in-variables-7.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-size: 15px; font-family: Inter; font-weight: bold;">Название</span><span style="font-size: 15px; font-family: Inter;"> — введите название блока, которое будет отображаться на схеме процесса;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Название задачи </span><span style="font-size: 15px; font-family: Inter;">— блок </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;"> выполняется автоматически без назначения задачи на пользователя. Поэтому настраивать формирование названия задачи не требуется, и поле можно оставить пустым;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Присвоить выходные атрибуты в </span><span style="font-size: 15px; font-family: Inter;">— укажите, куда будет записываться результат исполнения блока:</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-size: 15px; font-family: Inter; font-weight: bold;">контекст процесса </span><span style="font-size: 15px; font-family: Inter;">— отметьте эту опцию, если вы создали переменные, в которые запишется результат работы блока, в контексте процесса;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">приложение </span><span style="font-size: 15px; font-family: Inter;">— выберите опцию, а затем в поле </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Переменная</span><span style="font-size: 15px; font-family: Inter; font-weight: bold; color: #ff0000;">*</span><span style="font-size: 15px; font-family: Inter;"> укажите приложение, добавленное в контекст процесса, в поля которого будет записан результат работы блока.</span></li></ul></li></ul>
<h3 class="p_Heading3"><span class="f_Heading3">Вкладка «Входные и выходные атрибуты»</span></h3>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">На этой вкладке заранее созданные свойства связываются с настройками блока, которые делятся на:</span></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-size: 15px; font-family: Inter; font-weight: bold;">входные атрибуты</span><span style="font-size: 15px; font-family: Inter;"> — в них передаются свойства, хранящие данные для выполнения подстановки. Их нужно заполнить значениями до того, как процесс дойдёт до блока </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Подстановка переменных в документ</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">выходные атрибуты</span><span style="font-size: 15px; font-family: Inter;"> — сопоставляются со свойствами, в которые записывается результат работы блока.</span></li></ul>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Описание свойств и их типы приведены в разделе </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="antifraud-fill-in-variables.html#add-varialbes" class="topiclink">«Добавить входные и выходные переменные»</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Сопоставление может выглядеть так:</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="antifraud-fill-in-variables-8" width="887" height="474" style="margin:0;width:887px;height:474px;border:none" src="antifraud-fill-in-variables-8.png"/></p>
<h3 class="p_Heading3"><span class="f_Heading3">Вкладка «Обработка ошибок»</span></h3>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Определите, по какой ветке направится ход бизнес-процесса при возникновении ошибки в работе блока, например, если модуль отключён. Также вы можете настроить оповещение пользователей об ошибке.</span></p>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="antifraud-fill-in-variables-9" width="603" height="357" style="margin:0;width:603px;height:357px;border:none" src="antifraud-fill-in-variables-9.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-size: 15px; font-family: Inter; font-weight: bold;">Оповещение</span><span style="font-size: 15px; font-family: Inter;"> — включите опцию и укажите пользователей, которым будет отправляться оповещение об ошибке в процессе. Вы можете выбрать пользователя, </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360007146071.html" class="topiclink">группу</a></span><span style="font-size: 15px; font-family: Inter;"> пользователей, </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="360003861992.html" class="topiclink">элемент оргструктуры</a></span><span style="font-size: 15px; font-family: Inter;">, а также указать </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="process_context.html" class="topiclink">контекстную переменную</a></span><span style="font-size: 15px; font-family: Inter;">, например, инициатора процесса;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Прервать</span><span style="font-size: 15px; font-family: Inter;"> — для корректной работы блока необходимо включить опцию, а затем в поле </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Переход</span><span style="font-size: 15px; font-family: Inter;"> указать, по какой ветке направится процесс в случае ошибки. Указанный в этих настройках переход будет отмечен на схеме процесса значком </span><img alt="error-connector-icon" width="28" height="31" style="margin:0;width:28px;height:31px;border:none" src="error-connector-icon.png"/><span class="f_ImageCaption">.</span></li></ul>
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">После завершения настройки нажмите кнопку </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Сохранить</span><span style="font-size: 15px; font-family: Inter;">.</span></p>
<div class="bottom-nav">
<a id="prev-link" class="topic__navi_prev" href="antifraud-mask-highlight.html">
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
class="bottom-nav__link">antifraud-mask-highlight.html</span>
</a>
<a id="next-link" class="topic__navi_next" href="antifraud-compare-with-mask.html">
<span class="bottom-nav__link">antifraud-compare-with-mask.html</span> <span
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
</a>
</div>
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
<div class="feedback-wrap"><div class="feedback" id="feedback"><span><b>Была ли статья полезной?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx">Спасибо за ваш отзыв!</div><div id="feedback-success-popup"><div class="wrap"><button type="button" class="feedback-popup-close">×</button><svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_212_2187)"><path d="M22 0.6875C10.2294 0.6875 0.6875 10.2294 0.6875 22C0.6875 33.7706 10.2294 43.3125 22 43.3125C33.7706 43.3125 43.3125 33.7706 43.3125 22C43.3125 10.2294 33.7706 0.6875 22 0.6875ZM22 40.5625C11.8023 40.5625 3.4375 32.3078 3.4375 22C3.4375 11.8024 11.6922 3.4375 22 3.4375C32.1977 3.4375 40.5625 11.6922 40.5625 22C40.5625 32.1976 32.3078 40.5625 22 40.5625ZM34.1713 16.933L18.6613 32.3186C18.257 32.7197 17.604 32.7171 17.203 32.3128L9.82283 24.873C9.42176 24.4686 9.42434 23.8157 9.82867 23.4146L10.5609 22.6884C10.9652 22.2873 11.6181 22.2899 12.0192 22.6942L17.9468 28.6697L31.9926 14.7366C32.3969 14.3356 33.0498 14.3382 33.4509 14.7425L34.1772 15.4747C34.5783 15.879 34.5757 16.532 34.1713 16.933Z" fill="#27AE60"></path></g><defs><clipPath id="clip0_212_2187"><rect width="44" height="44" fill="white"></rect></clipPath></defs></svg><p>Ваш отзыв успешно отправлен!</p><span>Спасибо за обратную связь.</span></div></div><div class="feedback__popup" id="feedback__popup_why"><button type="button" class="feedback-popup-close">×</button><div class="feedback__popup-header">Уточните, почему:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Рекомендации не помогли</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Текст трудно понять</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Нет ответа на мой вопрос</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Содержание статьи не соответствует заголовку</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Другая причина</label></div><div class="feedback__popup" id="feedback__popup-other"><button type="button" class="feedback-popup-close">×</button> <div class="feedback__popup-header">Расскажите, что вам не понравилось в статье:</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Отправить"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg"/><span class="feedback-form__btn-group_yes-btn">Да</span></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg"/><span class="feedback-form__btn-group_no-btn">Нет</span></label></div><select name="category"><option disabled>Выберите вариант</option><option value="bad_recommendation" selected>Рекомендации не помогли</option><option value="difficult_text">Текст трудно понять</option><option value="no_answer">Нет ответа на мой вопрос</option><option value="bad_header">Содержание статьи не соответствует заголовку</option><option value="other_reason">Другая причина</option></select><input type="submit"></form></div></div>
</section>
</div>
<aside class="article__sidebar" style="display:none">
<input type="checkbox" />
<div class="article__arrow"></div>
<div class="table-of-contents elma365-right" id="toc2Content">
<h3 class="h3-toc">В этой статье</h3>
<nav id="toc2"></nav>
</div>
</aside>
</div>
</article>
</main>
<footer class="footer">
<div class="footer-container">
<div class="footer-mobile">
<ul class="footer-mobile__list"><li><a href="https://api.elma365.com/ru/" target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/" target="_blank">TS SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/elma365" target="_blank">Академия</a></li></ul><ul class="footer-mobile__list"><li><a href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li></ul>
</div>
<div class="container">
<div class="footer-wrap">
<div><span class="mobile-question-popup">Отправить фидбэк</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Задать вопрос</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Отправить"></div></form><div class="hidden fade-in question-success-xs">Ваш фидбэк отправлен.</div></div>
<div class="footer-flex-b">
<div class="footer-top">
<span class="footer-copy">&copy; 2025
ELMA365
</span>
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
</a>
</div>
<div class="footer-line">
<div class="footer-line-copy">
<span class="footer-copy">&copy; 2025
ELMA365
</span>
</div>
<ul class="footer-list">
<li class="footer-item"><a href="https://elma365.com/ru/" target="_blank" class="footer-link" style="color: #0D4A75;"><img src="browse.svg" alt="browse icon" class="footer-img">elma365.com</a></li><li class="footer-item"><a href="https://www.youtube.com/user/ELMABPM" target="_blank" class="footer-link"><img src="yt.svg" alt="youtube icon" class="footer-img"></a></li><li class="footer-item"><a href="https://vk.com/elma_bpm" target="_blank" class="footer-link"><img src="vk.svg" alt="vk icon" class="footer-img"></a></li><li class="footer-item"><a href="https://t.me/elmaday" target="_blank" class="footer-link"><img src="tg.svg" alt="telegram icon" class="footer-img"></a></li><li class="footer-item"><a href="https://dzen.ru/elma" target="_blank" class="footer-link"><img src="dzen.svg" alt="dzen icon" class="footer-img"></a></li>
<li class="footer-item">
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<a href="#" class="arrow-top"></a>
</div>
</footer>
<!-- <script type="text/javascript" src="jquery1.min.js"></script>-->
<iframe name="hmnavigation" style="display:none!important"></iframe>
<!--<script src="./jquery-ui.js"></script> -->
<script src="./jquery-ui.min.js"></script>
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
<script src="./jquery.tocify.min.js"></script>
<script src="./TypoReporter.min.js"></script>
<script src="./google-search.js"></script>
<script src="./main.js"></script>
<script type="text/javascript">
HMInitToggle('TOGGLE0186A1','hm.type','dropdown','hm.state','0');
</script>
</body>
</html>