Ограничить вход по количеству проходов день

FORUM_NAME: АРМ Орион Про версии 1.20 и выше
Описание: АРМ "Орион Про" — пакет программного обеспечения для аппаратно-программного комплекса ИСО "Орион", на котором реализуются системы охранной сигнализации, контроля и управления доступом, охранного видеонаблюдения, автоматика противопожарных систем, сопряженные с инженерными системами объектов.
Справочная информация, руководства для АРМ Орион Про версии 1.20 и выше
Модератор: Модераторы
pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #21 pet-and » 07.06.2016, 14:13

bat-файл, который в нужной папке грохнет всё, соорудить не проблема.

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #22 google » 07.06.2016, 14:23

pet-and писал(а):bat-файл, который в нужной папке грохнет всё, соорудить не проблема.

Тоже верно, про них-то я и забыл совсем.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #23 pet-and » 07.06.2016, 14:41

Вот скорость работы ядра с файлами вызывает определенные опасения. В свое время, я состряпал диагностический скрипт, который выводил текущие состояния всех ШС и Выходов системы в файл, в виде html-таблицы; в каждой строке за адресом элемента следовали все его текущие состояния. Так вот, в итоговом файле иногда случались пропуски отдельных ячеек таблицы, а то и строк целиком. При этом нагрузки на ядро никакой - ПС, где в системе в данный момент времени не происходит ничего и сценарий выполняется всего один. От чего зависила скорость работы, я так и не понял.
Так что, определить, будет ли данная мысль работать на практике, невозможно. Только опыт.

otvertka
Автор темы
otvertka
Автор темы
Репутация: 0
Сообщения: 45
Зарегистрирован: 28.01.2013
С нами: 3 года 10 месяцев
Профессия: шаман с бубном

Непрочитанное сообщение #24 otvertka » 07.06.2016, 20:22

Ответ #2 Тех.поддержки:
Первый сценарий поставьте на событие "доступ предоставлен" для всех считывателей, где учитывается проход.
Второй запускайте в полночь по расписанию.
Если у сотрудника будет 2 карточки, то сначала будет заблокирована одна, но он сможет пойти по второй 3 раза.

Проверить работоспособность возможности не было, ошибки возможны. Для отладки лучше всего будет подключиться к Вам удаленно по TeamViewer.

Код: Выделить всё

Сценарий
Переменные
Перем Компьютеры1;
Перем Компьютер1;
Перем РабочиеМеста1;
Перем РабочееМесто1;
перем событие1;
перем сотрудник1;
перем пароль;

НачалоСценария

Попытка

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Событие1 = ПолучитьСобытие();
Если Не ПустоеЗначение(Событие1) Тогда
Если не ПустоеЗначение(Событие1.Пароль()) Тогда
Сотрудник1 = Событие1.Пароль().Сотрудник();
пароль = Событие1.Пароль();
КонецЕсли;
конецесли;
Если не пустоезначение(сотрудник1.тег()) тогда
сотрудник1.поместитьвтег(число(сотрудник1.тег())+1);
иначе
сотрудник1.поместитьвтег("1");
конецесли;

Если число(сотрудник1.тег())==3 тогда
пароль.заблокировать();
конецесли;
Исключение Сообщить("Произошло исключение ",0); КонецПопытки;

КонецСценария

Сценарий
Переменные
Перем Компьютеры1;
Перем Компьютер1;
Перем РабочиеМеста1;
Перем РабочееМесто1;
перем сотрудник1;
перем счетчик;
перем сотрудники1;
перем счетчик1;
НачалоСценария

Попытка

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");

сотрудники1=создатьобъект("Сотрудники");
для счетчик=0 по сотрудники1.количество() цикл
Сотрудник1 = сотрудники1.ПолучитьпоИД(счетчик);
сотрудник1.поместитьвтег("0");
для счетчик1=0 по Сотрудник1.пароли().количество() цикл
если Сотрудник1.пароли().получитьпоид(счетчик1).Проверитьблокировку()тогда
Сотрудник1.пароли().получитьпоид(счетчик1).разблокировать() ;
конецесли;
конеццикла;
конеццикла;

Исключение Сообщить("Произошло исключение ",0); КонецПопытки;

