приходилось сталкиваться с подобным, ничего лучьше придумать не смог.
Код:
InitArray(Alarm,0)
Alarm[1] = IsAlarmActive("ЛЗ_авария_01")
Alarm[2] = IsAlarmActive("ЛЗ_авария_02")
Alarm[3] = IsAlarmActive("ЛЗ_авария_03")
Alarm[4] = IsAlarmActive("Обрыв_уров")
Alarm[5] = IsAlarmActive("Отказ_уров")
Alarm[6] = IsAlarmActive("ПЗ_авария_01")
Alarm[7] = IsAlarmActive("ПЗ_авария_02")
Alarm[8] = IsAlarmActive("ПЗ_авария_03")
Alarm[9] = IsAlarmActive("Уров_пред")
Alarm[10] = IsAlarmActive("Уров_пред1")
Alarm[11] = IsAlarmActive("Связь2")
Alarm[12] = IsAlarmActive("Связь3")
Alarm[13] = IsAlarmActive("Связь4")
Alarm[14] = IsAlarmActive("Связь5")
Alarm[15] = IsAlarmActive("Вода")
Alarm[16] = IsAlarmActive("Вода1")
FOR n=0 to 20
Alarm=Alarm+Alarm[n]
NEXT
IF Alarm> 0 THEN
Alarm_1.visible( 1 )
ELSE
Alarm_1.visible( 0 )
ENDIF
т.е. вначале обнуляю массив, потом элементам массива присваиваю статус аварии, и суммирую массив, если больше ноля, значит есть авария.
если аварий в группе много, то скрипт быстрее всего сделать с помощью экселя, скопировав в него и подправив нужную группу аварий.