|
Знающие люди, помогите создать сценарий. 4 года 4 месяца назад Мелентьев Артём Вячеславович 31вот как вы писали, так и пытался, с такими же сценариями, нефига не вышло
– Мелентьев Артём Вячеславович 4 года 4 месяца назад так выложите пример того что пытались, там и будет видно, где ошибка.
– Волков Андрей 4 года 4 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Сценарий 4 года 4 месяца назад Мелентьев Артём Вячеславович 31в первую очередь у меня большой вопрос с правильностью написания. Во вторых нужно добавить условие, что если человек меньше 20, то доступ открыт, но при этом значение не может быть меньше нуля, хотя такое врятли может быть.
– Мелентьев Артём Вячеславович 4 года 4 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Сам не проверял. Рукописный сценарий привязать к событию ПРОХОД считывателя который пускает в эту ЗД. 4 года 4 месяца назад Тремасов Константин Александрович 5566а событие здесь нужно, только чтобы определить какой считыватель взять же? по сути можно было и строго задать, но так универсальность и на две двери можно)
– Волков Андрей 4 года 4 месяца назад Событие для считки, по сути можно создать, кому как удобнее.
– Тремасов Константин Александрович 4 года 4 месяца назад объесните пожалуйста значение функции "событие"
как я понимаю в данном примере она привязывает считыватель, через который пытались пройти. Тоесть заместо события можно было жестко привязать считыватель. Просто зоной доступа является парковка БЦ с двумя шлагбаумами на вьезд и выезд. На парков есть 2 вида мест для Арендаторов БЦ и гостей. Все проезжают через один шлагбаум, но у арендаторов карты дальней индификации, соответственно стоит отдельная двойка со считывателями дальней индификации, которая сценарием открытия привязана к двойке шлагбаума. Всё это я пиши к тому, что мне нужна точная привязка считывателя. Поэтому для общего развития, прошу пояснить, что есть "Получить Событие" и его функцианал – Мелентьев Артём Вячеславович 4 года 4 месяца назад Вы сценарий привязываете к конкретному считывателю, во его и получите по его же событию. Подробнее написано в РЭ на макроязык.
– Тремасов Константин Александрович 4 года 4 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
еще вопрос, почему у меня не выводит сообщение с количеством мест 4 года 4 месяца назад Мелентьев Артём Вячеславович 31Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Попробуйте так: рабочееместо1.ПоказатьСообщение( "Зонадоступа1.КоличествоСотрудниковВЗонеДоступа()"); 4 года 4 месяца назад Тремасов Константин Александрович 5566тоже сомнительно, оно и покажет "Зонадоступа..." )) там вроде надо в строку переводить
– Волков Андрей 4 года 4 месяца назад мне нужно это было для теста, для вывода переменной. Получилось вывести сообщение только в ядро, но мне этого хватило, чтобы понять - это работает.
Теперь стоит другая задача вывести значение переменной в качесте url в текст ie С текстом так получается, с переменной опять же нет =(. РабочееМесто1.ЗапуститьПрограмму( "C:\Program Files (x86)\Internet Explorer\iexplore.exe", Зонадоступа1.КоличествоСотрудниковВЗонеДоступа() Если вставить текст РабочееМесто1.ЗапуститьПрограмму( "C:\Program Files (x86)\Internet Explorer\iexplore.exe", "Привет" то в url появляется текст, но если вставить переменную, то стартовая страница =(. Эти махинации мне нужны, для вывода на циферблад количества мест. – Мелентьев Артём Вячеславович 4 года 4 месяца назад Да, с ковычками было лишнее))
РабочееМестоЛок1.ПоказатьСообщение("Людей В Зоне Доступа:"+" "+ Строка (ЗонаДоступа1.КоличествоСотрудниковВЗонеДоступа())); Вот так выводит. – Тремасов Константин Александрович 4 года 4 месяца назад ну вот и ответ, переменную выводить бесполезняк, зато через Строка() всё должно получиться.
– Волков Андрей 4 года 4 месяца назад да получилось, спасибо большое всем за помощь, правда со "cтрокой" сам нашёл в мануале, но забыл отписать на форуме, что всё норм, конец рабочего дня, замотался, всем еще раз спасибо. Теперь хоть немного вник в этот макроязык....
– Мелентьев Артём Вячеславович 4 года 4 месяца назад Если написать так: РабочееМестоЛок1.ЗапуститьПрограмму( "C:\Program Files\internet explorer\iexplore.exe", Строка(ЗД2.КоличествоСотрудниковВЗонеДоступа()));
То в IE показывает так: http://0.0.0.0/ последний 0 это количество в людей в ЗД – Тремасов Константин Александрович 4 года 4 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
удалось полностью реализовать сценарий, с выводом на табло количества мест. Но возникла проблема, если 2 машины успевают проехать через шлагбаум, то количество мест отображается неправильно. При условии, что на ночь парковка закрыта и машин там не должно быть, то возникла необходимость, что-то придумать с обнулением людей в зоне доступа. 4 года 3 месяца назад Мелентьев Артём Вячеславович 31Читайте вот отсюда, подобная задача уже обсуждалась https://partners.bolid.ru/forum/forum_8009.html#comment47215
– Тремасов Константин Александрович 4 года 3 месяца назад еще раз хочу сказать Спасибо
поправил только Если ЗонаДоступа1.Индекс() > 0 Тогда на Если ЗонаДоступа1.ИД() == 2 Тогда т.к. зон много а мне только с одной надо выгнать И всё заработало как часики Товарищь, вы гений)) – Мелентьев Артём Вячеславович 4 года 3 месяца назад Там задача была проверить ВСЕХ СОТРУДНИКОВ, у вас задача проверить ЗОНУ ДОСТУПА, не вижу смысла гонять сценарий по сотрудникам, надо попробовать только ЗД проверить, но когда, это вопрос, дойдут руки, можно переписать немного под вас.
– Тремасов Константин Александрович 4 года 3 месяца назад Я понял, что он прогоняет всю базу сотрудников, в принципе - это не принципиально, т.к. прогонять он будет ночью и выводить только из второй зоны, думаю их будет там не так много. Если вы поправите сценарий буду примного благодарен
– Мелентьев Артём Вячеславович 4 года 3 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
появилась новая задача от заказчика, и я опять не знаю как с ней справиться. По аналогии с первой задачей с блокировкой вьезда при определенном количество, но теперь зона должна быть разделена на 3 группы допуска, у каждой должно быть определенное количество мест на парковке. И допуск должен не блокироваться, а запрещаться. 4 года 2 месяца назад Мелентьев Артём Вячеславович 31Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
нужно понимание 4 года 2 месяца назад Мелентьев Артём Вячеславович 31Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Пока в голову приходит только то, что у вас должен быть всегда запрещен доступ, человек касается картой, по событию доступ запрещен запускается сценарий с проверкой Уровня доступа, а потом уже проверка количества свободных мест по этому УД. Далее решине, предоставить доступ или отказать. 4 года 2 месяца назад Тремасов Константин Александрович 5566Для примера:
если ЗД1.КоличествоСотрудниковПоУровню(5) > 0 тогда // 5 это номер уровня доступа в базе считыватель1 = Событие1.Элемент(); считыватель1.ВосстановитьДоступ(); – Тремасов Константин Александрович 4 года 2 месяца назад интересное решение, сегодня буду думать в этом направлении.
То есть я добавляю дверь, но не заношу ее не в один уровень доступа. Потом считываю событие и если количество человек в данном уровне доступа нормальное, то предоставляю проход – Мелентьев Артём Вячеславович 4 года 2 месяца назад хмм, а зачем восстанавливать доступ? это по логике тогда второй раз махать же надо, но доступ то от этого не появится. Может быть имеет смысл в "Считыватель1.ПредоставитьДоступ(Событие1.Пароль().Сотрудник())", чтобы ещё и было событие о предоставлении доступа определённому сотруднику ну и знать что сотрудник действительно прошёл в ЗД
– Волков Андрей 4 года 2 месяца назад Это пример с другого сценария, как проверить по УД и все, делайте как вам надо, предоставить доступ.
– Тремасов Константин Александрович 4 года 2 месяца назад еще раз спасибо за идею, иначе я строил алгоритм в другом ключе, благодаря вам удалось написать сценарий и протестить его. Вот шаблон
Сценарий Переменные Перем Считыватель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.ПолучитьПоИд(2); Событие1 = ПолучитьСобытие(); Пароль1 = Событие1.Пароль(); Сотрудник1 = Пароль1.Сотрудник().ИД(); Число1 = число(Сотрудник1); Проход = РабочееМесто1.Сотрудники().ПолучитьПоИД( Число1 ); ГруппаДоступа1 = Пароль1.ГруппаДоступа().ИД(); Если ГруппаДоступа1 == 3 Тогда Если ЗонаДоступа1.КоличествоСотрудниковПоУровню(3) < 4 тогда Считыватель1.ПредоставитьДоступ( Проход ); КонецЕсли; КонецЕсли; Если ГруппаДоступа1 == 4 Тогда Если ЗонаДоступа1.КоличествоСотрудниковПоУровню(4) < 4 тогда Считыватель1.ПредоставитьДоступ( Проход ); КонецЕсли; КонецЕсли; КонецСценария – Мелентьев Артём Вячеславович 4 года 2 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
3183 раза
4 года 4 месяца назад
По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.
включите в настройках АБД отображение текста сценария в режиме шаблонов и поизучайте шаблонные шаги "Взять разделы рабочего места по уходу последнего из заданной зоны", "Заблокировать доступ" и "Восстановить доступ". На основе этого можно уже что-то собрать.
– Волков Андрей 4 года 4 месяца назад
#ссылка