1 GROUP.wss Имя файла правочника // 7.1 перевод на следующий семестр // корректируются годы в зав=ти от семестра // можно кор-ть группы по файлу // поле 90 повторяющееся DEL 2000 * ADD 2000 v991^A IF if v2000: '.' then '0' else '1' fi REP 2000 1 v2000,'.mnu' FI DEFFLD 3000 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 4000 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 991 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 992 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // проверка непустого идентификатора IF if a(v30) and a(v24) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTFLD 'Не задан идентификатор студента. MFN=',f(val(mfn),0,0) XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if p(v30) or p(v24) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // если отчислен и не восстановлен то - нет IF if &unifor('Av54^*#1')<>'' and &unifor('Av54^C#1')='' then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTFLD 'Отчислен - переводу не подлежит. MFN=',f(val(mfn),0,0) XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if a(v54) or &unifor('Av54^*#1')<>'' and &unifor('Av54^C#1')<>'' then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // не отчислен //------------------------------------------------ // надстройка - учет повторяемости поля 90 DEL 9002 * ADD 9002 (v90/) DEL 9000 * ADD 9000 (v90/) // в 9001 буду собирать новые поля 90 DEL 9001 * // поея 69 будут формироваться заново DEL 69 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //.............цикл по повторениям поля 90 REPEAT DEL 90 * ADD 90 &uf('Av9000#1') // проверка признака НЕ ПЕРЕВЕДЕН IF if a(v90^1) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // переведен!!!!!!!!! // в 991 старое значение ADD 991 XXXXXXXXXXXXXXXXXXX v90 XXXXXXXXXXXXXXXXXXX // в 992 новое значение ADD 992 XXXXXXXXXXXXXXXXXXX v90 XXXXXXXXXXXXXXXXXXX // Изменение семестра на 1 REP 992^F 1 f(val(v992^F)+1,0,0) XXXXXXXXXXXXXXXXXXX // изменение номера группы IF if v2000<>'' and &unifor('K',v2000,'|',v992^E)<>'' then '1' fi REP 992^E 1 &unifor('K',v2000,'|',v992^E) XXXXXXXXXXXXXXXXXXX FI // проверка четности семестра и изменение годов обучения DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 111 XXXXXXXXXXXXXXXXXXX f(val(v991^F)/2,0,2)/f(val(v991^F)/2,0,0) XXXXXXXXXXXXXXXXXXX IF if val(&unifor('Av111#1')) = val(&unifor('Av111#2')) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // переход от четного к НЕчетному сЕместру - МЕНЯЮ годы DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 111 XXXXXXXXXXXXXXXXXXX &unifor('G0/',v992^0) XXXXXXXXXXXXXXXXXXX REP 111 1 f(val(v111)+1,0,0) XXXXXXXXXXXXXXXXXXX DEL 112 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 112 XXXXXXXXXXXXXXXXXXX &unifor('G1/',v992^0) XXXXXXXXXXXXXXXXXXX REP 112 1 f(val(v112)+1,0,0) XXXXXXXXXXXXXXXXXXX REP 992^0 1 v111,'/',v112 XXXXXXXXXXXXXXXXXXX DEL 112 * FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 111 * // замена поля 90 на новое значение v992 REP 90 1 v992 XXXXXXXXXXXXXXXXXXX IF if p(v991) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // формирование полей 69 // сначала в 112, чтобы не повторять подполя B и D DEL 112 * ADD 112 XXXXXXXXXXXXXXXXXXX if a(v54) or &unifor('Av54#1')<>'' and &unifor('Av54^C#1')<>'' then if p(v90) and a(v90^U) then if &unifor('JVUZ,!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,v90^v,,v90^o,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,v90^v,,v90^o,"-S"v90^f,'?,(v69/)') fi,,,,,,if &unifor('JVUZ,!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,"-S"v90^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',v90^a,,,v90^v,,,v90^o,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,,,v90^v,,,v90^o,,,"-S"v90^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v90^a,,v90^o,,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,,v90^o,,,"-S"v90^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,,v90^o,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,,v90^o,,"-S"v90^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v90^a,,,v90^v,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,,,v90^v,,,"-S"v90^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,,v90^v,,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,if v90^C<>'' then ,v90^c else v90^n fi,,,v90^v,,,"-S"v90^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v90^a,"-S"v90^f)>'0' then &unifor('DVUZ,?!',v90^a,"-S"v90^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v90^v,,,v90^o,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',,,v90^v,,,v90^o,,,"-S"v90^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v90^v,,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',,,v90^v,,,"-S"v90^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v90^o,,,"-S"v90^f)>'0' then &unifor('DVUZ,?!',,,v90^o,,,"-S"v90^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',"-S"v90^f)>'0' then &unifor('DVUZ,?!',"-S"v90^f,'?,(v69/)') fi fi fi XXXXXXXXXXXXXXXXXXX // если в специальности есть точка, то добавляю специальность до точки IF if v90^C<>'' and v90^C:'.' then '1' fi DEL 1090 * ADD 1090 v90 REP 1090^C 1 &uf('G0.',v1090^C) ADD 112 if a(v54) or &unifor('Av54#1')<>'' and &unifor('Av54^C#1')<>'' then if p(v1090) and a(v1090^U) then if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,v1090^v,,v1090^o,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,v1090^v,,v1090^o,"-S"v1090^f,'?,(v69/)') fi,,,,,,if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',v1090^a,,,v1090^v,,,v1090^o,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,,,v1090^v,,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,,v1090^o,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^o,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^o,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,,,v1090^v,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,,,v1090^v,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^v,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^v,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v1090^v,,,v1090^o,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',,,v1090^v,,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v1090^v,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',,,v1090^v,,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v1090^o,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',"-S"v1090^f)>'0' then &unifor('DVUZ,?!',"-S"v90^f,'?,(v69/)') fi fi fi FI // если специальность кончается не на 00, то расширяю на 00 IF if v90^C<>'' then if v90^C*4.1<>'0' or v90^C*5.1<>'0' then '1' fi fi DEL 1090 * ADD 1090 v90 REP 1090^C 1 v1090^C.4,'00' ADD 112 if a(v54) or &unifor('Av54#1')<>'' and &unifor('Av54^C#1')<>'' then if p(v1090) and a(v1090^U) then if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,v1090^v,,v1090^o,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,v1090^v,,v1090^o,"-S"v1090^f,'?,(v69/)') fi,,,,,,if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',v1090^a,,,v1090^v,,,v1090^o,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,,,v1090^v,,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,,v1090^o,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^o,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^o,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,,,v1090^v,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,,,v1090^v,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^v,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,if v1090^C<>'' then ,v1090^c else v1090^n fi,,,v1090^v,,,"-S"v1090^f,'?,(v69/)') fi,,,,if &unifor('JVUZ,!',v1090^a,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',v1090^a,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v1090^v,,,v1090^o,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',,,v1090^v,,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v1090^v,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',,,v1090^v,,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',,,v1090^o,,,"-S"v1090^f)>'0' then &unifor('DVUZ,?!',,,v1090^o,,,"-S"v1090^f,'?,(v69/)') fi,,,,,if &unifor('JVUZ,!',"-S"v1090^f)>'0' then &unifor('DVUZ,?!',"-S"v90^f,'?,(v69/)') fi fi fi FI REPEAT ADD 69 if rsum((if p(v69) then if &uf('+97',v69^B)= &uf('+97',&unifor('Av112^B#1')) and &uf('+97',v69^D)= &uf('+97',&unifor('Av112^D#1')) then '1,' else '0,' fi fi))=0 then &unifor('Av112#1') fi DEL 112 1 UNTIL if p(v112) then '1' fi DEL 1090 * // Удаление 69 в соответствии с изучаемым языком DEL 69 F if v920:'VUZ' then else (if p(v69) then if v69^d:':' then if &unifor('Av26#1')<>'' then if &unifor('DRDR,@'mfn,',v26|, |'):&unifor('G2:'v69^d) then'0'else'1' fi else '1' fi else '0' fi fi/) fi XXXXXXXXXXXXXXXXXXX DEL 991 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 992 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец есть поле 991 FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец блока - переведен!!!!!!! FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 9001 v90 DEL 9000 1 UNTIL if p(v9000) then '1' fi //.....................конец цикла по повторением поля 90 DEL 90 * ADD 90 (v9001/) DEL 9001 * DEL 991 * DEL 992 * // изменилось ли поле 90? IF if v90<>v9002 then '1' fi PUTFLD 'Переведен студент ',v30,'. MFN=',f(val(mfn),0,0) FI DEL 9002 * // конец блока - не отчислен FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец блока - не пустой идентификатор FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 2000 * GETFLD 4000 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX