Version 5.2 by superadmin on 2026/06/15 21:57

Show last authors
1 Инструменты раздела [[doc:ui.Параметры узла.Инциденты.WebHome]] (вкладка **Обработка инцидентов**) позволяют задать схему обработки инцидентов оператором [[neyross.АРМ НЕЙРОСС Центр.WebHome]]. Вы можете выполнить загрузку готовой схемы обработки или сформировать схему непосредственно из веб-интерфейса с помощью встроенного редактора.
2
3 {{info}}
4 **Переход к функционалу**:
5
6 * С версии 20.40 ~[[[doc:ui.Рабочий стол НЕЙРОСС.Изменения интерфейса НЕЙРОСС.WebHome]]]: [[doc:ui.Рабочий стол НЕЙРОСС.WebHome]] > [[doc:ui.Параметры узла.WebHome]] > Инциденты > вкладка Обработка инцидентов.
7 * До версии 20.39 включительно: [[doc:ui.Рабочий стол НЕЙРОСС.WebHome]] > Конфигурация узлов > Ситуационный центр > вкладка Обработка инцидентов.
8 {{/info}}
9
10 {{info}}
11 Возможна полностью автоматическая обработка событий, например, события технической неисправности могут автоматически адресоваться службе эксплуатации. В этом случае воспользуйтесь сервисом автоматизации ~[[[neyross.НЕЙРОСС Автоматика.WebHome]]].
12 {{/info}}
13
14 [[image:attach:ui.Параметры узла.WebHome@content.png||thumbnail="true" height="10"]] Содержание:
15
16 {{toc/}}
17
18 == {{id name="Настройкасхемыобработкиинцидентов-Общиесведения"/}}Общие сведения ==
19
20 Платформа НЕЙРОСС обеспечивает возможность выбора схемы обработки инцидентов в зависимости от условий возникновения события и шагов оператора, выполняющего обработку, согласно заданному сценарию, с подсказкой оператору по шагам обработки и контролем действий оператора. (%%)Предустановлена стандартная схема обработки: оператор принимает инцидент в обработку, самостоятельно изучает состояния и события элементов, просматривает «живое» видео и видеоархив, формирует фото- и видеоматериалы, выполняет управляющие команды, формирует текстовый комментарий к инциденту и завершает его обработку.
21
22 {{info}}
23 При необходимости использования более сложного сценария обработки (с разветвлением и инструкциями оператору по шагам обработки) вы можете самостоятельно разработать такой сценарий или оформить заявку на разработку нестандартного многошагового алгоритма. Для работы в режиме PSIM (обработки события по алгоритму), требуется приобретение соответствующей лицензии ~[[[neyross.Лицензирование | Платформа НЕЙРОСС.WebHome]]].
24 {{/info}}
25
26 Запуск задачи обработки осуществляется при возникновении события, удовлетворяющего конкретному фильтру. Таким образом, с(%%)оздавая пары [фильтр + алгоритм обработки], можно распределять инциденты по операторам и назначать разные схемы обработки разным типам событий. Обработка событий может быть частично или полностью автоматизирована. К пользовательским шагам обработки относится: отметка о выполнении заданного действия, заполнение формы, добавление комментария, вынос резолюции по инциденту, возможность скачать отчёт по инциденту. К автоматическим шагам обработки относится: возможность «привязать» архивные скриншоты, выполнить произвольный SCALA-скрипт, сформировать отчёт по инциденту и отправить на заданную почту.
27
28 **Порядок настройки:**
29
30 1. **Рисование схемы
31 **Для рисования базовой схемы (каркаса) рекомендуется использовать встроенный редактор BPMN-схем. 
32 \\
33 1. **Дополнение схемы
34 **Для всех автоматических и пользовательских шагов с помощью атрибутов настройте параметры шага. Для всех операторов ветвления нужно задать условия ветвления. Также необходимо указать уникальный идентификатор процесса. 
35 \\
36 1. **Добавление фильтра
37 **Требуется задать условия запуска процесса обработки по заданному сценарию — фильтр отбора целевых событий.
38
39 Каждая схема должна содержать **Стартовое событие**, которое иницилизирует запуск процесса в нотации BPMN изображается в виде круга, а также **Конечное событие** — изображается в виде «жирного» круга. Для упрощения действий администратора по созданию сценария обработки, в Платформе НЕЙРОСС при создании алгоритма ему автоматически присваивается типовая схема, содержащая обязательные шаги и шаг ручного завершения оператором процедуры обработки инцидента.
40
41 [[image:attach:processing_scheme_start.png||width="500"]]
42
43 Вся логика работы (ход) процесса выражается во всевозможных элементах, расположенных между Стартовым и Конечным событием. Достаточно добавить типовые шаги обработки и настроить их параметры.
44
45 [[image:attach:processing_scheme_standart.png||width="800"]]
46 //Пример схемы с автоматическим формированием фотоматериалов и выгрузкой отчёта в формате PDF//
47 \\
48
49 [[image:attach:algorithms.png||width="800"]]
50
51 //Пример сложной разветвлённой схемы обработки инцидентов АвтоКПП//
52
53 == {{id name="Настройкасхемыобработкиинцидентов-Созданиесхемыобработки"/}}(% class="auto-cursor-target" %)Создание схемы обработки(%%) ==
54
55 В блоке **Алгоритмы обработки** нажмите на кнопку [[image:attach:btn_plus_new.png]] для добавления нового алгоритма.
56
57 В отобразившемся окне:
58
59 [[image:attach:algorithm_add.png||width="450"]]
60
61 1. В поле **Название** введите произвольное текстовое название нового алгоритма.
62 1. (((
63 В поле **Фильтр по событиям** из раскрывающегося списка выберите фильтр событий.
64
65 {{info}}
66 Фильтр событий позволяет разделить все входящие события на несколько потоков и для каждого потока в отдельности задать свой алгоритм обработки. Фильтры настраиваются в разделе [[doc:ui.Параметры узла.События и фильтры.WebHome]]. Для перехода к разделу вы также можете воспользоваться кнопкой **Настроить фильтры [[image:attach:filtr_btn.png]].**
67 {{/info}}
68 )))
69 1. Нажмите на кнопку **Добавить и начать редактировать**. Будет создан новый алгоритм со стандартной схемой обработки.
70
71 \\
72
73 Загрузите готовую схему обработки или создайте её с помощью редактора
74
75 1. [[Загрузить готовую схему обработки>>doc:WebHome]]
76 1. [[Создать схему с помощью редактора>>doc:||anchor="Настройкасхемыобработкиинцидентов-Редакторсхемобработки"]]
77
78 === {{id name="Настройкасхемыобработкиинцидентов-Загрузкаготовойсхемыобработки"/}}Загрузка готовой схемы обработки ===
79
80 Вы можете загрузить готовый XML-файл схемы, а также вставить исходный код с помощью текстового редактора.
81
82 **Загрузка файла**
83
84 1. В поле **Описание схемы** нажмите на кнопку **Выбрать файл** и укажите файл XML-описания алгоритма обработки. Будет загружен графический вид схемы.
85 1. Нажмите на кнопку **Сохранить**.
86
87 **Загрузка исходного кода**
88
89 1. Скопируйте исходный код схемы в буфер обмена.
90 1. В поле **Описание схемы** нажмите на кнопку **Открыть редактор**.
91 1. На вкладке **Текстовый редактор** вставьте код схемы из буфера обмена.
92 1. Нажмите на кнопку **Сохранить**.
93
94 {{info}}
95 Подробная информация по работе с редактором схем обработки приведена ниже.
96 {{/info}}
97
98 \\
99
100 === {{id name="Настройкасхемыобработкиинцидентов-Созданиесхемывредакторе"/}}Создание схемы в редакторе ===
101
102 В поле **Описание схемы** нажмите на кнопку **Открыть редактор**.
103 [[image:attach:processing_redactor_open.png||height="57"]]
104
105 В отобразившемся [[окне редактора схем>>doc:||anchor="Настройкасхемыобработкиинцидентов-Окноредакторасхем"]]:
106
107 1. (((
108 Сформируйте каркас схемы обработки [3] при помощи готовых элементов, доступных на панели элементов [2], задайте последовательность шагов. Рекомендуется использовать базовую схему с шагами запуска и завершения инцидента и дополнить её готовыми или произвольными шагами обработки. Для обеспечения «ветвления» алгоритма — выбор «ветки» в зависимости от заданных оператором условий — предусмотрен оператор ветвления.
109
110 {{info title="Перечень готовых элементов схемы обработки"}}
111 [[#Готовые элементы схемы обработки>>doc:||anchor="Настройкасхемыобработкиинцидентов-Готовыеэлементысхемыобработки"]]
112 {{/info}}
113 )))
114 1. На панели свойств [5] измените, при необходимости, уникальный идентификатор каждого шага и потока, укажите параметры.
115 1. Перейдите к вкладке **Текстовый редактор** [1] задайте дополнительные параметры элементов, условия ветвления.
116 [[image:attach:processing_scheme_text.png||width="800"]]
117 1. (((
118 Нажмите на кнопку **Сохранить**.
119
120 {{info}}
121 В процессе сохранения выполняется валидация алгоритма. Если найдены ошибки, сохранение не выполняется. Проверьте алгоритм и внесите необходимые изменения, повторите попытку сохранения.
122 {{/info}}
123 )))
124 1. Закройте окно редактора схем. 
125 [[image:attach:processing_redactor_close.png||width="500"]]
126
127 \\
128
129 == {{id name="Настройкасхемыобработкиинцидентов-Окноредакторасхем"/}}Окно редактора схем ==
130
131 [[image:attach:s_center_redactor_schemes.png||width="900"]]
132
133 1. **Вкладки Диаграмма и Текстовый редактор**: вкладка **Диаграмма** предоставляет графический редактор для формирования каркаса схемы, вкладка** Текстовый редактор** предоставляет доступ к коду xml-схемы с подсветкой синтаксиса, позволяет задать параметры шагов схемы.
134 1. **Панель элементов**:[[ готовые элементы схемы обработки>>doc:||anchor="Настройкасхемыобработкиинцидентов-Готовыеэлементысхемыобработки"]]; достаточно выбрать требуемый элемент и нанести на схему.
135 1. **Схема обработки**: визуальное представление схемы с указанием последовательности обработки шага; формируется автоматически в процессе добавления новых элементов; каждому элементу и потоку присваивается уникальный идентификатор, который вы можете изменить в поле id панели свойств [5].
136 1. **Элемент схемы обработки**: при выделении элемента отображаются доступные инструменты по изменению типа элемента, добавлением нового потока и проч.
137 1. **Панель свойств**: содержит базовые свойства выделенного на схеме [3] элемента ~[[[#Готовые элементы схемы обработки>>doc:||anchor="Настройкасхемыобработкиинцидентов-Готовыеэлементысхемыобработки"]]].
138 1. Кнопка **Сохранить**: сохранение схемы, в процессе сохранения выполняется валидация.
139
140 \\
141
142 == {{id name="Настройкасхемыобработкиинцидентов-Готовыеэлементысхемыобработки"/}}Готовые элементы схемы обработки ==
143
144 Платформа НЕЙРОСС предоставляет готовые элементы для построения схемы обработки инцидентов:
145
146 * пользовательские шаги: отметка о выполнении действия, заполнение формы;
147 * автоматические шаги: добавление медиаматериалов, формирование отчёта по инциденту и отправка его на электронную почту, выполнение произвольного скрипта.
148
149 Подержаны операторы условного ветвления.
150
151 |=(% colspan="4" style="text-align: left;" %)(((
152 Пользовательские шаги | User Task
153 )))
154 |=(% style="text-align: left;" %)(((
155
156 )))|=(% style="text-align: left;" %)(((
157 Шаг / Панель свойств
158 )))|=(% style="text-align: left;" %)(((
159 Описание
160 )))|=(% style="text-align: left;" %)(((
161 Пример XML-описания
162 )))
163 |(% style="text-align: left;" %)(((
164 1
165 )))|(% style="text-align: left;" %)(((
166 (((
167 Отметить выполнение действия
168
169 [[image:attach:processing_scheme_chekbox1.png||height="96"]]
170 )))
171
172 [[image:attach:processing_scheme_chekbox.png||thumbnail="true" width="200"]]
173 )))|(% style="text-align: left;" %)(((
174 Пользовательский произвольный шаг обработки, факт выполнения которого оператор фиксирует установкой флага в соответствующем поле. Задаёт алгоритм действий оператора: подсказывает последовательность шагов и контролирует их выполнение.
175
176 Инструкция оператору задаётся в поле {{code language="none"}}name{{/code}}.
177
178 В карточке инцидента отображается в виде чек-бокса с текстом. Оператор знакомится с текстом инструкции, выполняет требуемые действия. По факту завершения устанавливает флаг в поле. Система фиксирует время выполнения шага и передает управление следующему шагу.
179 )))|(% style="text-align: left;" %)(((
180 (((
181 {{code language="java"}}
182 <userTask id="view_all_around" name="Осуществить обзор территории" activiti:assignee="incident:${incidentId}" activiti:exclusive="true">
183 <extensionElements>
184 <ultima:bpmnElementExtension class="extensions.vmc.incident.SimpleIncidentTask"/>
185 </extensionElements>
186 </userTask>
187 {{/code}}
188 )))
189 )))
190 |(% style="text-align: left;" %)(((
191 2
192 )))|(% style="text-align: left;" %)(((
193 (((
194 Завершить обработку / пометить инцидент ложным
195
196 [[image:attach:processing_scheme_finish1.png||width="320"]]
197 )))
198
199 [[image:attach:processing_scheme_finish.png||thumbnail="true" width="200"]]
200 )))|(% style="text-align: left;" %)(((
201 Завершает обработку инцидента. Выносит резолюцию «Ложный» / «Подтверждённый» для инцидента.
202
203 В карточке инцидента отображается в виде виде двух кнопок: **Завершить** и **Ложный**.
204
205 Шаг включён в стандартную схему обработки.
206 )))|(% style="text-align: left;" %)(((
207 (((
208 {{code language="java"}}
209 <userTask id="finishProcessing" name="Завершить обработку" activiti:assignee="incident:${incidentId}" activiti:exclusive="true">
210 <extensionElements>
211 <ultima:bpmnElementExtension class="extensions.vmc.incident.FinishProcessingIncidentTask"/>
212 </extensionElements>
213 </userTask>
214 {{/code}}
215 )))
216 )))
217 |(% style="text-align: left;" %)(((
218 3
219 )))|(% style="text-align: left;" %)(((
220 Заполнить произвольную форму
221
222 [[image:attach:processing_scheme_form1.png||width="320"]]
223
224 [[image:attach:processing_scheme_form.png||thumbnail="true" width="200"]]
225
226 \\
227
228 \\
229
230 (((
231 \\
232 )))
233 )))|(% style="text-align: left;" %)(((
234 Позволяет оператору заполнить и отправить произвольную форму из полей типа string, long, boolean, date, enum и selectvalue. Возможно указание списка полей, обязательных к заполнению, значений по умолчанию для полей, текстовых подсказок оператору.
235
236 В карточке инцидента отображается в виде заголовка, списка полей формы и кнопки **Отправить**.
237
238 Заголовок формы задаётся в поле name для шага обработки. Параметры полей указываются отдельно: идентификатор (id), тип поля (type), заголовок поля (name), флаг обязательности (required), значение по умолчанию (default), флаг «только для чтения» (readonly).
239
240 Система фиксирует время выполнения шага и передает управление следующему шагу.
241
242 Все введённые значения доступны при обработке следующих шагов, в частности, — в зависимости от введённого оператором значения возможен выбор ветки алгоритма.
243 )))|(% style="text-align: left;" %)(((
244 (((
245 {{code language="java"}}
246 <userTask id="fill_form" name="Заполнить форму" activiti:assignee="incident:${incidentId}" activiti:exclusive="true">
247 <extensionElements>
248 <ultima:bpmnElementExtension class="extensions.vmc.incident.UserFormIncidentTask"/>
249 <activiti:formProperty id="stringValue" name="Текст" type="string" default="123"/>
250 <activiti:formProperty id="booleanValue" name="Да/Нет" type="boolean" required="true"/>
251 <activiti:formProperty type="long" name="Число" id="longValue" default="Целое число"/>
252 <activiti:formProperty id="dateValue" name="Дата" type="date"/>
253 <activiti:formProperty id="selectValue" name= "Выбор из списка" type="enum">
254 <activiti:value id="value1" name="Первое значение"/>
255 <activiti:value id="value12" name="Второе значение"/>
256 <activiti:value id="value13" name="Третье значение"/>
257 <activiti:value id="value14" name="Четвёртое значение"/>
258 </activiti:formProperty>
259 </extensionElements>
260 </userTask>
261 {{/code}}
262 )))
263 )))
264 |(% style="text-align: left;" %)(((
265 4
266 )))|(% style="text-align: left;" %)(((
267 (((
268 Запустить процесс сформирования PDF-отчета об инцидентен и сохранения его в папку загрузок браузера
269
270 [[image:attach:processing_scheme_download1.png||width="320"]]
271
272 [[image:attach:processing_scheme_download.png||thumbnail="true" width="200"]]
273 )))
274 )))|(% style="text-align: left;" %)(((
275 Позволяет оператору скачать pdf-отчёт об инциденте.
276
277 В XML-описании указывается: ключ отчёта, идентификатор источника данных и форма, которая будет использована при формировании отчёта.
278
279 В карточке инцидента отображается в виде двух кнопок **Сохранить отчёт** и **Не сохранять**. На момент подготовки отчёта кнопки не активны. В случае возникновения ошибки создания отчёта отображается кнопка **Ошибка**.
280
281 Система фиксирует время выполнения шага и передает управление следующему шагу.
282 )))|(% style="text-align: left;" %)(((
283 (((
284 {{code language="java"}}
285 <userTask id="Download_report" name="Скачать отчёт по инциденту" activiti:assignee="incident:${incidentId}" activiti:exclusive="true">
286 <extensionElements>
287 <ultima:bpmnElementExtension class="extensions.vmc.incident.DownloadReportTask"/>
288 <activiti:formProperty id="reportDefinitionKey" type="string" default="ultima-reports-vmc-incident-detail" writable="false" readable="true"/>
289 <activiti:formProperty id="dataSourceId" type="long" default="1" writable="false" readable="true"/>
290 <activiti:formProperty id="INCIDENT_ID" type="long" default="${incidentId}" writable="false" readable="true"/>
291 </extensionElements>
292 </userTask>
293 {{/code}}
294 )))
295 )))
296 |=(% colspan="4" style="text-align: left;" %)(((
297 Автоматические шаги | Service Task
298 )))
299 |(% style="text-align: left;" %)(((
300 1
301 )))|(% style="text-align: left;" %)(((
302 (((
303 «Привязать» архивные скриншоты
304
305 [[image:attach:processing_scheme_screenshots.png||width="200"]]
306 )))
307 )))|(% style="text-align: left;" %)(((
308 Добавляет в карточку инцидента скриншоты из архива «привязанных» к источнику инцидента камер. Действий пользователя не требуется. Скриншоты добавляются в отчёт по инциденту.
309
310 В поле **Относительное время** (параметр **relativeTimestamps в **коде) через запятую задаются сдвиги относительно времени возникновения инцидента, за которые нужно «привязать» скриншоты.
311
312 Необходимо обеспечить связь камер с источником тревог ~[[[«Привязка» камер источникам тревог>>doc:ui.Параметры узла.Элементы.«Привязка» камер источникам тревог.WebHome]]] и наличие видеоархива за требуемый период.
313 )))|(% style="text-align: left;" %)(((
314 (((
315 {{code language="java"}}
316 <serviceTask id="Screenshots" name="Привязать архивные скриншоты" activiti:class="extensions.vmc.incident.BindArchiveSnapshotsTask">
317 <extensionElements>
318 <activiti:field stringValue="-5,0,5" name="relativeTimestamps"/>
319 <activiti:field name="incidentId" expression="${incidentId}"/>
320 </extensionElements>
321 </serviceTask>
322 {{/code}}
323 )))
324 )))
325 |(% style="text-align: left;" %)(((
326 2
327 )))|(% style="text-align: left;" %)(((
328 (((
329 Отправить отчёт по e-mail
330
331 [[image:attach:processing_scheme_email_.png||thumbnail="true" width="200"]]
332 )))
333 )))|(% style="text-align: left;" %)(((
334 Формирует отчёт об инциденте и отправляет его на заданную почту. Отчёт формируется в формате pdf.
335
336 Необходимо настроить параметры почтового сервера в разделе [[Дополнительные настройки>>doc:ui.Параметры узла.Дополнительные настройки.Параметры изображений планов, интеграция с ГИС.WebHome]]. Требуется наличие лицензий ~[[[neyross.НЕЙРОСС Автоматика.WebHome]]].
337
338 E-mail-адрес получателя указывается в параметрах шага.
339 )))|(% style="text-align: left;" %)(((
340 (((
341 {{code language="java"}}
342 <serviceTask id="E-mail_report" name="Отправить отчет по email" activiti:class="extensions.vmc.incident.SendReportByEmailTask">
343 <extensionElements>
344 <activiti:field stringValue="example@example.com" name="emailTo" type="string"/>
345 <activiti:field name="incidentId" expression="${incidentId}"/>
346 <activiti:field stringValue="ultima-reports-vmc-incident-detail" name="reportDefinitionKey" type="string"/>
347 </extensionElements>
348 </serviceTask>
349 {{/code}}
350 )))
351 )))
352 |(% style="text-align: left;" %)(((
353 3
354 )))|(% style="text-align: left;" %)(((
355 (((
356 (% class="code" %)
357 (((
358 Выполнить произвольный скрипт
359 [[image:attach:processing_scheme_scrypt.png||thumbnail="true" width="200"]]
360 )))
361 )))
362 )))|(% style="text-align: left;" %)(((
363 Запускает на выполнение произвольный scala-скрипт. Специальные символы в скрипте необходимо экранировать, согласно стандарту XML. Переносы строки в коде нужно заменить на ";"
364 )))|(% style="text-align: left;" %)(((
365 (((
366 {{code language="java"}}
367 <serviceTask id="Run_scrypt" name="Выполнить пользовательский скрипт" activiti:class="extensions.vmc.incident.RunScriptTask">
368 <extensionElements>
369 <activiti:field stringValue="import services.common.{SystemLogService, SystemLogTag};val systemLogService = ctx.injector.instanceOf[SystemLogService];systemLogService.log(SystemLogTag.ALARM)("ТРЕВОГА")" name="script" type="string"/>
370 <activiti:field name="incidentId" expression="${incidentId}"/>
371 </extensionElements>
372 </serviceTask>
373 {{/code}}
374 )))
375 )))
376 |=(% colspan="4" style="text-align: left;" %)(((
377 Оператор условного ветвления
378 )))
379 |(% style="text-align: left;" %)(((
380 1
381 )))|(% style="text-align: left;" %)(((
382 (((
383 «Разветвить» алгоритм
384
385 [[image:attach:processing_scheme_gateway.png||thumbnail="true" width="200"]]
386 )))
387 )))|(% style="text-align: left;" %)(((
388 Позволяет в зависимости от значения текущих переменных в рамках обработки инцидента выбрать тот или иной следующий шаг.
389
390 На текущий момент в качестве переменных можно использовать только значения, введённые оператором в рамках ранее завершённых шагов заполнения формы
391 )))|(% style="text-align: left;" %)(((
392 (((
393 {{code language="java"}}
394 <userTask id="Form" name="Предварительная проверка" activiti:assignee="incident:${incidentId}" activiti:exclusive="true">
395 <extensionElements>
396 <ultima:bpmnElementExtension class="extensions.vmc.incident.UserFormIncidentTask"/>
397 <activiti:formProperty id="isNotPhony" type="boolean" name="Нарушитель обнаружен"/>
398 </extensionElements>
399 </userTask>
400 <exclusiveGateway id="Gateway"/>
401 <sequenceFlow id="Flow_toForm" sourceRef="startevent1" targetRef="Form"/>
402 <sequenceFlow id="Flow_toGateway" sourceRef="Form" targetRef="Gateway"/>
403 <sequenceFlow id="flow_GatewayON" name="Инцидент подтверждён" sourceRef="Gateway" targetRef="Activity_1o9mqp9">
404 <conditionExpression xsi:type="tFormalExpression">
405 ${isNotPhony == true}
406 </conditionExpression>
407 </sequenceFlow>
408 <sequenceFlow id="flow_GatewayOFF" name="Ложная тревога" sourceRef="Gateway" targetRef="finishProcessing">
409 <conditionExpression xsi:type="tFormalExpression">
410 ${isNotPhony != true}
411 </conditionExpression>
412 </sequenceFlow>
413 {{/code}}
414 )))
415 )))
416
417 == {{id name="Настройкасхемыобработкиинцидентов-Отладкапроцедурыобработки"/}}Отладка процедуры обработки ==
418
419 Откройте «живой» журнал аудита и выберете пресет **Обработка инцидентов**.
420
421 ~[[[doc:ui.Журнал аудита.WebHome]]]

Интерфейс НЕЙРОСС