Files
help365/crm/duplicates-events-processing.html
koziavin 345ceafa80
All checks were successful
Deploy Static Site / deploy (push) Successful in 9m44s
update
2025-08-01 16:58:46 +04:00

317 lines
48 KiB
HTML
Raw Permalink 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="Когда в приложении включён поиск похожих элементов, можно создать обработчик событий, который будет отслеживать объединение дублей и запускать нужные действия через..." />
<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">
<div class="nav-container">
<div class="nav-wrap">
<a class="header__logo" href="https://elma365.com/ru/help">
<img src="./logo.svg" alt="header logo">
</a>
<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 class="header__list-item"><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">CSP</a></li><li><a class="project-link" href="https://elma365.com/ru/help/crm/crm-functions.html">CRM+CX</a></li><li><a class="project-link" href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a><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/kedo/kedo.html">КЭДО</a></li><li><a class="project-link" href="https://elma365.com/ru/help/business_solutions/-elma365-store.html">Бизнес-решения</a></li><ul class="social-links-header" ><li class="social-link-header"><a target="_blank" class="project-link" href="https://elma-academy.com/ru/">Academy</a></li><li class="social-link-header"><a target="_blank" class="project-link" href="https://community.elma365.com/ru/">Community</a></li><li></ul></ul></span></li><li class="header__list-item"><a class="header__list-item-url" href="https://api.elma365.com/ru/"target="_blank">API</a></li><li class="header__list-item"><a class="header__list-item-url" href="https://tssdk.elma365.com/latest/"target="_blank">SDK</a></li><li class="header__list-item header__list-item-latest"><a class="header__list-item-url header__list-item-last" href="https://elma365.com/ru/" target="_blank">Сайт ELMA365</a></li></ul>
<div class="hero-wrap" style="display: flex; align-items: center;">
<div class="hero__search" style="display: flex; justify-content: space-between; width: 100%; padding-left: 0;">
<a class="header__logo" href="https://elma365.com/ru/help">
<img src="./logo.svg" alt="header logo">
</a>
<button id="search-icon" class="hero__search-icon">
<img src="search-icon-white.svg" alt="search string">
</button>
<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>
</div>
</div>
</div>
<a href="#" id="side-menu-icon" class="hero__side-icon">
<img src="side_menu.svg" alt="side menu">
</a>
</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="duplicates.html">Дубли в разделе CRM</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="margin: 7px 0 16px 0;">Когда в приложении включён поиск похожих элементов, можно создать обработчик событий, который будет отслеживать объединение дублей и запускать нужные действия через скрипт или бизнес-процесс.</p>
<p style="margin: 7px 0 16px 0;">Настройка обработчика событий осуществляется в рамках создания <a href="/ru/help/platform/extentions.html" target="_blank" class="weblink">пользовательского модуля</a>. В обработчик можно передавать ссылку на основной элемент и запись, отмеченную дублем, а также свойства из их контекста.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p style="margin: 7px 0 7px 0;">Обработчик событий для объединения одинаковых записей в приложении доступен при активации одного из <a href="/ru/help/platform/licenses-crm.html" target="_blank" class="weblink">платных решений CRM</a>, в котором включён поиск дублей. Создавать модуль и настраивать в нём обработчик могут только пользователи, входящие в группу <a href="360006871932.html#administrators" class="topiclink">Администраторы</a>.</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>Рассмотрим пример создания обработчика событий для приложений раздела <span style="font-weight: bold;">CRM</span>, в которых включён поиск дублей. </p>
<p style="margin: 16px 0 0 0;">Например, пользователь находит два элемента с одинаковыми данными и объединяет их в одну запись. Добавленный обработчик события фиксирует это действие и запускает процесс. В его ходе с помощью скриптов передаются данные об основном и объединённом элементе. Затем ответственному менеджеру и его руководителю отправляется задача ознакомления со списком объединённых дублей.</p>
<p style="margin: 16px 0 0 0;">Для настройки обработчика выполните следующие действия:</p>
<ol style="list-style-type:upper-roman">
<li value="1" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">Перейдите в раздел <span style="font-weight: bold;">Администрирование &gt; Модули</span> и <a href="create-extention.html" class="topiclink">создайте пользовательский модуль</a>.</li><li value="2" style="margin-top: 0; margin-right: 0; margin-bottom: 23px;">В настройках модуля перейдите на вкладку <span style="font-weight: bold;">Процессы</span> и добавьте <a href="extention-processes.html" class="topiclink">бизнес-процесс</a>, который будет выполняться каждый раз после объединения записей-дублей.</li></ol>
<p style="margin: 0 0 23px 36px;">Для нашего примера добавим процесс <span style="font-weight: bold;">Уведомление об объединении дублей</span> и настроим его схему следующим образом:</p>
<p style="margin: 0 0 23px 36px;"><img alt="duplicates-events-processing-1" width="667" height="272" style="margin:0;width:667px;height:272px;border:none" src="duplicates-events-processing-1.png"/></p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">В дизайнере бизнес-процессов перейдите на вкладку <span style="font-weight: bold;">Контекст</span> и добавьте переменные, в которые обработчик в результате слияния дублей передаст ссылки на основной элемент и объединённые записи:</li></ol>
<ul style="list-style-type:disc">
<li style="margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;">Объединенный элемент</span> — свойство типа <span style="font-weight: bold;">Произвольное приложение (один)</span>;</li><li style="margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;">Дубликаты</span> — свойства типа <span style="font-weight: bold;">Произвольное приложение (несколько)</span>.</li></ul>
<ol style="list-style-type:upper-roman" start="4">
<li value="4" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">На вкладке <span style="font-weight: bold;">Схема</span> разместите два блока <a href="/ru/help/platform/360027203731.html" target="_blank" class="weblink">Скрипт</a> и задайте в них функции, с помощью которых будет определяться основной элемент и его записи-дубли.</li></ol>
<p style="margin: 0 0 0 24px;"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">1. Пример скрипта для получения данных о дублях</a></p>
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; padding: 0 0 0 0; margin: 0 0 0 24px;"><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: auto; page-break-after: avoid;"><span class="f_CodeExample">async</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">function</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">getDoubles():</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Promise&lt;void&gt;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">// Context.data.doubles — переменная Дубликаты из контекста процесса Уведомление об объединении дублей.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">// Когда создаётся обработчик события, в нём выполняются настройки, с помощью которых в эту переменную записываются все объединяемые в процессе поиска дублей элементы.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">// Чтобы узнать, к какому приложению относятся дубли, и определить, к каким свойствам можно обращаться внутри сценария, нужно получить первый элемент списка Context.data.doubles и прочитать его свойство code:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">element</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">await</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.doubles![0].fetch(); // Получаем первый элемент списка Context.data.doubles.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">doubles_app_code</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">element.code; // Читаем свойство code.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">// При помощи проверки значения свойства code, можно сформировать пользовательский сценарий обработки элементов для каждого приложения, в котором активирован поиск дублей:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">switch(doubles_app_code)</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_opportunities&quot;:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">// Создаём в контексте бизнес-процесса переменную Дубли лиды (тип: Приложение &gt; Лиды с опцией Несколько, код для обращения: Context.data.opportunities_doubles). В ней сохраняются ссылки на записи‑дубли, если тип элементов — лиды:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">Context.data.opportunities_doubles</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.doubles</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">as</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">BaseApplicationItem&lt;Application$_clients$_opportunities$Data,</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Application$_clients$_opportunities$Params&gt;[];</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">// Теперь можно обрабатывать дубли в приложении Лиды:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">for</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">(let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">i</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">0;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">i</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&lt;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.opportunities_doubles!.length;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">i++)</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">opportunity_double</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">await</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.opportunities_doubles[i].fetch(); // Получаем элемент в цикле</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">opportunity_name</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">opportunity_double.data.__name; // Получаем имя элемента. Аналогичным образом доступны значения других свойств приложения.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">}</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">break;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_leads&quot;:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">// При обращении к этому приложению может быть реализована обработка дублей‑сделок.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">break;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_companies&quot;:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">// При обращении к этому приложению может быть реализована обработка дублей‑компаний.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">break;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_contacts&quot;:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">// При обращении к этому приложению может быть реализована обработка дублей‑контактов.</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="f_CodeExample">break;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">}</span><br />
<span class="f_CodeExample">}</span></p>
</td>
</tr>
</table>
</div>
<p style="margin: 0 0 0 24px;"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A2')">2. Пример скрипта для получения данных об основном (объединённом) элементе</a></p>
<div id="TOGGLE0186A2" class="dropdown-toggle-body" style="text-align: left; padding: 0 0 0 0; margin: 0 0 0 24px;"><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: auto; page-break-after: avoid;"><span class="f_CodeExample">async</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">function</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">getMainElement():</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Promise&lt;void&gt;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// Обработка главного (объединённого) элемента аналогична обработке записей‑дублей. Главным отличием является то, что дубликатов всегда несколько, а главный элемент — один.</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">element</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">await</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.main_element!.fetch();</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">// Получаем первый элемент списка Context.data.doubles.</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">doubles_app_code</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">element.code;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">// Читаем свойство code.</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;// При помощи проверки значения свойства code, можно сформировать пользовательский сценарий обработки элементов для каждого приложения, в котором активирован поиск дублей:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;switch(doubles_app_code)</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_opportunities&quot;:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;// Создаём в контексте бизнес-процесса переменную Основной элемент лид (тип: Приложение &gt; Лиды с опцией Один, код для обращения: Context.data.opportunity_main_element). В ней сохраняется ссылка на основной элемент — лид:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;Context.data.main_element_opportunity</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.main_element!</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">as</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">BaseApplicationItem&lt;Application$_clients$_opportunities$Data,</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Application$_clients$_opportunities$Params&gt;;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;// Теперь можно обрабатывать основной элемент приложения Лиды:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">main_element_opportunity</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">await</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.main_element_opportunity.fetch();</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">// Получаем элемен.т</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">main_opportunity_name</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">main_element_opportunity.data.__name;</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">// Получаем имя элемента. Аналогичным образом доступны значения других свойств приложения</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_leads&quot;:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;// При обращении к этому приложению может быть реализована обработка дублей‑сделок.</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_companies&quot;:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// При обращении к этому приложению может быть реализована обработка дублей‑компаний.</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp;case</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;_contacts&quot;:</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// При обращении к этому приложению может быть реализована обработка дублей‑контактов.</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</span><br />
<span class="f_CodeExample"> &nbsp; &nbsp;}</span><br />
<span class="f_CodeExample">}</span></p>
</td>
</tr>
</table>
</div>
<ol style="list-style-type:upper-roman" start="4">
<li value="5" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">Поскольку участники процесса будут определяться в его ходе, на схеме процесса создайте <a href="/ru/help/platform/360012263032.html#dynamic" target="_blank" class="weblink">динамические зоны ответственности</a>: </li></ol>
<ul style="list-style-type:disc">
<li style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">для отвечающих за элемент приложения сотрудников;</li><li style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">для руководителя отдела продаж. &nbsp;</li></ul>
<ol style="list-style-type:upper-roman" start="6">
<li value="6" style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">Чтобы сотрудники могли ознакомиться со списком дублей, найденных обработчиком события, в зонах ответственности разместите блоки <a href="/ru/help/platform/360012495611.html" target="_blank" class="weblink">Задача</a> и добавьте на форму задачи переменные <span style="font-weight: bold;">Объединенный элемент</span> и <span style="font-weight: bold;">Дубликаты</span>.</li><li value="7" style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">Сохраните и опубликуйте процесс. </li><li value="8" style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">В настройках модуля перейдите на вкладку <a href="/ru/help/platform/events_processing.html" target="_blank" class="weblink">Обработка событий</a>. Добавьте обработчик, указав: название, домен события — <span style="font-weight: bold;">Дубли</span>, событие — <span style="font-weight: bold;">Объединение дубликатов</span>, тип обработчика — <span style="font-weight: bold;">Запуск процесса</span>.</li></ol>
<p style="text-indent: 1px; margin: 23px 0 0 36px;"><img alt="duplicates-events-processing-2" width="518" height="287" style="margin:0;width:518px;height:287px;border:none" src="duplicates-events-processing-2.png"/></p>
<ol style="list-style-type:upper-roman" start="6">
<li value="9" style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">На открывшейся странице настроек обработчика событий укажите процесс, созданный ранее внутри пользовательского модуля.</li><li value="10" style="margin-top: 23px; margin-right: 0; margin-bottom: 0;">Перейдите на вкладку <span style="font-weight: bold;">Входные переменные</span> и назначьте источники данных для переменных из контекста процесса в колонке <span style="font-weight: bold;">Поле элемента</span>. Для этого сопоставьте их со свойствами события. </li></ol>
<p style="margin: 0 0 0 36px;">Для события <span style="font-weight: bold;">Объединение дубликатов</span> предусмотрен набор системных полей (идентификатор события, время выполнения, название объекта, автор и т. д.), а также индивидуальные свойства: ссылка на основной элемент и дубликаты. Для нашего примера необходимо сопоставить переменные <span style="font-weight: bold;">Дубликаты</span> и <span style="font-weight: bold;">Объединённый элемент</span>.</p>
<p style="margin: 0 0 0 36px;"><img alt="duplicates-events-processing-3" width="814" height="195" style="margin:0;width:814px;height:195px;border:none" src="duplicates-events-processing-3.png"/></p>
<p style="margin: 0 0 0 36px;">Обратите внимание,<span style="font-weight: bold;"> </span>на вкладке <span style="font-weight: bold;">Входные переменные</span> отображаются свойства, присутствующие в контексте процесса в момент его привязки к обработчику события. Если контекст процесса был изменён, новые переменные не появятся в настройках обработчика. Необходимо повторно создать и настроить обработчик событий, привязав к нему тот же самый бизнес-процесс.</p>
<ol style="list-style-type:upper-roman" start="11">
<li value="11">На верхней панели страницы настроек нажмите <span style="font-weight: bold;">Сохранить</span> и <span style="font-weight: bold;">Опубликовать</span>, чтобы активировать обработчик событий.</li><li value="12">Вернитесь на основную страницу модуля и включите его.</li></ol>
<p style="margin: 23px 0 23px 0;">Теперь, когда пользователь объединит между собой несколько элементов-дублей, в системе сработает обработчик событий, который запустит настроенный бизнес-процесс. Ответственные<span style="color: #394149; background-color: #ffffff;">&nbsp;сотрудники и руководитель отдела ознакомятся с похожими записями на форме отдельных задач.</span></p>
<div class="bottom-nav">
<a id="prev-link" class="topic__navi_prev" href="mark-as-duplicate.html">
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
class="bottom-nav__link">mark-as-duplicate.html</span>
</a>
<a id="next-link" class="topic__navi_next" href="cash-flow.html">
<span class="bottom-nav__link">cash-flow.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" class="sk-img">
<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 footer-url-elma"><a href="https://elma365.com/ru/" target="_blank" class="footer-link footer-url-link-elma" style="color: #0D4A75;"><img src="browse.svg" alt="browse icon" class="footer-img footer-img-elma-url">elma365.com</a></li><li class="footer-item"><a href="https://vkvideo.ru/@elma_bpm" target="_blank" class="footer-link"><img src="vk-video.svg" width="20" height="20" alt="vk-video icon" class="footer-img social-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" width="20" height="20" class="footer-img social-footer-img"></a></li><li class="footer-item"><a href="https://t.me/elmaday" target="_blank" class="footer-link"><img src="telegram.svg" alt="telegram icon" width="20" height="20" class="footer-img social-footer-img"></a></li><li class="footer-item"><a href="https://dzen.ru/elma" target="_blank" class="footer-link"><img src="social_dzen.svg" alt="dzen icon" width="20" height="20" class="footer-img social-footer-img"></a></li>
<li class="footer-item sk-footer-img">
<a href="https://navigator.sk.ru/orn/1122971" target="_blank" class="sk-img">
<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');
HMInitToggle('TOGGLE0186A2','hm.type','dropdown','hm.state','0');
</script>
</body>
</html>