Код: Выделить всё
Сценарий
Переменные
Перем РабочееМесто1;
Перем РабочиеМеста1;
Перем Компьютер1;
Перем Компьютеры1;
Перем Счетчик1;
Перем Счетчик2;
Перем Считыватель1;
Перем Считыватель2;
НачалоСценария
Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Считыватель1 = РабочееМесто1.Считыватели().ПолучитьПоИД( 3117 );
Считыватель2 = РабочееМесто1.Считыватели().ПолучитьПоИД( 5481 );
Задержка( 5 );
Счетчик2 = 0;
//проверка состояния офисных разделов с 37 по 43
//проверка состояния офисных разделов с 46 по 57
Для Счетчик1 = 37 По 57 Цикл
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( Счетчик1 ).Состояние() == "ВЗЯТ" Тогда
Счетчик2 = Счетчик2 + 1;
КонецЕсли;
КонецЦикла;
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 68 ).Состояние() == "ВЗЯТ" Тогда
Счетчик2 = Счетчик2 + 1;
КонецЕсли;
//44. 45 - отдел продаж и касса
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 44 ).Состояние() == "ВЗЯТ" и
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 45 ).Состояние() == "ВЗЯТ" Тогда
Считыватель1.ВосстановитьДоступ();
Считыватель2.ВосстановитьДоступ();
КонецЕсли;
//если 20 офисных и 2 УК раздела под охраной - блокируем вход в тамбур и ставим все коридоры
Если Счетчик2 == 22 Тогда
//подвал
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 62 ).Взять();
//1 этаж
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 59 ).Взять();
//УК 1 этаж
//считыватель тамбур УК
Считыватель1.ЗаблокироватьДоступ();
КонецЕсли;
КонецСценария
Код: Выделить всё
Сценарий
Переменные
Перем РабочееМесто1;
Перем РабочиеМеста1;
Перем Компьютер1;
Перем Компьютеры1;
Перем Считыватель1;
НачалоСценария
Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Считыватель1 = РабочееМесто1.Считыватели().ПолучитьПоИД( 3117 );
//Коридор-вход офис
//снятие только коридора 1 этажа, подвал остаётся заблокирован
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 59 ).Состояние() <> "СНЯТ" Тогда
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 59 ).Снять();
Если Считыватель1.Состояние() == "ДОСТУП ЗАКРЫТ" Тогда //проверяем состояние считывателя, чтобы не закрыть дверь
Считыватель1.ВосстановитьДоступ();
КонецЕсли;
КонецЕсли;
//снятие коридора УК
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 58 ).Состояние() <> "СНЯТ" Тогда
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 58 ).Снять();
КонецЕсли;
КонецСценария
Разобрался. Команду на постановку давал недоделанный сценарий из Ориона. Начинал его писать для этой же задачи, но не закончил т.к. пока не освоил язык написания. Сценарий прибил, и всё встало на свои места. Короче, работает!Ygin писал(а):Блин, что-то пошло не так.
Всё вроде бы работает, но иногда (почти каждый день) происходит какая то фигня, что после снятия разделов с охраны, общий раздел самопроизвольно пытается встать на охрану. Причём не могу отловить по логу что даёт команду на постановку.
Вернуться в «АРМ Орион Про версии 1.20 и выше»
Сейчас этот раздел просматривают: 6 гостей
Боты: MailRu [Bot]