КонецСценария

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #25 google » 07.06.2016, 23:26

Как вариант. Только после перезагрузки ядра тег, в котором хранится число проходов, скорее всего, обнулится. Вообщем надо пробовать и тот и тот вариант.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #26 pet-and » 07.06.2016, 23:49

Тег чего бы то ни было, один, и каким образом разделять мух от котлет (столовая не даёт покоя), я не понимаю. В общем, проверять надо.....

DruG
DruG
Репутация: 18
Сообщения: 254
Зарегистрирован: 03.03.2016
С нами: 8 месяцев 30 дней
Профессия: безобразнорабочий

Непрочитанное сообщение #27 DruG » 08.06.2016, 04:54

так, этот приём надо запомнить, не знал про тег

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #28 google » 08.06.2016, 09:45

Как я понял, то на каждого сотрудника создаётся свой тег. Которые обнуляются вторым скриптом.
Меня больше волнует вот эта строчка в первом скрипте:
otvertka писал(а): пароль.заблокировать();
В описании языка я не нашел данную функцию. Подозреваю, что это должна быть блокировка пароля текущего человека - т. е. после блокировки он вообще никуда не попадёт, не то что в столовую.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #29 pet-and » 08.06.2016, 13:14

google писал(а):Как я понял, то на каждого сотрудника создаётся свой тег. Которые обнуляются вторым скриптом.
Меня больше волнует вот эта строчка в первом скрипте:
otvertka писал(а): пароль.заблокировать();
В описании языка я не нашел данную функцию. Подозреваю, что это должна быть блокировка пароля текущего человека - т. е. после блокировки он вообще никуда не попадёт, не то что в столовую.
Данная фича появилась в 1.20. Это означает блокировку ключа как централизовано, в ядре опроса, так и локально, в приборе, до момента синхронизации.

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #30 google » 08.06.2016, 13:24

А, ясно

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #31 pet-and » 08.06.2016, 13:27

Вообще, в 1.20 в скрипты порядком добавилось, надо читать и выяснять, как это всё работает.

otvertka
Автор темы
otvertka
Автор темы
Репутация: 0
Сообщения: 45
Зарегистрирован: 28.01.2013
С нами: 3 года 10 месяцев
Профессия: шаман с бубном

Непрочитанное сообщение #32 otvertka » 09.06.2016, 14:26

А как делать отладку? Допустим прилепил я скрипты, синтаксических ошибок нет. Запускаю ОЗ и как понимать где сидит баг, если что-то не заработает?

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #33 google » 09.06.2016, 14:36

В данном деле придётся полагаться только на себя. Никаких отладочных инструментов не предусмотрено. К сожалению.

Отправлено спустя 29 секунд:
Хотя это версия 1.20, может, что и добавилось. Но сомневаюсь.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #34 pet-and » 09.06.2016, 15:25

otvertka писал(а):А как делать отладку? Допустим прилепил я скрипты, синтаксических ошибок нет. Запускаю ОЗ и как понимать где сидит баг, если что-то не заработает?
В ядре опроса, вкладка "Сценарии", там будут все ошибки скрипта. Также, полезно заставить скрипт писать сообщения в контрольных точках, чтобы понимать, какой шаг сценария отработал и где застревание.
Самое полезное, использовать " Демонстратор", чтобы не тренироваться на живых людях. Откатать скрипт в виртуальном пространстве.

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #35 google » 09.06.2016, 15:42

pet-and писал(а): там будут все ошибки скрипта
Всех ошибок там не будет. По этому поводу болид даже в рук-ве по языку написал, что интерпретатор языка не совершенен и надо проверять правильность написанного.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 37
Репутация: 21
Сообщения: 1667
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #36 pet-and » 09.06.2016, 16:41

Там будут именно что все ошибки. В руководстве пишут несколько про иное, про то, что проверка скрипта предусматривает правильность синтаксиса языка и логическую целостность, т.е. закрытие цикла, условия и т.д. А вот ежели вы умудрились загнать скрипт по ложному пути бесконечного цикла или выставляете заведомо невыполнимое условие, то проверка это не выявит.


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «АРМ Орион Про версии 1.20 и выше»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость

forum-bolid.ru : Отказ от ответственности