1 GROUP.wss Имя файла правочника // перевод на следующий семестр // корректируются годы в зав=ти от семестра // можно кор-ть группы по файлу 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 // проверка признака НЕ ПЕРЕВЕДЕН 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 IF if val(&unifor('IMAIN,MODEUND,1'))=1 then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // ------------------технология УНД // сначала создадим поля для старого 90, т.е. 991 DEL 69 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 69 XXXXXXXXXXXXXXXXXXX if p(v991) then if p(v991^u) and &unifor('JVUZ,UPS=',v991^u,'-S'v991^f)<>'' then &unifor('DVUZ,!UPS=',v991^u'-S'v991^f,'!,(|^B|v99^b,|^D|v99^d/)') else if a(v991^u) then if &unifor('JVUZ,?',v991^a"-",v991^n"-",v991^c"-",v991^v"-",v991^o"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^a"-",v991^n"-",v991^c"-",v991^v"-",v991^o"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^a"-",v991^v"-",v991^o"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^a"-",v991^v"-",v991^o"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^a"-",v991^o"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^a"-",v991^o"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^a"-",v991^v"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^a"-",v991^v"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^a"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^a"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^v"-",v991^o"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^v"-",v991^o"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^v"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^v"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^o"-",v991^f"-")>'0' then &unifor('DVUZ,!?',v991^o"-",v991^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v991^f"-")>'0' then &unifor('DVUZ,!?',v991^f"-",'!,(v69/)') fi fi fi fi XXXXXXXXXXXXXXXXXXX // удаление из старых DUNIK ссылок на студента, если есть старое значение, т.е.991 CORREC 'VUZ' v991/v30,if a(v30) then v24 fi (if p(v69^w) then'DUNS='v69^w,'-S'&unifor('Av991^f#1') fi/) DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 111 XXXXXXXXXXXXXXXXXXX (V910/) XXXXXXXXXXXXXXXXXXX DEL 910 F (if p(v910) then if v910^B=&unifor('Av1001#2') and v910^D=&unifor('Av1001^E#1') then '1' else '0' fi fi/) XXXXXXXXXXXXXXXXXXX IF if v111<>v910 then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTFLD 'Удалены сведения о студенте в записи дисциплины. MFN=',f(val(mfn),0,0) XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1001 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // формирование поей 69 заново DEL 69 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 69 XXXXXXXXXXXXXXXXXXX if p(v90) then if p(v90^u) and &unifor('JVUZ,UPS=',v90^u,'-S'v90^f)<>'' then &unifor('DVUZ,!UPS=',v90^u'-S'v90^f,'!,(|^B|v99^b,|^D|v99^d/)') else if a(v90^u) then if &unifor('JVUZ,?',v90^a"-",v90^n"-",v90^c"-",v90^v"-",v90^o"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^a"-",v90^n"-",v90^c"-",v90^v"-",v90^o"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^a"-",v90^v"-",v90^o"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^a"-",v90^v"-",v90^o"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^a"-",v90^o"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^a"-",v90^o"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^a"-",v90^v"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^a"-",v90^v"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^a"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^a"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^v"-",v90^o"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^v"-",v90^o"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^v"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^v"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^o"-",v90^f"-")>'0' then &unifor('DVUZ,!?',v90^o"-",v90^f"-",'!,(v69/)') fi,if &unifor('JVUZ,?',v90^f"-")>'0' then &unifor('DVUZ,!?',v90^f"-",'!,(v69/)') fi fi fi fi XXXXXXXXXXXXXXXXXXX // добавление сведений в новый DUNIK CORREC 'VUZ' v992/v30 (if p(v69^w) then'DUNS='v69^w,'-S'&unifor('Av992^f#1') fi/) ADD 910 XXXXXXXXXXXXXXXXXXX if rsum((if p(v910) then if v910^b=&unifor('Av1001#2') and v910^d=&unifor('Av1001^E#1') then '1;' else '0;'fi fi))>0 then else '^D'v1001^E,'^B',&unifor('Av1001#2'),'^X1' fi XXXXXXXXXXXXXXXXXXX IF if v910:'^X1' then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTFLD 'Добавлены сведения о студенте в запись дисциплины. MFN=',f(val(mfn),0,0) XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 910^X * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1001 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 991 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 992 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец технологии УНД FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if val(&unifor('IMAIN,MODEUND,1'))=0 then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // ------------------технология НУП // удаление из старых НУП ссылок на студента, если есть старое значение, т.е.991 IF if v991^U<>'' and val(&unifor('JVUZ,UPS=',v991^U,'-S',v991^F))>0 then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX CORREC 'VUZ' v991/v30,if a(v30) then v24 fi 'UPS=',v991^u,'-S',v991^f DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 111 XXXXXXXXXXXXXXXXXXX (V910/) XXXXXXXXXXXXXXXXXXX DEL 910 F (if p(v910) then if v910^B=&unifor('Av1001#2') and v910^D=&unifor('Av1001^E#1') then '1' else '0' fi fi/) XXXXXXXXXXXXXXXXXXX IF if v111<>v910 then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTFLD 'Удалены сведения о студенте в записи НУП. MFN=',f(val(mfn),0,0) XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1001 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // добавление в новый НУП студента IF if v992^U<>'' and val(&unifor('JVUZ,UPS=',v992^U,'-S',v992^F))>0 then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX CORREC 'VUZ' '^B',v30,'^D',v992^E 'UPS=',v992^u,'-S',v992^f DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 111 XXXXXXXXXXXXXXXXXXX (v910/) XXXXXXXXXXXXXXXXXXX ADD 910 XXXXXXXXXXXXXXXXXXX if rsum((if p(v910) then if v910^B=&unifor('Av1001^B#1') and v910^D=&unifor('Av1001^D#1') then '1,' else '0,' fi fi))<=0 then v1001 fi XXXXXXXXXXXXXXXXXXX IF if v111<>v910 then '1' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTFLD 'В запись НУП добавлены данные о студенте ',v1001^B,' (гр. ',v1001^D,') MFN=',f(val(mfn),0,0) XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1001 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // формирование поей 69 заново DEL 69 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 69 XXXXXXXXXXXXXXXXXXX if p(v90^U) then &unifor('7VUZ,!DUPSS='v90^u,'-',v90^F,'!,"^B"v5,"^D"v3^0/') fi XXXXXXXXXXXXXXXXXXX // конец технологии НУП FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец есть поле 991 FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец блока - не переведен FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец блока - отчислен FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // конец блока - не пустой идентификатор FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 2000 * GETFLD 4000 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX