Имя вызова подпрограммы нельзя сформировать по ходу скрипта
Напиши за место LOGWRITE ("Подпрограмма 1")... вызовы твоих подпрограмм
IF(ARRSIZE($ARR_R) = 0)
LOGWRITE ("Новый цикл")
FOR($ii=1,$ii<22)
ARRPUSH($ARR_R,$ii)
END_CYC
FOR($ii=ARRSIZE($ARR_R)-1,$ii>0,-1)
$jj = RND(0,$ii)
IF($ii ! $jj)
$tmp = $ARR_R[$jj]
$ARR_R[$jj] = $ARR_R[$ii]
$ARR_R[$ii] = $tmp
END_IF
END_CYC
END_IF
$r = ARRPOP($ARR_R)
SWITCH($r)
CASE(1)
LOGWRITE ("Подпрограмма 1")
CASE(2)
LOGWRITE ("Подпрограмма 2")
CASE(3)
LOGWRITE ("Подпрограмма 3")
CASE(4)
LOGWRITE ("Подпрограмма 4")
CASE(5)
LOGWRITE ("Подпрограмма 5")
CASE(6)
LOGWRITE ("Подпрограмма 6")
CASE(7)
LOGWRITE ("Подпрограмма 7")
CASE(8)
LOGWRITE ("Подпрограмма 8")
CASE(9)
LOGWRITE ("Подпрограмма 9")
CASE(10)
LOGWRITE ("Подпрограмма 10")
CASE(11)
LOGWRITE ("Подпрограмма 11")
CASE(12)
LOGWRITE ("Подпрограмма 12")
CASE(13)
LOGWRITE ("Подпрограмма 13")
CASE(14)
LOGWRITE ("Подпрограмма 14")
CASE(15)
LOGWRITE ("Подпрограмма 15")
CASE(16)
LOGWRITE ("Подпрограмма 16")
CASE(17)
LOGWRITE ("Подпрограмма 17")
CASE(18)
LOGWRITE ("Подпрограмма 18")
CASE(19)
LOGWRITE ("Подпрограмма 19")
CASE(20)
LOGWRITE ("Подпрограмма 20")
CASE(21)
LOGWRITE ("Подпрограмма 21")
END_SWITCH