Версия 7.1 от admin на 2026/06/17 23:04

Скрыть последних авторов
pugachevskaya_elena 1.1 1 В данном разделе приведены сведения о порядке настройки шаблона формы для вывода данных о владельце и пропуске.
2
3 {{info}}
4 **ПОДСКАЗКА**
5
6 Если вы не хотите разбираться с кодом шаблона формы или вам требуется форма о определенном стиле, с дополнительными графическими элементами, вы всегда можете заказать разработку такой формы у специалистов компании ИТРИУМ.
7 {{/info}}
8
9 [[image:attach:ui.Параметры узла.WebHome@content.png||thumbnail="true" height="10"]] Содержание:
10
11 {{toc/}}
12
admin 6.1 13 == {{id name="Настройкаформыфотоидентификации-Общиесведения"/}}Общие сведения ==
pugachevskaya_elena 1.1 14
15 Платформа НЕЙРОСС с версии 20.41 позволяет вывести в форме фотоидентификации любые данные в владельце и пропуске, в том числе пользовательские свойства владельца и пропуска.
16
17 [[image:attach:s_photoid_extended.png||width="900"]]
18
19 {{info}}
20 Инструкция по добавлению пользовательских свойств приведена в разделе ~[[[doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций контроля доступа.Добавление пользовательских свойств.WebHome]]]. Чтобы вывести свойства в форме владельца и пропуска для ввода данных в АРМ Доступ используйте конструктор форм ~[[[doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций контроля доступа.Настройка форм ввода данных.WebHome]]].
21 {{/info}}
22
23 (% style="text-align: left;" %)
24 Для отображения поля необходимо сформировать его ключ по следующим правилам:
25
admin 2.1 26 {{code language="java"}}
pugachevskaya_elena 1.1 27 $PASS.$type_$field
28 {{/code}}
29
30 (% style="text-align: left;" %)
admin 6.1 31 где {{code language="none"}}$PASS{{/code}} фиксированная строка, {{code language="none"}}$type{{/code}} = **person** для владельца и **pass** для пропуска, а {{code language="none"}}$field{{/code}} формируется по следующим правилам:
pugachevskaya_elena 1.1 32
admin 6.1 33 (% style="text-align:left" %)
pugachevskaya_elena 1.1 34 1. Если свойство типовое (ФИО, организация и т. п.) – то просто ключ свойства
35 1. Если свойство пользовательское с ключом **key** – то строка вида {{code language="none"}}property_key{{/code}}
36
37 == {{id name="Настройкаформыфотоидентификации-Ключисвойств"/}}Ключи свойств ==
38
39 |=(((
40 Свойство
41 )))|=(((
42 Ключ
43 )))|=(((
44 Пример
45 )))
46 |=(% colspan="3" %)(((
47 Стандартные поля формы
48 )))
49 |(((
50 ФИО
51 )))|(((
52 {{code language="none"}}
53 $PASS.personName
54 {{/code}}
55 )))|(((
56 Петров Петр Сергеевич
57 )))
58 |(((
59 (((
60 Карта
61
admin 2.1 62 {{code language="java"}}
admin 7.1 63 Код_предприятия/Номер_карты
pugachevskaya_elena 1.1 64 {{/code}}
65 )))
66 )))|(((
67 {{code language="none"}}
68 $PASS.cardNumber
69 {{/code}}
70 )))|(((
71 №175/32784
72 )))
73 |(((
74 Событие
75 )))|(((
76 {{code language="none"}}
77 $EVENT.status
78 {{/code}}
79 )))|(((
80 Доступ разрешен
81 )))
82 |(((
83 Источник события
84 )))|(((
85 {{code language="none"}}
86 $EVENT.source
87 {{/code}}
88 )))|(((
89 Главный вход (турникет) — имя точки доступа
90 )))
91 |(((
92 Время события
93 )))|(((
94 $EVENT.time
95 )))|(((
96 08:56
97 )))
98 |=(% colspan="3" %)(((
99 Свойства владельца пропуска
100 )))
101 |(((
102 Фамилия
103 )))|(((
104 {{code language="none"}}
105 $PASS.person_surname
106 {{/code}}
107 )))|(((
108 Петров
109 )))
110 |(((
111 Имя
112 )))|(((
113 {{code language="none"}}
114 $PASS.person_name
115 {{/code}}
116 )))|(((
117 Петр
118 )))
119 |(((
120 Отчество
121 )))|(((
122 {{code language="none"}}
123 $PASS.person_patronymic
124 {{/code}}
125 )))|(((
126 Сергеевич
127 )))
128 |(((
129 Организация
130 )))|(((
131 {{code language="none"}}
132 $PASS.person_organization
133 {{/code}}
134 )))|(((
135 ООО Промтехмонтаж
136 )))
137 |(((
138 Подразделение
139 )))|(((
140 {{code language="none"}}
141 $PASS.person_division
142 {{/code}}
143 )))|(((
144 Технологической инспекции
145 )))
146 |(((
147 Должность
148 )))|(((
149 {{code language="none"}}
150 $PASS.person_post
151 {{/code}}
152 )))|(((
153 Инспектор
154 )))
155 |(((
156 Табельный номер
157 )))|(((
158 {{code language="none"}}
159 $PASS.person_clock_number
160 {{/code}}
161 )))|(((
162 5465-У
163 )))
164 |(((
165 Номер документа
166 )))|(((
167 {{code language="none"}}
168 $PASS.person_document_number
169 {{/code}}
170 )))|(((
171 4016584681
172 )))
173 |(((
174 Доп. информация
175 )))|(((
176 {{code language="none"}}
177 $PASS.person_properties_extra
178 {{/code}}
179 )))|(((
180 Доступ к работе на электроустановках: до 1000 В
181 )))
182 |(((
183 пользовательское свойство с ключом xxxxx
184 )))|(((
185 {{code language="none"}}
186 $PASS.person_properties_xxxx
187 {{/code}}
188 )))|(((
189 [[#Заметки отображения пользовательских свойств владельца/пропуска>>doc:||anchor="Настройкаформыфотоидентификации-Заметкиотображенияпользовательскихсвойстввладельца/пропуска"]]
190 )))
191 |=(% colspan="3" %)(((
192 Свойства пропуска
193 )))
194 |(((
195 Состояние пропуска
196 )))|(((
197 {{code language="none"}}
198 $PASS.pass_state
199 {{/code}}
200 )))|(((
201 Действителен
202 )))
203 |(((
204 Тип пропуска
205 )))|(((
206 {{code language="none"}}
207 $PASS.pass_type
208 {{/code}}
209 )))|(((
210 Постоянный
211 )))
212 |(((
213 Номер карты
214 )))|(((
215 {{code language="none"}}
216 $PASS.pass_card
217 {{/code}}
218 )))|(((
219 32784
220 )))
221 |(((
222 Код предприятия
223 )))|(((
224 {{code language="none"}}
225 $PASS.pass_facility
226 {{/code}}
227 )))|(((
228 175
229 )))
230 |(((
231 Действителен с
232 )))|(((
233 {{code language="none"}}
234 $PASS.pass_activation_date
235 {{/code}}
236 )))|(((
237 2025.12.01 00:00:00
238 )))
239 |(((
240 Действителен по
241 )))|(((
242 {{code language="none"}}
243 $PASS.pass_expiration_date
244 {{/code}}
245 )))|(((
246 2032.12.16 00:00:00
247 )))
248 |(((
249 пользовательское свойство с ключом yyyyy
250 )))|(((
251 {{code language="none"}}
252 $PASS.pass_properties_yyyyy
253 {{/code}}
254 )))|(((
admin 7.1 255
pugachevskaya_elena 1.1 256 )))
257
258 == {{id name="Настройкаформыфотоидентификации-Заметкиотображенияпользовательскихсвойств"/}}Заметки отображения пользовательских свойств ==
259
260 |=(((
261 Тип поля
262 )))|=(((
263 Комментарий
264 )))
265 |(((
266 Дата и время
267 )))|(((
admin 6.1 268 1979-03-31T10:00:00+03:00
pugachevskaya_elena 1.1 269 Указывается время и часовой пояс
270 )))
271 |(((
272 Только дата
273 )))|(((
274 1979-03-31
275 )))
276 |(((
277 Только время
278 )))|(((
279 18:00:00
280 )))
281 |(((
282 Переключатель
283 )))|(((
284 да/нет
285 Если не указано, ничего не выводится.
286 )))
287 |(((
288 Список
289 )))|(((
290 Отображается код, а не значение. Рекомендуется задавать осмысленные коды.
291 )))
292
293
admin 6.1 294
pugachevskaya_elena 1.1 295 (% style="text-align: left;" %)
296 == {{id name="Настройкаформыфотоидентификации-Порядокнастройки"/}}Порядок настройки ==
297
298 Скопируйте приведённый ниже код шаблона формы.
299
admin 2.1 300 {{code language="java"}}
pugachevskaya_elena 1.1 301 <!DOCTYPE html>
302 <html>
303 <head>
304 <meta charset="utf-8" />
305 <meta
306 name="viewport"
307 content="initial-scale = 1.0, maximum-scale=1.0, user-scalable = no, width=device-width"
308 />
309 <meta name="mobile-web-app-capable" content="yes" />
310 <meta name="apple-mobile-web-app-capable" content="yes" />
311 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
312 <link rel="stylesheet" type="text/css" href="/dry/css/vendor/font-awesome.css" />
313 </head>
314 <body>
315 <div class="card">
316 <div class="card__header">
317 <div class="{{ $EVENT.state }}">
318 <span>{{ $EVENT.status }}</span>
319 </div>
320 </div>
321 <div class="card__body">
322 <div class="card__body__photo" style="background-image: url('{{ $PASS.photoURL }}')"></div>
323 <div class="card__body__data">
324 <div class="card__body__data__row">
325 <div class="card__body__data__row__title">ФИО:</div>
326 <div class="card__body__data__row__value">{{ $PASS.personName }}</div>
327 </div>
328 <div class="card__body__data__row">
329 <div class="card__body__data__row__title">Карта:</div>
330 <div class="card__body__data__row__value">{{ $PASS.cardNumber }}</div>
331 </div>
332 <div class="card__body__data__row">
333 <div class="card__body__data__row__title">Событие:</div>
334 <div class="card__body__data__row__value">{{ $EVENT.status }}</div>
335 </div>
336 <div class="card__body__data__row">
337 <div class="card__body__data__row__title">Источник события:</div>
338 <div class="card__body__data__row__value">{{ $EVENT.source }}</div>
339 </div>
340 <div class="card__body__data__row">
341 <div class="card__body__data__row__title">Время события:</div>
342 <div class="card__body__data__row__value">{{ $EVENT.time }}</div>
343 </div>
344 <!-- all person fields -->
345 <div class="card__body__data__row">
346 <div class="card__body__data__row__title">Фамилия:</div>
347 <div class="card__body__data__row__value">{{ $PASS.person_surname }}</div>
348 </div>
349 <div class="card__body__data__row">
350 <div class="card__body__data__row__title">Имя:</div>
351 <div class="card__body__data__row__value">{{ $PASS.person_name }}</div>
352 </div>
353 <div class="card__body__data__row">
354 <div class="card__body__data__row__title">Отчество:</div>
355 <div class="card__body__data__row__value">{{ $PASS.person_patronymic }}</div>
356 </div>
357 <div class="card__body__data__row">
358 <div class="card__body__data__row__title">Организация:</div>
359 <div class="card__body__data__row__value">{{ $PASS.person_organization }}</div>
360 </div>
361 <div class="card__body__data__row">
362 <div class="card__body__data__row__title">Подразделение:</div>
363 <div class="card__body__data__row__value">{{ $PASS.person_division }}</div>
364 </div>
365 <div class="card__body__data__row">
366 <div class="card__body__data__row__title">Должность:</div>
367 <div class="card__body__data__row__value">{{ $PASS.person_post }}</div>
368 </div>
369 <div class="card__body__data__row">
370 <div class="card__body__data__row__title">Табельный номер:</div>
371 <div class="card__body__data__row__value">{{ $PASS.person_clock_number }}</div>
372 </div>
373 <div class="card__body__data__row">
374 <div class="card__body__data__row__title">Номер документа:</div>
375 <div class="card__body__data__row__value">{{ $PASS.person_document_number }}</div>
376 </div>
377 <div class="card__body__data__row">
378 <div class="card__body__data__row__title">Доп. информация:</div>
379 <div class="card__body__data__row__value">{{ $PASS.person_properties_extra }}</div>
380 </div>
381 <!-- all pass fields -->
382 <div class="card__body__data__row">
383 <div class="card__body__data__row__title">Состояние:</div>
384 <div class="card__body__data__row__value">{{ $PASS.pass_state }}</div>
385 </div>
386 <div class="card__body__data__row">
387 <div class="card__body__data__row__title">Тип:</div>
388 <div class="card__body__data__row__value">{{ $PASS.pass_type }}</div>
389 </div>
390 <div class="card__body__data__row">
391 <div class="card__body__data__row__title">Номер карты:</div>
392 <div class="card__body__data__row__value">{{ $PASS.pass_card }}</div>
393 </div>
394 <div class="card__body__data__row">
395 <div class="card__body__data__row__title">Код предприятия:</div>
396 <div class="card__body__data__row__value">{{ $PASS.pass_facility }}</div>
397 </div>
398 <div class="card__body__data__row">
399 <div class="card__body__data__row__title">Дата начала действия:</div>
400 <div class="card__body__data__row__value">{{ $PASS.pass_activation_date }}</div>
401 </div>
402 <div class="card__body__data__row">
403 <div class="card__body__data__row__title">Дата окончания действия:</div>
404 <div class="card__body__data__row__value">{{ $PASS.pass_expiration_date }}</div>
405 </div>
406 </div>
407 </div>
408 <div class="card__footer">{{ #DECISION_BUTTONS }} {{ #CAMERA_ICON }}</div>
409 </div>
410
411 <script type="text/javascript">
412 function safeClosure() {
413 return {
414 execute: function () {
415 // code goes here
416 },
417 cleanup: function () {
418 // required hook for script deactivation!
419 },
420 };
421 }
422
423 safeClosure().execute();
424 window.cleanup = safeClosure().cleanup;
425 </script>
426
427 <style>
428 html,
429 body {
430 height: 100%;
431 }
432 body {
433 margin: 0;
434 font-family: Arial, Verdana, Helvetica, sans-serif;
435 }
436 * {
437 box-sizing: border-box;
438 }
439 .card {
440 display: flex;
441 flex-direction: column;
442 width: 100%;
443 height: 100%;
444 justify-content: space-between;
445 overflow: hidden;
446 }
447 .card__header {
448 display: flex;
449 flex-direction: row;
450 align-items: center;
451 justify-content: space-between;
452 height: 40px;
453 }
454 .card__header > div {
455 width: 100%;
456 height: 100%;
457 padding: 0 25px;
458 overflow: hidden;
459 text-overflow: ellipsis;
460 }
461 .card__header > .ok {
462 background-color: #0a9d13;
463 }
464 .card__header > .warn {
465 background-color: #e8a71b;
466 }
467 .card__header > .alert {
468 background-color: #c73734;
469 }
470 .card__header > div > span {
471 line-height: 40px;
472 color: #fff;
473 display: block;
474 white-space: nowrap;
475 }
476 .card__body {
477 display: flex;
478 flex-direction: row;
479 height: calc(100% - 80px);
480 margin-top: 0;
481 margin-bottom: auto;
482 padding: 20px;
483 overflow: auto;
484 }
485 .card__body__photo {
486 position: relative;
487 display: flex;
488 flex-direction: column;
489 flex-grow: 1;
490 flex-shrink: 0;
491 max-width: 30%;
492 max-height: 70%;
493 background-size: contain;
494 background-repeat: no-repeat;
495 background-position: 50% 50%;
496 }
497 .card__body__photo > img {
498 width: 100%;
499 height: 100%;
500 margin: auto;
501 object-fit: contain;
502 }
503 .card__body__data {
504 display: table;
505 padding-left: 4vw;
506 width: 60%;
507 }
508 .card__body__data__row {
509 display: table-row;
510 }
511 .card__body__data__row__title {
512 display: table-cell;
513 padding-top: 4.5vh;
514 padding-right: 1vw;
515 font-size: 2vw;
516 }
517 .card__body__data__row__value {
518 display: table-cell;
519 font-size: 2.5vw;
520 }
521 .card__footer {
522 position: absolute;
523 display: flex;
524 flex-direction: row;
525 background-color: #d8dde1;
526 bottom: 0;
527 height: 40px;
528 width: 100%;
529 }
530 .card__footer #hoverable-camera-tooltip {
531 flex-shrink: 0;
532 color: #8f9aa3;
533 margin-right: 0;
534 margin-left: auto;
535 padding: 12px;
536 }
537 .card__footer .buttons__wrapper {
538 height: 40px;
539 flex-grow: 1;
540 }
541 .card__footer .buttons__wrapper > .button {
542 height: 40px;
543 line-height: 40px;
544 width: 50%;
545 padding: 0 20px;
546 margin: 0;
547 color: #fff;
548 border: none;
549 outline: none;
550 cursor: pointer;
551 }
552 .button.disabled {
553 opacity: 0.7;
554 pointer-events: none;
555 }
556 .card__footer .buttons__wrapper > .button.green {
557 background-color: #0a9d13;
558 }
559 .card__footer .buttons__wrapper > .button.green:hover {
560 background-color: #08820f;
561 }
562 .card__footer .buttons__wrapper > .button.red {
563 background-color: #9e0b0f;
564 }
565 .card__footer .buttons__wrapper > .button.red:hover {
566 background-color: #800007;
567 }
568 </style>
569 </body>
570 </html>
571 {{/code}}
572
573
574 Вставьте в текстовый редактор без форматирования, например, — свободно распространяемый Notepad++.
575
576 Отредактируйте код формы из блока:
577
admin 2.1 578 {{code language="java"}}
pugachevskaya_elena 1.1 579 <div class="card__body">
580 ...
581 </div>
582 {{/code}}
583
584
585 В этом блоке три группы полей. Порядок соответствует таблице выше.
586
587 Чтобы удалить поле из шаблона формы, просто удалите соответствующий блок кода.
588
589 Вы также можете добавить произвольное количество полей с пользовательскими свойствами владельца и пропуска, например:
590
admin 2.1 591 {{code language="java"}}
pugachevskaya_elena 1.1 592 <div class="card__body__data__row">
593 <div class="card__body__data__row__title">Группа крови:</div>
594 <div class="card__body__data__row__value">{{ $PASS.person_properties_Gruppa_krovi }}</div>
595 </div>
596 {{/code}}
597
598 , поле «Группа крови» с полем типа «список».
599
600
admin 2.1 601 {{code language="java"}}
pugachevskaya_elena 1.1 602 <div class="card__body__data__row">
603 <div class="card__body__data__row__title">Согласие на обработку персональных данных:</div>
604 <div class="card__body__data__row__value">{{ $PASS.person_properties_consent_to_personal_data_processing }}</div>
605 </div>
606 {{/code}}
607
608 , поле «Согласие на обработку персональных данных» типа «переключатель».
609
610
admin 2.1 611 {{code language="java"}}
pugachevskaya_elena 1.1 612 <div class="card__body__data__row">
613 <div class="card__body__data__row__title">Выход строго до:</div>
614 <div class="card__body__data__row__value">{{ $PASS.pass_properties_Vikhod_do }}</div>
615 </div>
616 {{/code}}
617
618 , поле «Выход строго до» типа «дата и время», подтипом «только время».
619
620 {{error}}
621 **ВАЖНО**
622
623 Будьте внимательны при вводе уникального ключа свойства. Рекомендуется копировать код во избежание ошибок.
624 {{/error}}
625
626
627 Сохраните подготовленный шаблон формы в формате TEMPLATE, например:
628
admin 2.1 629 {{code language="java"}}
pugachevskaya_elena 1.1 630 Шаблон_формы.template
631 {{/code}}
632
633
634 Загрузите файл шаблона в соответствующее поле настроек ячейки ~[[[doc:neyross.Настройка Платформы НЕЙРОСС.Настройка функций контроля доступа.Настройка АРМ фотоидентификации.WebHome]]]. Каждая ячейка может иметь свой шаблон формы.
635
admin 6.1 636

Платформа НЕЙРОСС