Настройки администратора для внедрения КЭДО / Состав решений ELMA365 КЭДО 3.0
+
+
+
+
Состав решений ELMA365 КЭДО 3.0
+
+
+
+
+
+
+
+
+
ELMA365 КЭДО 3.0 состоит из трёх отдельных решений, которые устанавливаются в компанию из ELMA365 Store:
+
+
КЭДО 3.0;
Портал КЭДО 3.0;
КЭДО365: Интеграция с 1С.
+
Решения Портал КЭДО 3.0, КЭДО365: Интеграция с 1С инекоторые компоненты КЭДО 3.0 выполняют служебные функции и нужны для настроек функциональных возможностей и внедрения кадрового электронного документооборота в компанию.
+
Доступ к этим компонентам есть только у администраторов системы. В этой статье рассмотрим их подробнее.
В решение входят разделы КЭДО 3.0 и УРВ, а также несколько модулей расширения системы.
+
Рассмотрим служебные приложения, необходимые для настройки и организации работы пользователей:
+
+
Главная — страница предназначена для работы сотрудников отдела кадров и бухгалтерии с заявками и документами. Однако, для администраторов системы на странице доступна вкладка Администрирование КЭДО. Открыв её, пользователи смогут быстро запустить различные процессы настройки решений:
+
Выполнить первичную настройку КЭДО — процесс предназначен для выполнения первичной настройки ELMA365 КЭДО 3.0: включает служебные параметры, автоматически заполняет данными приложения и справочники и т. д.;
Сопоставить пользователей с физическими лицами — процесс используется для настройки созданной базы сотрудников организации. Если физические лица и пользователи импортируются в ELMA365 из сторонних систем, например, из 1С и сервиса Active Directory/LDAP, вы можете сопоставить их карточки между собой;
Создать/обновить группы доступа по ШР и УС, Заполнить поля-роли приложений группами доступа, Удалить все группы доступа — процессы связаны с настройкой штатного расписания и управленческой структуры и определением ролей пользователей в кадровом электронном документообороте. Являются вспомогательными. Запускаются, если возникли ошибки в основном процессе настройки групп и ролей или же, когда необходимо создать новые штатную и управленческую структуры, а также в случае экспорта решения КЭДО 3.0 в другую компанию.
+
Меню настроек — список параметров для настройки и определения логики работы в разделе, подключения интеграций с учётными системами и т. д. Они позволяют адаптировать бизнес-процессы согласно индивидуальным потребностям компании. Подробнее читайте в статье «Задать параметры меню настроек для ELMA365 КЭДО 3.0»;
Статусы — служебный справочник, в котором хранятся преднастроенные статусные модели кадровых документов, заявок и различных заявлений;
приложения Провайдеры и Способ подписания — содержат данные для обеспечения корректной работы подключённой интеграции с провайдерами электронной подписи;
разделитель Интеграции — приложения для настройки кадровых процессов после включения интеграции с учётной системой, например, с сервисом 1С;
Контракты — настраивают отображение кадровых документов и заявок пользователей на главной рабочей странице специалиста отдела кадров в ELMA365 и в личных кабинетах сотрудников на портале КЭДО. В контракты добавляются приложения-источники при первичной настройке решений. Решение КЭДО 3.0 включает следующие контракты:
+
раздел КЭДО 3.0 > Заявки;
раздел КЭДО 3.0 > Документы;
раздел УРВ > Отклонения от рабочего времени.
+
разделитель Настройки трудоустройства — под этим разделителем хранятся служебные приложения, позволяющие адаптировать процесс трудоустройства в организацию и настраивать этапы, которые будет проходить сотрудник;
разделитель Сервисы — здесь собраны приложения и контракты, с помощью которых настраивается внешний вид страницы портала КЭДО с доступными сотруднику услугами и каталогами услуг.
+
Модули решения «КЭДО 3.0»
+
Решение КЭДО 3.0 содержит модули расширения системы. Они позволяют подключить сторонние сервисы и обеспечивают корректный ход кадровых процессов и т. д. Модули нужно обязательно активировать и задать их настройки:
+
+
Модуль КЭДО 3.0 — модуль содержит пользовательские действия в бизнес-процессах и настроенные обработчики событий, которые обеспечивают корректную работу кадровых процессов решения, а также предоставляет доступ к Web API ELMA365 для сторонних сервисов;
Массовое подписание КЭДО — активируйте модуль после установки решения КЭДО 3.0 и настройки провайдера электронной подписи, чтобы включить массовое подписание пакета документов. Тогда для выполнения задач подписания пользователи смогут запрашивать один код-идентификатор своего сертификата УНЭП;
УЦ Контур — модуль подключает интеграцию с провайдером облачных сертификатов усиленной неквалифицированной электронной подписи (УНЭП).
+
Решение «Портал КЭДО»
+
В решение входит раздел Портал КЭДО. Он доступен только администраторам и содержит внешний портал для сотрудников с преднастроенными страницами. Здесь вы cможете изменить портал в соответствии с фирменным стилем вашей компании, создавать страницы с собственной конфигурацией, добавлять на них списки приложений, кнопки для создания элементов или запуска бизнес-процессов, виджеты и т. д.
+
Решение «КЭДО365: Интеграция с 1С»
+
Установите решение опционально, если ваша компания использует учётную систему 1С. Решение включает в себя:
+
+
раздел Интеграция 1С — здесь собраны приложения для обмена данными между 1С и ELMA365. Элементы создаются автоматически при выполнении процессов обмена. Они содержат поступившую из 1С информацию в формате .json о штатном расписании, базе сотрудников, печатных формах кадровых документов, расчётных листах и т. д. Затем эти данные обрабатываются в преднастроенных процессах и добавляются в приложения разделов КЭДО 3.0 и УРВ, чтобы специалисты отдела кадров могли с ними работать;
модуль КЭДО365: Интеграция с 1С — настраивает интеграцию с сервисом 1С и обеспечивает корректный ход процессов обмена данными между системами. Подключить можно следующие конфигурации учётной системы: 1С:Зарплата и управление персоналом, 1С:Комплексная автоматизация.
+
+
+
diff --git a/kedo/help-a.svg b/kedo/help-a.svg
new file mode 100644
index 0000000..2c315da
--- /dev/null
+++ b/kedo/help-a.svg
@@ -0,0 +1,6 @@
+
diff --git a/kedo/help-dialog.svg b/kedo/help-dialog.svg
new file mode 100644
index 0000000..23e2467
--- /dev/null
+++ b/kedo/help-dialog.svg
@@ -0,0 +1,8 @@
+
diff --git a/kedo/help-mark.svg b/kedo/help-mark.svg
new file mode 100644
index 0000000..87c8f01
--- /dev/null
+++ b/kedo/help-mark.svg
@@ -0,0 +1,6 @@
+
diff --git a/kedo/helpman_navigation.js b/kedo/helpman_navigation.js
new file mode 100644
index 0000000..9a354f4
--- /dev/null
+++ b/kedo/helpman_navigation.js
@@ -0,0 +1,459 @@
+/* ------------ Script copyright 2005-2015 EC Software -------------
+ This script was created by Help & Manual and is part of the
+ Webhelp export format. This script is designed for use in
+ combination with the output of Help & Manual and must not
+ be used outside this context. http://www.helpandmanual.com
+
+ Do not modify this file! It will be overwritten by Help & Manual.
+ ----------------------------------------------------------------- */
+
+var usecookie = false,
+ tocselecting = false,
+ abspossupported = 0,
+ currentselection = null,
+ currenttocstate = "";
+
+function hmAddCss(adoc, cssCode) {
+ var styleElement = adoc.createElement("style");
+ styleElement.type = "text/css";
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = cssCode;
+ }
+ else {
+ styleElement.appendChild(adoc.createTextNode(cssCode));
+ }
+ adoc.getElementsByTagName("head")[0].appendChild(styleElement);
+}
+
+function hmSupportsAbspos() {
+ if (abspossupported==0) {
+ tmp = $('
').appendTo('body');
+ if (($(tmp).outerWidth()+30) > $(window).width()) abspossupported = 1;
+ else abspossupported = -1;
+ tmp.remove();
+ }
+ if (abspossupported==1) return true;
+ return false;
+}
+
+function hmNoAbsposResize(jdiv, w, h) {
+ var windowWidth, windowHeight;
+ if (self.innerHeight) { // all except Explorer
+ if(document.documentElement.clientWidth){
+ windowWidth = document.documentElement.clientWidth;
+ } else {
+ windowWidth = self.innerWidth;
+ }
+ windowHeight = self.innerHeight;
+ } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
+ windowWidth = document.documentElement.clientWidth;
+ windowHeight = document.documentElement.clientHeight;
+ } else if (document.body) { // other Explorers
+ windowWidth = document.body.clientWidth;
+ windowHeight = document.body.clientHeight;
+ }
+ if (w) jdiv.css('width', ( windowWidth - parseInt(jdiv.css('left')) - parseInt(jdiv.css('right')) ));
+ if (h) jdiv.css('height', ( windowHeight - parseInt(jdiv.css('top')) - parseInt(jdiv.css('bottom')) ));
+}
+
+function hmNavigationFrame() {
+ var actFrames = new Array(
+ window.frames['hmnavigation'],
+ window.frames['hmcontent']
+ );
+ for (var i=0;i 0) {
+ var fullPath = window.location.href.substring(0, window.location.href.lastIndexOf("/"));
+ if (levs == 9) {
+ page = fullPath + '/' + page;
+ }
+ else {
+ for (var i=0;i-1), false);
+ }
+ }
+ if (hmContentFrame()) {
+ var topicID = hmContentFrame().location.href.substring(hmContentFrame().location.href.lastIndexOf("/")+1,hmContentFrame().location.href.length);
+ if (topicID.lastIndexOf("#") != -1) topicID = topicID.substring(0,topicID.lastIndexOf("#"));
+ if (topicID.lastIndexOf("?") != -1) topicID = topicID.substring(0,topicID.lastIndexOf("?"));
+ tocselecting = false;
+ lazysync(topicID);
+ }
+ hmAnimate = tmpAnimate;
+}
+
+function savestate(toc) {
+ currenttocstate = "";
+ var items = toc.getElementsByTagName("ul");
+ for(var i = 0; i < items.length; i++) if (items[i].style.display!="none") currenttocstate = currenttocstate.concat(items[i].id + ",");
+ if (usecookie) document.cookie = currenttocstate;
+}
+
+function toggle(nodeID) {
+ var thisUL = hmULfromID(nodeID);
+ if (thisUL) hmSwitchNode(thisUL, ((thisUL.style.display=="none")?true:false), true);
+}
+
+function hmNodeClicked(node, event) {
+ if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } //MSIE
+ if ($(node).css('direction') != 'rtl') {
+ var scrOfX = $(hmNavigationFrame()).scrollLeft();
+ var scrOfY = $(hmNavigationFrame()).scrollTop();
+ var offset = parseInt( $(node).css('padding-left'));
+ var thisClicked = ( (event.clientY+scrOfY > $(node).offset().top) && (event.clientY+scrOfY < ($(node).offset().top+offset)) &&
+ (event.clientX+scrOfX > $(node).offset().left) && (event.clientX+scrOfX < ($(node).offset().left+offset+$(node.firstChild).outerWidth())) );
+ var iconClicked = (thisClicked && (event.clientX+scrOfX > $(node).offset().left) && (event.clientX+scrOfX < ($(node).offset().left+offset)));
+ }
+ else {
+ var scrOfX = $(hmNavigationFrame()).scrollLeft();
+ var scrOfY = $(hmNavigationFrame()).scrollTop();
+ var offset = parseInt( $(node).css('padding-right'));
+ var nodeW = $(node).outerWidth();
+ var textW = $(node.firstChild).outerWidth();
+ var thisClicked = ( (event.clientY+scrOfY > $(node).offset().top) && (event.clientY+scrOfY < ($(node).offset().top+offset)) &&
+ (event.clientX+scrOfX < $(node).offset().left+nodeW) && (event.clientX+scrOfX > ($(node).offset().left+nodeW-offset-textW)) );
+ var iconClicked = (thisClicked && (event.clientX+scrOfX < $(node).offset().left+nodeW) && (event.clientX+scrOfX > ($(node).offset().left+nodeW-offset)));
+ }
+ var thisID = node.id;
+ if (iconClicked) {
+ toggle('ul'+thisID.substring(1,thisID.length));
+ }
+ else if (thisClicked) {
+ if (hmTocSingleClick) {
+ hilightexpand('s'+thisID.substring(1,thisID.length));
+ }
+ else {
+ hilight('s'+thisID.substring(1,thisID.length));
+ }
+ }
+}
+
+function hmNodeDblclicked(node) {
+ thisID = node.id;
+ toggle('ul'+thisID.substring(1,thisID.length));
+}
+
+function hmLIfromID(thisID) {
+ return hmNavigationFrame().document.getElementById('i'+thisID.replace(/[isaul]/g,''));
+}
+
+function hmULfromID(thisID) {
+ return hmNavigationFrame().document.getElementById('ul'+thisID.replace(/[isaul]/g,''));
+}
+
+function hmSwitchNode(thisUL, nodevisible, animate) {
+ if ((thisUL.style.display!='none')!=nodevisible) {
+ var thisLI = hmLIfromID(thisUL.id);
+ if (thisLI) {
+ var thisIcon = thisLI.getAttribute('data-bg');
+ if (thisIcon!='') $(thisLI).css('background-image', 'url(' + (nodevisible ? thisIcon.substr(thisIcon.indexOf(';')+1, thisIcon.length) : thisIcon.substr(0, thisIcon.indexOf(';')) ) + ')');
+
+ if (nodevisible) {
+ if (animate && hmAnimate) $(thisUL).slideDown('fast');
+ else thisUL.style.display = 'block';
+ }
+ else {
+ if (animate && hmAnimate) $(thisUL).slideUp('fast');
+ else thisUL.style.display = 'none';
+ }
+ }
+ }
+}
+
+function hilightexpand(spanID) {
+ if (hilight(spanID)) {
+ var thisUL = hmULfromID(spanID);
+ if (thisUL) hmSwitchNode(thisUL, true, true);
+ return true;
+ }
+ else return false;
+}
+
+function hilight(spanID) {
+ tocselecting = true;
+ var thisnode = null;
+ var selectionchanged = false;
+ thisnode = hmNavigationFrame().document.getElementById(spanID);
+ if (thisnode) {
+ try {
+ if ((currentselection) && (currentselection != thisnode)) currentselection.className = "heading" + currentselection.className.substr(7,1);
+ }
+ catch(e){
+ }
+ thisnode.className = "hilight"+thisnode.className.substr(7,1);
+ selectionchanged = (currentselection != thisnode);
+ currentselection = thisnode;
+ }
+ return selectionchanged;
+}
+
+function intoview(thisnode, tree, selectionchanged) {
+ var thisparent = thisnode;
+ while (thisparent != tree) {
+ if ((selectionchanged) && (thisparent.nodeName.toLowerCase()=="ul")) hmSwitchNode(thisparent,true,true);
+ thisparent = thisparent.parentNode;
+ }
+ thisparent = thisnode;
+ for (var t=0; thisparent!=null; t+=thisparent.offsetTop, thisparent=thisparent.offsetParent);
+ var bt = (hmNavigationFrame().window.pageYOffset)?hmNavigationFrame().window.pageYOffset:hmNavigationFrame().document.body.scrollTop;
+ var bh = (hmNavigationFrame().window.innerHeight)?hmNavigationFrame().window.innerHeight:hmNavigationFrame().document.body.offsetHeight;
+ if ((t+thisnode.offsetHeight-bt) > bh) hmNavigationFrame().window.scrollTo(0,(t+24-bh))
+ else if (t < bt) hmNavigationFrame().window.scrollTo(0,t);
+}
+
+function collapseunfocused(toc, selectedID) {
+ if (toc) {
+ var nodepath = 'ul'+selectedID.replace(/[isaul]/g,'') + ".";
+ var nodeCompare = "";
+ var items = toc.getElementsByTagName("ul");
+ for (var i = 0; i < items.length; i++) {
+ if (items[i].id.indexOf(".")<0) nodeCompare = items[i].id + ".";
+ else nodeCompare = items[i].id;
+ if (nodepath.lastIndexOf(nodeCompare)<0) {
+ hmSwitchNode(items[i], false, false);
+ }
+ }
+ }
+}
+
+function quicksync(aID) {
+ if (aID != "") {
+ var toc = hmNavigationFrame().document.getElementById("toc");
+ if (toc) {
+ if (!tocselecting) {
+ aID = "s"+aID.substring(1,aID.length);
+ var thisspan = hmNavigationFrame().document.getElementById(aID);
+ if (thisspan) {
+ var selectionchanged = hilight(aID);
+ intoview(thisspan, toc, selectionchanged);
+ }
+ }
+ if (autocollapse) {
+ if (currentselection) collapseunfocused(toc, currentselection.id);
+ else collapseunfocused(toc, "");
+ }
+ }
+ track('topic', topicID);
+ }
+ tocselecting = false;
+}
+
+function lazysync(topicID) {
+ if (topicID != "") {
+ var toc = hmNavigationFrame().document.getElementById("toc");
+ if (toc) {
+ if (!tocselecting) {
+ var currentTopic = $("a[href^='"+topicID+"']",toc);
+ if (currentTopic.length > 0) {
+ var currentSpanID = $(currentTopic).children("span").attr("id");
+ var selectionchanged = false;
+ if (hmTocSingleClick) {
+ selectionchanged = hilightexpand(currentSpanID);
+ }
+ else {
+ selectionchanged = hilight(currentSpanID);
+ }
+ intoview(currentTopic[0], toc, selectionchanged);
+ }
+ }
+ if (autocollapse) {
+ if (currentselection) collapseunfocused(toc, currentselection.id);
+ else collapseunfocused(toc, "");
+ }
+ }
+ track('topic', topicID);
+ }
+ tocselecting = false;
+}
+
+function hmPreloadIcons() {
+ var icons = new Array();
+ for (i=0; i ');
+
+ var oldX;
+ var navWidth;
+ var minWidth;
+ var oldLeft;
+ var oldWidth;
+ var oldSplitL;
+ var split = $('#hmsplitter');
+
+ $(window).resize(function() { /* resize splitter when window changes */
+ split.css({'height': $(leftdiv).outerHeight()+'px', 'left': ($(leftdiv).offset().left+$(leftdiv).outerWidth())+'px'});
+ });
+
+ split.bind('mousedown', startDrag);
+
+ function startDrag(e) {
+ oldX = (!document.all) ? e.clientX : event.clientX;
+ navWidth = parseInt($(leftdiv).css('width'),10);
+ minWidth = parseInt($(leftdiv).css('min-width'));
+ oldLeft = $(rightdiv).offset().left;
+ oldWidth = $(rightdiv).outerWidth();
+ oldSplitL = split.offset().left;
+
+ var bg = $('').appendTo('body');
+ bg.bind('mousemove', performDrag);
+ bg.bind('mouseup', endDrag);
+ split.bind('mousemove', performDrag);
+ split.bind('mouseup', endDrag);
+
+ function endDrag() {
+ bg.unbind('mousemove').unbind('mouseup').remove();
+ split.unbind('mousemove').unbind('mouseup');
+ }
+ }
+
+ function performDrag(e) {
+ //deselect:
+ if (window.getSelection) window.getSelection().removeAllRanges();
+ else if (document.selection) document.selection.empty();
+
+ var moveX = (!document.all) ? e.clientX - oldX : event.clientX - oldX;
+ var newNavW = navWidth + moveX < minWidth ? minWidth : navWidth + moveX;
+ $(leftdiv).css('width', (newNavW) + 'px');
+ //split.css('left', ($(leftdiv).offset().left+newNavW) + 'px');
+ split.css('left', (oldSplitL + newNavW - navWidth) + 'px');
+
+ $(rightdiv).css('left', (oldLeft + newNavW - navWidth) + 'px');
+ if (!hmSupportsAbspos()) $(rightdiv).css('width', (oldWidth - newNavW + navWidth) + 'px');
+ }
+
+}
diff --git a/kedo/helpman_settings.js b/kedo/helpman_settings.js
new file mode 100644
index 0000000..1ff77ab
--- /dev/null
+++ b/kedo/helpman_settings.js
@@ -0,0 +1,41 @@
+/* Project settings */
+var hmAnimate = true;
+var hmPopupSticky = true;
+var hmImageLightbox = true;
+var hmVideoLightbox = true;
+var hmLightboxConstrained = true;
+var hmForceRedirect = false;
+var hmTocSingleClick = true;
+var autocollapse = false;
+var gaaccount = "",
+ gatrackername = "",
+ gatracklevels = 0;
+var initialtocstate = "collapsed";
+var agent = "",
+ platform = "",
+ hmBrowser = {};
+ try {
+ agent = navigator.userAgent; platform = navigator.platform;
+ hmBrowser.touch = !!(('ontouchstart' in window && !window.opera) || ('msmaxtouchpoints' in window.navigator) || ('maxtouchpoints' in window.navigator) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
+ hmBrowser.nonDeskTouch = ((hmBrowser.touch && !/win32|win64/i.test(platform)) || (hmBrowser.touch && /win32|win64/i.test(platform) && /mobile/i.test(agent)));
+
+ hmBrowser.eventType = (('onmousedown' in window && !hmBrowser.nonDeskTouch) ? "mouse" : ('ontouchstart' in window) ? "touch" : ('msmaxtouchpoints' in window.navigator || navigator.msMaxTouchPoints > 0) ? "mstouchpoints" : ('maxtouchpoints' in window.navigator || navigator.maxTouchPoints > 0) ? "touchpoints" : "mouse");
+ switch(hmBrowser.eventType) {
+ case "mouse":
+ hmBrowser.touchstart = "mousedown";
+ hmBrowser.touchend = "mouseup";
+ break;
+ case "touch":
+ hmBrowser.touchstart = "touchstart";
+ hmBrowser.touchend = "touchend";
+ break;
+ case "mstouchpoints":
+ hmBrowser.touchstart = "MSPointerDown";
+ hmBrowser.touchend = "MSPointerUp";
+ break;
+ case "touchpoints":
+ hmBrowser.touchstart = "pointerdown";
+ hmBrowser.touchend = "pointerup";
+ break;
+ }
+ } catch(e) {}
diff --git a/kedo/helpman_topicinit.js b/kedo/helpman_topicinit.js
new file mode 100644
index 0000000..e795037
--- /dev/null
+++ b/kedo/helpman_topicinit.js
@@ -0,0 +1,454 @@
+/* --------------- Script (c) 2006-2015 EC Software ---------------
+This script was created by Help & Manual. It is designed for use
+in combination with the output of Help & Manual and must not
+be used outside this context. http://www.helpandmanual.com
+
+Do not modify this file! It will be overwritten by Help & Manual.
+-----------------------------------------------------------------*/
+
+var topicInitScriptAvailable = true;
+var HMToggles = new Array();
+var HMGallery = new Array();
+var HMTogglesAllExpanded = false;
+
+function hmmin(v1, v2) { if (v1v2) return v1; return v2 }
+
+var HMSyncTOC = function(indexPageUrl, selfUrl) {
+ if (location.search.lastIndexOf("toc=0")<=0) {
+ if (parent.hmNavigationFrame) { parent.lazysync(selfUrl); }
+ else if ((hmForceRedirect) && (parent.location) && (parent.location.href)) { parent.location.href = indexPageUrl+'?'+selfUrl; }
+ }
+}
+
+var HMToggleExpandAll = function(value) {
+ if (HMToggles.length != null){
+ for (i=0; i').insertBefore(obj);
+ else $(dummy).css('display', 'block');
+ $(dummy).css('display', 'none');
+ }
+ });
+ }
+ }
+ else {
+ obj.style.display = (value ? "block" : "none");
+ }
+}
+
+var HMToggleExpandPicture = function(obj, value, animate) {
+ var oldFile = (value ? obj.getAttribute("hm.src0") : obj.getAttribute("hm.src1"));
+ var newFile = (value ? obj.getAttribute("hm.src1") : obj.getAttribute("hm.src0"));
+ var newSrc = obj.src.replace(oldFile, newFile);
+ var isToggleIcon = (obj.getAttribute("hm.type")=="dropdown");
+
+ if ((!isToggleIcon) && (animate)) {
+ $(obj).stop();
+
+ var newImg = new Image();
+ newImg.onload = function() {
+ var newWidth = newImg.width;
+ var newHeight = newImg.height;
+ var oldWidth = obj.width;
+ var oldHeight = obj.height;
+
+ if ((newWidth > 0) && (newHeight > 0)) {
+ if ((newWidth == oldWidth) && (newHeight == oldHeight)) {
+ obj.src = newSrc;
+ }
+ else {
+ $(obj).animate({ width: newWidth, height: newHeight }, 'fast', function() {
+ obj.src = newSrc;
+ });
+ }
+ }
+ };
+ newImg.src = newSrc;
+ }
+ else {
+ obj.src = newSrc;
+ }
+ var newTitle = (value ? obj.getAttribute("hm.title1") : obj.getAttribute("hm.title0"));
+ if (newTitle != null) { obj.title = newTitle; }
+ var newCaption = (value ? obj.getAttribute("hm.caption1") : obj.getAttribute("hm.caption0"));
+ if (newCaption != null) { obj.parentNode.parentNode.parentNode.nextSibling.firstChild.firstChild.innerHTML = newCaption; }
+}
+
+var HMShowPictureLightbox = function(objID) {
+ var obj = document.getElementById(objID); /* our clicked */
+
+ var startL = $(obj).offset().left;
+ var startT = $(obj).offset().top;
+ var startW = $(obj).outerWidth();
+ var startH = $(obj).outerHeight();
+
+ var oldFile = obj.getAttribute("hm.src0");
+ var newFile = obj.getAttribute("hm.src1");
+ var newSrc = obj.src.replace(oldFile, newFile);
+ var newTitle = obj.getAttribute("hm.title1");
+ var newCaption = obj.getAttribute("hm.caption1");
+
+ var htmlCode = '';
+ var imgPreloader = new Image();
+ imgPreloader.onload = function() {
+ HMShowLightbox(htmlCode, startL, startT, startW, startH, imgPreloader.width, imgPreloader.height, newCaption, true, false);
+ };
+ imgPreloader.src = newSrc;
+
+}
+
+var HMShowVideoLightbox = function(event, obj, htmlcode, vWidth, vHeight) {
+ var startL = $(obj).offset().left;
+ var startT = $(obj).offset().top;
+ var startW = $(obj).outerWidth();
+ var startH = $(obj).outerHeight();
+
+ if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } //MSIE
+
+ HMShowLightbox(htmlcode, startL, startT, startW, startH, vWidth, vHeight, '', false, true);
+}
+
+var HMShowLightbox = function(htmlCode, startL, startT, startW, startH, endW, endH, newCaption, doAnimate, isVideo) {
+ /* Find our scope:
+ * 1) Is this an orphan window or part of a webhelp frame?
+ * 2) If it is a webhelp frame, is it an iframe or classic ?
+ * 3) Can we do cross-frame scripting? (not possible in Chrome locally)
+ */
+ var parentScope = ((parent.hmNavigationFrame) && (parent.document.getElementById('hmnavigation')) && (parent.document.getElementById('hmnavigation').nodeName.toLowerCase()=='iframe'));
+ var lightboxWindow = $(window);
+ var lightboxDocument = $(document);
+ var lightboxBody = $('body');
+ var lighboxScrollLayer = null;
+ if (parentScope) { /* use entire window for lightbox */
+ lightboxBody = parent.$('body');
+ lightboxDocument = parent.$(document);
+ lightboxWindow = parent.window;
+ }
+
+ $(lightboxBody).prepend('');
+ var lightboxBackground = parentScope ? parent.$('#hmlightboxbackground') : $('#hmlightboxbackground');
+ lightboxBackground.css('opacity', '0.5');
+
+ if (parentScope) {
+ $(lightboxBody).prepend('');
+ lighboxScrollLayer = parent.$('#hmlightboxscrolllayer');
+ lightboxBody = lighboxScrollLayer;
+ }
+
+ $(lightboxBody).prepend('');
+ var lightbox = parentScope ? parent.$('#hmlightbox') : $('#hmlightbox');
+ var lightboxObject = $(htmlCode).appendTo(lightbox);
+ var lightboxCaption = null;
+ if (newCaption != null) {
+ $(lightbox).append('
' +newCaption+ '
');
+ lightboxCaption = parentScope ? parent.$('#hmlightboxcaption') : $('#hmlightboxcaption');
+ }
+
+ var lightboxSpeed = 300;
+ var sizeStart; /* keep initial size for hide animation */
+ var maxW = endW;
+ var maxH = endH;
+ if (hmLightboxConstrained) {
+ if (endW > ($(lightboxWindow).width()-40)) {
+ endW = $(lightboxWindow).width()-40;
+ if (endW < (maxW/2)) endW = maxW/2;
+ endH = maxH * endW / maxW;
+ }
+ }
+
+ lightboxObject.css({'width': endW+'px', 'height': endH+'px'});
+ if (lightboxCaption!=null) lightboxCaption.css('width', endW+'px');
+
+ if (hmAnimate&&doAnimate) {
+ var sizeEnd = lightboxGetsize();
+ if (lightboxCaption!=null) lightboxCaption.css('display', 'none'); /* hide caption during animation */
+ lightboxObject.css({'width': startW + 'px', 'height': startH + 'px'});
+ sizeStart = lightboxGetsize();
+ lightboxResize();
+
+ sizeStart[0] = startL;
+ sizeStart[1] = startT;
+ if (parentScope) {
+ sizeStart[0] = sizeStart[0] + parent.$('#hmcontent').offset().left - $(document).scrollLeft();
+ sizeStart[1] = sizeStart[1] + parent.$('#hmcontent').offset().top - $(document).scrollTop();
+ }
+ lightbox.css({'left': sizeStart[0]+'px', 'top': sizeStart[1]+'px'});
+ lightbox.show();
+
+ lightbox.animate({ left: sizeEnd[0]-lightboxObject.position().left, top: sizeEnd[1]-lightboxObject.position().top },
+ lightboxSpeed,
+ function() {
+ if (lightboxCaption!=null) lightboxCaption.css('display', 'block');
+ }
+ );
+
+ lightboxObject.animate({ width: endW, height: endH }, lightboxSpeed);
+ }
+ else {
+ var sizeEnd = lightboxGetsize();
+ lightboxResize();
+ lightbox.show();
+ }
+
+ $(lightboxWindow).bind('resize.hmlightbox', lightboxResize);
+ $(lightboxWindow).bind('scroll.hmlightbox', lightboxScroll);
+ $(lightboxBody).bind('click.hmlightbox', lightboxClick);
+ $(lightboxBody).bind('keydown.hmlightbox', lightboxKeydown);
+ $(lightbox).focus();
+
+ function lightboxScroll() {
+ lightboxBackground.css('width', (($(lightboxDocument).scrollLeft() > 0) ? $(lightboxDocument).width() : $(lightboxWindow).width()) +'px');
+ lightboxBackground.css('height', (($(lightboxDocument).scrollTop() > 0) ? $(lightboxDocument).height() : $(lightboxWindow).height()) +'px');
+ }
+
+ function lightboxResize() {
+ if (hmLightboxConstrained) {
+ var tmpW = endW;
+ endW = $(lightboxWindow).width()-40;
+ if (endW > maxW) endW = maxW;
+ else if (endW < (maxW/2)) endW = maxW/2;
+ if (tmpW != endW) {
+ endH = maxH * endW / maxW;
+ lightboxObject.css({'width': endW+'px', 'height': endH+'px'});
+ if (lightboxCaption!=null) lightboxCaption.css('width', endW+'px');
+ }
+ }
+
+ var size = lightboxGetsize();
+ lightbox.css({left: size[0]+'px', top:size[1]+'px'});
+
+ if (lighboxScrollLayer!=null) {
+ lighboxScrollLayer.css({'width': $(lightboxWindow).width()+'px', 'height': $(lightboxWindow).height()+'px'});
+ }
+ lightboxScroll();
+ }
+
+ function lightboxGetsize() {
+ var lbW = lightbox.width();
+ var lbH = lightbox.height();
+
+ if (isVideo) {
+ lbW = endW;
+ lbH = endH;
+ }
+ var newW = hmmax(lbW + 40, lightboxDocument.width());
+ var newH = hmmax(lbH + 40, lightboxDocument.height());
+
+ var newL = hmmax(20, parseInt(($(lightboxWindow).width() - lbW)/2) + (parentScope ? 0 : lightboxDocument.scrollLeft()));
+ var newT = hmmax(20, parseInt(($(lightboxWindow).height() - lbH)/2) + (parentScope ? 0 : lightboxDocument.scrollTop()));
+
+ var size = new Array(newL, newT, lbW, lbH);
+ return size;
+ }
+
+ function lightboxKeydown(e) {
+ if (e.keyCode == 27) lightboxClose();
+ }
+
+ function lightboxClick(e) {
+ var canClose = (!isVideo) ||
+ (e.pageX < lightbox.position().left) || (e.pageY < lightbox.position().top) ||
+ (e.pageX > lightbox.position().left+lightbox.width()) || (e.pageY > lightbox.position().top+lightbox.height());
+ if (canClose) lightboxClose();
+ }
+
+ function lightboxClose() {
+ if (hmAnimate&&doAnimate) {
+ if (lightboxCaption!=null) lightboxCaption.css('display', 'none'); /* hide caption during animation */
+ lightboxObject.animate({ width: startW, height: startH }, lightboxSpeed);
+ lightbox.animate({ left: sizeStart[0]-lightboxObject.position().left, top: sizeStart[1]-lightboxObject.position().top },
+ lightboxSpeed,
+ function() {
+ lightbox.remove();
+ if (lighboxScrollLayer!=null) lighboxScrollLayer.remove();
+ lightboxBackground.remove();
+ }
+ );
+ }
+ else {
+ lightbox.remove();
+ if (lighboxScrollLayer!=null) lighboxScrollLayer.remove();
+ lightboxBackground.remove();
+ }
+ $(lightboxWindow).unbind('.hmlightbox');
+ $(lightboxBody).unbind('.hmlightbox');
+ }
+
+}
+
+
+
+var HMSearchCheck = function(obj) {
+ var foundHilite = window.location.search.lastIndexOf("zoom_highlight") > 0;
+ if (!foundHilite) {
+ var fontTags = obj.getElementsByTagName("FONT");
+if (fontTags.length == 0)
+fontTags = obj.getElementsByTagName("font");
+ if (fontTags.length > 0) {
+ var hStyle = "";
+ for (var cCheck = 0; cCheck < fontTags.length; cCheck++) {
+ hStyle = fontTags[cCheck].style.cssText;
+ if (hStyle.indexOf("BACKGROUND-COLOR") == 0 || hStyle.indexOf("background-color") == 0) {
+ foundHilite = true;
+ break;
+ }
+ }
+ }
+ }
+ return foundHilite;
+}
+
+var HMInitToggle = function() {
+ if (document.getElementById) {
+ var node = document.getElementById(HMInitToggle.arguments[0]);
+ var isPicture = false;
+ for (i=1; i0) {
+ if (parent.gaaccount) { parent.track("exit", obj.href); }
+ }
+}
+
+var hmshowPopup = function(event, txt, trigger) {
+
+ $('#hmpopupdiv').stop().remove();
+
+ var pop = $('').appendTo('body');
+ if (hmPopupSticky) {
+ $('body').bind(hmBrowser.touchend + '.hmpopup', hmhidePopup);
+ $('body').bind('keydown.hmpopup', function(e) { if (e.keyCode == 27) hmhidePopup(); } );
+ }
+ pop.html(txt);
+ var posLeft = event.clientX+$(document).scrollLeft();
+ var posTop = event.clientY+$(document).scrollTop();
+
+ var maxW = $(window).width()/1.5;
+ var w = pop.width();
+ if (w > maxW) pop.width(maxW);
+ var t = 20 + posTop;
+ var l = (posLeft - w/2);
+ if (l < 10) l = 10;
+ if ((l + pop.outerWidth()) > $(window).width()) l = $(window).width() - pop.outerWidth();
+ if (l < 0) l = 0;
+ pop.css( { left: l+'px', top: t+'px'} );
+ if (hmAnimate) pop.show('fast');
+ else pop.show();
+}
+
+var hmhidePopup = function() {
+ if (hmPopupSticky) $("body").unbind(".hmpopup");
+ var pop = $('#hmpopupdiv');
+ if (pop.length>0) { //hide, don't remove
+ if (hmAnimate) pop.hide('fast');
+ else $(hmpopupdiv).hide();
+ }
+}
\ No newline at end of file
diff --git a/kedo/highlight.js b/kedo/highlight.js
new file mode 100644
index 0000000..75ceb42
--- /dev/null
+++ b/kedo/highlight.js
@@ -0,0 +1,326 @@
+// ----------------------------------------------------------------------------
+// Zoom Search Engine 7.0 (10/Apr/2014)
+// Highlight & auto-scroll script (DOM version)
+//
+// email: zoom@wrensoft.com
+// www: http://www.wrensoft.com
+//
+// Copyright (C) Wrensoft 2014
+// ----------------------------------------------------------------------------
+// Use this script to allow your search matches to highlight and scroll to
+// the matched word on the actual web page where it was found.
+//
+// You will need to link to this JS file from each page of your site
+// which requires the "highlight/jump to matched word" feature.
+//
+// For example, you could paste the following HTML in your site's header or
+// footer:
+//
+//
+//
+//
+// Note: You will need to specify the correct path to "highlight.js" depending
+// on where the file is located.
+//
+// You will then need to modify the BODY tag on your page to include an "onLoad"
+// attribute, such as:
+//
+//
+//
+// If for some reason you can not modify the body tag of your page, an alternative
+// would be to put the following line after the tag of your page:
+//
+//
+//
+// For more information, consult the Users Guide and our support website at:
+// http://www.wrensoft.com/zoom/support
+
+// ----------------------------------------------------------------------------
+// Script options
+// ----------------------------------------------------------------------------
+
+// If you wish to disable the jump functionality which scrolls the browser
+// to the first occurance of the matched word, change this setting to false
+var JumpToFirstOccurance = true;
+
+// For debugging purposes, disable the following
+var CatchJSErrors = true;
+
+// This option skips highlighting withing blocks marked by ZOOMSTOP and
+// ZOOMRESTART tags.
+var SkipZoomStops = true;
+
+// ----------------------------------------------------------------------------
+// Main script
+// ----------------------------------------------------------------------------
+
+var IsZoomStop = 0;
+
+function catcherror() { return true; }
+if (CatchJSErrors)
+ window.onerror = catcherror;
+
+function QueryString(key)
+{
+ var value = null;
+ for (var i=0;i= 0)
+ {
+ var argname = pairs[i].substring(0,pos);
+ var value = pairs[i].substring(pos+1);
+ QueryString.keys[QueryString.keys.length] = argname;
+ QueryString.values[QueryString.values.length] = value;
+ }
+ }
+}
+
+QueryString.keys = new Array();
+QueryString.values = new Array();
+
+QueryString_Parse();
+
+function getElement(id)
+{
+ if (document.getElementById)
+ return(document.getElementById(id));
+ else if (document.all)
+ return(document.all[id]);
+}
+
+function findPosY(obj)
+{
+ var curtop = 0;
+ if (obj.offsetParent)
+ {
+ while (obj.offsetParent)
+ {
+ curtop += obj.offsetTop
+ obj = obj.offsetParent;
+ }
+ }
+ else if (obj.y)
+ curtop += obj.y;
+ return curtop;
+}
+
+function ZRetrieveQuery()
+{
+ var SearchAsSubstring = 0;
+ var hl;
+ var terms;
+
+ hl = QueryString("zoom_highlight");
+ if (hl == "" || hl == null)
+ {
+ hl = QueryString("zoom_highlightsub");
+ if (hl == "" || hl == null)
+ return false;
+ else
+ SearchAsSubstring = 1;
+ }
+ if ((document.charset && document.charset == "utf-8") ||
+ (document.characterSet && document.characterSet == "UTF-8"))
+ hl = decodeURIComponent(hl);
+ else
+ hl = unescape(hl);
+ hl = hl.toLowerCase();
+
+ // create array of terms
+ //var term = hl.split("+");
+ var re = /\"(.*?)\"|[^\\+\"]+/g;
+ terms = hl.match(re);
+
+ // convert terms in regexp patterns
+ for (var i=0;i[\\s]*|>[^<]+[\\b\\W])("+terms[i]+")(<|[\\b\\W][^>]*<)";
+ }
+ else
+ {
+ // if term leads with wildcard then allow it to match preceeding text in word
+ var strWB="";
+ if(terms[i].substr(0,7)=="[^\\s]*") strWB="\\b";
+ terms[i] = "(>|>[^<]+)"+strWB+"("+terms[i]+")([^>]*<)";
+ }
+ }
+ }
+ }
+ return terms;
+}
+
+// regular expression version
+function ZHighlightText(terms, text)
+{
+ text=text.replace(/&/ig, '&');
+ text=text.replace(/ /ig, '');
+ text=text.replace(//ig, '>');
+
+ for (var i=0; i<
+ // and we add before each found to ignore those done etc
+ // todo: develop reliable single pass regexp and dispose of loop
+ var l = 0;
+ re = new RegExp(terms[i], "gi");
+ var count = 0; // just incase
+
+ // Correction by Tim Green for bug with pointed brackets inside the hilighted text node
+ text = text.replace(/<(?![\/]?span)/g, "<");
+ text = text.replace(">",">");
+ text = text.replace(/span>/g, 'span>');
+ text = text.replace(/"highlight">/g, '"highlight">');
+ // Correction end
+
+ text = ">" + text + "<"; // temporary tag marks
+ do
+ {
+ l=text.length;
+ text=text.replace(re, '$1$2$3');
+ count++;
+ }
+ //while(re.lastIndex>0 && count<100); lastIndex not set properly under netscape
+ while(l!=text.length && count<100);
+ text = text.substring(1, text.length-1); // remove temporary tags
+ }
+ }
+ text = text.replace(eval("//g"), '');
+ text = text.replace(eval("//g"), ' ');
+
+ return(text);
+}
+
+function jumpHL()
+{
+ var d = getElement("highlight");
+ if (d)
+ {
+ if (d.scrollIntoView)
+ {
+ d.scrollIntoView();
+ }
+ else
+ {
+ var y = findPosY(d);
+ // if element near top of page
+ if (y < 100)
+ window.scrollTo(0,0); // go to top of page
+ else
+ window.scrollTo(0,y-50); // show space of 50 above
+ }
+ }
+}
+
+function ZHighlightReplace(q, node)
+{
+ var node_value = node.nodeValue;
+ var newtext = ZHighlightText(q, node_value);
+ if (newtext != node_value)
+ {
+ var repl = document.createElement('span');
+ repl.innerHTML = newtext;
+ node.parentNode.replaceChild(repl, node);
+ }
+}
+
+function ZHighlightSearch(q, root)
+{
+ if (!root)
+ root = document.body.childNodes;
+
+ for (var i = 0, j = root.length; i < j; i++)
+ {
+ ZHighlightSearch(q, root[i].childNodes);
+
+ if (SkipZoomStops && root[i].nodeType === 8)
+ {
+ if (root[i].nodeValue == "ZOOMSTOP")
+ IsZoomStop = 1;
+ else if (root[i].nodeValue == "ZOOMRESTART")
+ IsZoomStop = 0;
+ }
+
+ if (IsZoomStop == 0 && root[i].nodeType === 3)
+ {
+ ZHighlightReplace(q, root[i]);
+ }
+ }
+}
+
+function highlight()
+{
+ if (!"".match) // check if browser supports regexp match() function
+ return;
+ if (document.body)
+ {
+ var terms = ZRetrieveQuery();
+ if (terms != false)
+ {
+ IsZoomStop = 0;
+ ZHighlightSearch(terms);
+ if (JumpToFirstOccurance)
+ jumpHL();
+ }
+ }
+}
diff --git a/kedo/hmcontextids.js b/kedo/hmcontextids.js
new file mode 100644
index 0000000..daa5497
--- /dev/null
+++ b/kedo/hmcontextids.js
@@ -0,0 +1,14 @@
+var hmContextIds = new Array();
+function hmGetContextId(query) {
+ var urlParams;
+ var match,
+ pl = /\+/g,
+ search = /([^&=]+)=?([^&]*)/g,
+ decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
+ params = {};
+ while (match = search.exec(query))
+ params[decode(match[1])] = decode(match[2]);
+ if (params["contextid"]) return decodeURIComponent(hmContextIds[params["contextid"]]);
+ else return "";
+}
+
diff --git a/kedo/hmftsearch.html b/kedo/hmftsearch.html
new file mode 100644
index 0000000..d8af20c
--- /dev/null
+++ b/kedo/hmftsearch.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kedo/index-static.html b/kedo/index-static.html
new file mode 100644
index 0000000..428e932
--- /dev/null
+++ b/kedo/index-static.html
@@ -0,0 +1,930 @@
+
+
+
Быстрая настройка приложения и бизнес‑процесса. Знакомство с основными функциями системы. Обзор инструментов мониторинга и построения отчётов. Контроль исполнительской дисциплины.
Создание и переназначение задач, определение сроков работ, контроль выполнения. Лента сообщений, чаты и каналы. Исполнительская дисциплина. Мобильное приложение, приложение для ПК.
Создание процессов в low-code дизайнере. Табличные и графические процессы. Инструменты
+ проверки и отладки. Публикация. Контроль выполнения, монитор процессов.
Управление сделками, воронки продаж, отчеты, динамика сделок и прогнозы поступлений. База
+ данных компаний и контактов. IP-телефония. Разграничение доступа.
Приложение типа «Документ». Номенклатура и регистрация. Готовые маршруты
+ согласования и ознакомления. Генерация по шаблону. Собственные маршруты. Электронная
+ подпись. Настройки доступа.
Создание процессов в low-code дизайнере. Табличные и графические процессы. Инструменты проверки и отладки. Публикация. Контроль выполнения, монитор процессов.
Создание линий, подключение к мессенджерам, работа внешних и внутренних пользователей, обработка обращений, управление проблемами, уровнем услуг, отчеты.
+
Системные требования, установка и обновление. Дизайнер, Оркестратор, Бот. Моделирование процессов воспроизведение процессов. Интеграция с внешними системами АПИ.
+
Готовые и пользовательские модули. Создание и настройка модуля. Виджеты, методы API, действия в модулях. Обработка событий. Пользовательские микросервисы.
+
Введение в API. Описание методов API. Сценарии на TypeScript. Интерфейсы объектов, доступные из сценариев. Базовые типы данных. Глобальные константы. Методы для работы с объектами системы.
+
Лицензирование. Порядок активации. Управление пользователями. Группы и роли. Права доступа. Настройки компании, настройки безопасности. Оповещения. Рабочий календарь.
+
Архитектура ELMA365. Масштабирование ELMA365. Системные требования для ELMA365 Standard, ELMA365 Enterprise. Требования к рабочему месту пользователя.
+
Управление договорами. Электронная подпись. КриптоПро, НУЦ. Модуль Диадок. Интеграция с OnlyOffice. Alytics. Телефония. Интеграция с Active Directory/LDAP. SAML. Сервис Аудит безопасности.
+
+
+
+
+
+
+
+
Показать всё
+
+
+
+
Часто задаваемые вопросы
+
+
+
+
+
1
+
+ Как очистить конфигурацию от тестовых данных?
+
+
+
+ Ответ: Такой возможности нет. Для получения новой конфигурации без данных, необходимо зарегистрировать новую компанию на сайте elma365.com, нажав на кнопку «Попробовать». Отдельно можно удалить в корзину разделы и приложения, а также
+ массово удалить элементы приложений.
+
+
+
+
+
2
+
+ Я экспортировал конфигурацию в разделе Администрирование > Экспорт конфигурации. Как эту конфигурацию импортировать в другую Компанию или на другой сервер ELMA365?
+
+
+
+ Ответ: Импортировать всю конфигурацию нет возможности. Экспорт конфигурации предусмотрен для передачи данных в техническую поддержку с целью анализа определённых ошибок. Рекомендуем создать
+ решение, включающее разделы и приложения, и экспортировать, а затем импортировать это решение.
+
Быстрая настройка приложения и бизнес‑процесса. Знакомство с основными функциями системы. Обзор инструментов мониторинга и построения отчётов. Контроль исполнительской дисциплины.
Создание и переназначение задач, определение сроков работ, контроль выполнения. Лента сообщений, чаты и каналы. Исполнительская дисциплина. Мобильное приложение, приложение для ПК.
Создание процессов в low-code дизайнере. Табличные и графические процессы. Инструменты
+ проверки и отладки. Публикация. Контроль выполнения, монитор процессов.
Управление сделками, воронки продаж, отчеты, динамика сделок и прогнозы поступлений. База
+ данных компаний и контактов. IP-телефония. Разграничение доступа.
Приложение типа «Документ». Номенклатура и регистрация. Готовые маршруты
+ согласования и ознакомления. Генерация по шаблону. Собственные маршруты. Электронная
+ подпись. Настройки доступа.
Создание процессов в low-code дизайнере. Табличные и графические процессы. Инструменты проверки и отладки. Публикация. Контроль выполнения, монитор процессов.
Создание линий, подключение к мессенджерам, работа внешних и внутренних пользователей, обработка обращений, управление проблемами, уровнем услуг, отчеты.
+
Системные требования, установка и обновление. Дизайнер, Оркестратор, Бот. Моделирование процессов воспроизведение процессов. Интеграция с внешними системами АПИ.
+
Готовые и пользовательские модули. Создание и настройка модуля. Виджеты, методы API, действия в модулях. Обработка событий. Пользовательские микросервисы.
+
Введение в API. Описание методов API. Сценарии на TypeScript. Интерфейсы объектов, доступные из сценариев. Базовые типы данных. Глобальные константы. Методы для работы с объектами системы.
+
Лицензирование. Порядок активации. Управление пользователями. Группы и роли. Права доступа. Настройки компании, настройки безопасности. Оповещения. Рабочий календарь.
+
Архитектура ELMA365. Масштабирование ELMA365. Системные требования для ELMA365 Standard, ELMA365 Enterprise. Требования к рабочему месту пользователя.
+
Управление договорами. Электронная подпись. КриптоПро, НУЦ. Модуль Диадок. Интеграция с OnlyOffice. Alytics. Телефония. Интеграция с Active Directory/LDAP. SAML. Сервис Аудит безопасности.
+
+
+
+
+
+
+
+
Показать всё
+
+
+
+
Часто задаваемые вопросы
+
+
+
+
+
1
+
+ Как очистить конфигурацию от тестовых данных?
+
+
+
+ Ответ: Такой возможности нет. Для получения новой конфигурации без данных, необходимо зарегистрировать новую компанию на сайте elma365.com, нажав на кнопку «Попробовать». Отдельно можно удалить в корзину разделы и приложения, а также
+ массово удалить элементы приложений.
+
+
+
+
+
2
+
+ Я экспортировал конфигурацию в разделе Администрирование > Экспорт конфигурации. Как эту конфигурацию импортировать в другую Компанию или на другой сервер ELMA365?
+
+
+
+ Ответ: Импортировать всю конфигурацию нет возможности. Экспорт конфигурации предусмотрен для передачи данных в техническую поддержку с целью анализа определённых ошибок. Рекомендуем создать
+ решение, включающее разделы и приложения, и экспортировать, а затем импортировать это решение.
+
").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("