1 1547 Задание: 0 DEL 991 * ADD 991 '^C0^A0^B0^D0' // проверка записей БД VUZ // 991^A - Удалять запись VUZ, если нет поля 69 // 991^B - Удалять несвязанную/ненайденную дисциплину в записи VUZ //991^C - Удалять дублетные контингенты //991^D - Удалять DISC, если нет 83 //-------------------------------------------------------------------------------------------- проверка записи DISC IF if v920:'DISC' then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if a(v83) then '1' fi PUTLOG 'DISC ',v3^A.30"...",,': нет данных о контингентах, поле 83. (MFN=',f(val(mfn),0,0),')',,,,,if val(v991^D)=1 then '. Запись удалена' fi IF if val(v991^D)=1 then '1' fi DELR XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI FI IF if p(v83) then '1' fi //-----------------------------корректировка разделителя семестров REP 83^F F (if p(v83) then if p(v83^F) then if v83^F: '-' then if &uf('G2-',v83^F): '-' then &uf('+98-/',v83^F) else &uf('+98,/',&uf('V',v83^F) ) fi,,else v83^F fi else # fi fi/) // Формирование полей 1932 - добавляемых и 932 размноженных по cестрам DEL 932 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 1932 (if p(v83) then v83 fi/) REPEAT XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 932 XXXXXXXXXXXXXXXXXXX if &unifor('Av1932^f#1'):'/' then (if &unifor('1*R/?v1932^f#1')<>''then if &unifor('Av1932^W#1')<>'' then '^W',&unifor('Av1932^W#1') fi,if &unifor('Av1932^U#1')<>'' then '^U',&unifor('Av1932^U#1') fi,if &unifor('Av1932^H#1')<>'' then '^H',&unifor('Av1932^H#1') fi,if &unifor('Av1932^N#1')<>'' then '^N',&unifor('Av1932^N#1') fi,if &unifor('Av1932^C#1')<>'' then '^C',&unifor('Av1932^C#1') fi,if &unifor('Av1932^A#1')<>'' then '^A',&unifor('Av1932^A#1') fi,if &unifor('Av1932^V#1')<>'' then '^V',&unifor('Av1932^V#1') fi,if &unifor('Av1932^L#1')<>'' then '^L',&unifor('Av1932^L#1') fi,if &unifor('Av1932^O#1')<>'' then '^O',&unifor('Av1932^O#1') fi,,'^F',&unifor('1*R/?v1932^f#1') fi/) else &unifor('Av1932#1') fi XXXXXXXXXXXXXXXXXXX DEL 1932 1 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX UNTIL if p(v1932)then'1'else''fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX REPEAT XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // поиск записи vuz IF if val(&unifor('JVUZ,?',if &unifor('Av932^a#1')<>'' then &unifor('Av932^a#1'),'-' fi,,if &unifor('Av932^n#1')<>'' then &unifor('Av932^n#1'),'-' fi,,if &unifor('Av932^c#1')<>'' then &unifor('Av932^c#1'),'-' fi,,if &unifor('Av932^v#1')<>'' then &unifor('Av932^v#1'),'-' fi,,if &unifor('Av932^o#1')<>'' then &unifor('Av932^o#1'),'-' fi,,if &unifor('Av932^f#1')<>'' then &unifor('Av932^f#1'),'-' fi))<=0 then '1' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTLOG 'DISC ',v3^A.30"...",,': нет записи VUZ - ',&unifor('Av932^a#1'),,&unifor('Av932^n#1') &unifor('Av932^c#1'),&unifor('Av932^v#1'),&unifor('Av932^o#1'),,&unifor('Av932^f#1'),' (MFN: ',f(val(mfn),0,0),')' XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // если есть запись VUZ есть ли в ней дисциплина? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, IF if val(&unifor('JVUZ,?',if &unifor('Av932^a#1')<>'' then &unifor('Av932^a#1'),'-' fi,,if &unifor('Av932^n#1')<>'' then &unifor('Av932^n#1'),'-' fi,,if &unifor('Av932^c#1')<>'' then &unifor('Av932^c#1'),'-' fi,,if &unifor('Av932^v#1')<>'' then &unifor('Av932^v#1'),'-' fi,,if &unifor('Av932^o#1')<>'' then &unifor('Av932^o#1'),'-' fi,,if &unifor('Av932^f#1')<>'' then &unifor('Av932^f#1'),'-' fi))>0 then '1' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1069 * ADD 1069 &unifor('DVUZ,!?',if &unifor('Av932^a#1')<>'' then &unifor('Av932^a#1'),'-' fi,,if &unifor('Av932^n#1')<>'' then &unifor('Av932^n#1'),'-' fi,,if &unifor('Av932^c#1')<>'' then &unifor('Av932^c#1'),'-' fi,,if &unifor('Av932^v#1')<>'' then &unifor('Av932^v#1'),'-' fi,,if &unifor('Av932^o#1')<>'' then &unifor('Av932^o#1'),'-' fi,,if &unifor('Av932^f#1')<>'' then &unifor('Av932^f#1'),'-' fi,'!,(v69/)')/ IF if s((|!|v1069^D|!|)): s('!',v3^0,'!') then '0' else '1' fi PUTLOG 'В записи контингента ',,,if &unifor('Av932^a#1')<>'' then &unifor('Av932^a#1'),'-' fi,,if &unifor('Av932^n#1')<>'' then &unifor('Av932^n#1'),'-' fi,,if &unifor('Av932^c#1')<>'' then &unifor('Av932^c#1'),'-' fi,,if &unifor('Av932^v#1')<>'' then &unifor('Av932^v#1'),'-' fi,,if &unifor('Av932^o#1')<>'' then &unifor('Av932^o#1'),'-' fi,,if &unifor('Av932^f#1')<>'' then &unifor('Av932^f#1'),'-' fi,,,,' нет дисциплины ',,v3^0 FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1069 * FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if &unifor('Av932^a#1')<>'' then '1' fi // поиск записи FAK IF if &unifor('Av932^w#1')<>'' and &unifor('Av932^u#1')='' then if val(&unifor('JVUZ,FFO=',&unifor('Av932^a#1'),if &unifor('Av932^a#1')='' then 'ВСЕ' fi,,&unifor('Av932^L#1'),,'-',&unifor('Av932^o#1'),if &unifor('Av932^o#1')='' then 'ВСЕ',, fi,))<=0 then '1' fi fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTLOG 'DISC ',v3^A.30"...",': нет записи FAK. ',&unifor('Av932^A#1'),'-',&unifor('Av932^O#1'),' (MFN: ',f(val(mfn),0,0),')' XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 932 1 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX UNTIL if p(v932) then '1'else'' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //---конец есть поле 83 FI //--- конец проверки записи DISC FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //------------------------------------------------------------------------------------------проверка записи VUZ IF if v920: 'VUZ' then '1' else '0' fi //----------------------проверка на дублетные записи VUZ IF if val(&unifor('JVUZ,?',v68^a"-",,v68^n"-",v68^c"-" ,v68^v"-",v68^o"-",v68^f"-"))>1 then '1' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //------------------------------------------------ больше одной записи VUZ IF if val(&uf('DVUZ,!',, '?',,v68^a"-",,v68^n"-",v68^c"-" ,v68^v"-",v68^o"-",v68^f"-",,'!,mfn'))=val(mfn) then '1' fi // на первой записи беру в G11 перечень MFN ADD 111 &uf('+7W11#',,&uf('7,!','?',v68^a"-",,v68^n"-",v68^c"-" ,v68^v"-",v68^o"-",v68^f"-",'!,mfn/') ) PUTLOG 'Дублетные записи VUZ, MFN: ',,(if p(g11) then f(val(g11),0,0) ',' fi) FI IF if val(v991^C)=1 then '1' fi IF if val(&uf('DVUZ,!',, '?',v68^a"-",,v68^n"-",v68^c"-" ,v68^v"-",v68^o"-",v68^f"-",'!,mfn'))