0 // v991^A - значение поля 920 для записи WORK // v991^G - ИМЯ БД каталога // v991^B - признак кор-ки 0 - не кор-ть, 1 - кор-ть запись каталога // даработано Паршиков DEL 4000 * DEL 1910 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 1910 XXXXXXXXXXXXXXXXXXX if v991^B='1' then (v910/) else (if p(v910) then if v910^A='1' or v910^A='U' and val(v910^2)>0 then v910 fi fi/) fi XXXXXXXXXXXXXXXXXXX // в поле 2106 номер повторения поля 910 DEL 2106 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 2106 XXXXXXXXXXXXXXXXXXX '0' XXXXXXXXXXXXXXXXXXX //поле для признаков корректировки записи каталога DEL 3333 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //дополнительное поле для признаков корректировки записи каталога DEL 3334 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //-------------------------------------------------------------цикл по повторениям поля 910 REPEAT XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX REP 2106 1 f(val(v2106)+1,0,0) XXXXXXXXXXXXXXXXXXX ADD 3333 '0' ADD 3334 '0' //------- проверяю для статуса U по БД DR соотношение количеств выданных IF if &unifor('Av1910^A#1')='U' and val(&unifor('Av1910^2#1'))>0 and val( &uf('JRDR,H=',if &uf('Av1910^H#1')<>'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi ) )<>val(&unifor('Av1910^2#1')) then '1' else '0' fi ADD 4000 '^A',v991^G,'^B',f(val(MFN),0,0),'^C',v903,'^D',if val( &uf('JRDR,H=',&uf('Av1910^H#1')) )<>0 or val( &uf('JRDR,H=',&uf('Av1910^B#1')) )<>0 then if val(&unifor('Av1910^2#1'))>0 and val( &uf('JRDR,H=',if &uf('Av1910^H#1')<>'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi ) )<> val(&unifor('Av1910^2#1')) then if &uf('Av1910^H#1')<>'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi,'^FНесоответствует кол-во выданных со статусом U и кол-во по БД RDR','^x',v2106 fi,,,else if &unifor('Av1910^H#1')<>'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi,'^FНет данных о выданных со статусом U по БД RDR','^x',v2106 fi REP 3334 L '1' FI // проверяю для статуса U соотношение количеств выданных IF if &unifor('Av1910^A#1')='U' and val(&unifor('Av1910^2#1'))>0 and val(&unifor('Av1910^1#1'))'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi,'^FKол-во выданных со статусом U больше зарегистрированных','^x',v2106 FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if &unifor('Av1910^A#1')='U' and val(&unifor('Av1910^2#1'))>0 and val(&unifor('Av1910^1#1'))'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi )) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 4000 '^A',v991^G,'^B',f(val(MFN),0,0),'^C',v903,'^D',if &unifor('Av1910^H#1')<>'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi,'^FKол-во выданных со статусом U по БД RDR больше зарегистрированных','^x',v2106 REP 3334 L '0' FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //-----------------------------------------------проверка статуса 1 IF if &unifor('Av1910^A#1')='1' then '1' fi,,,,&uf('+7W13#'),, //-----------статус =1 PUTLOG 'Статус ',,&unifor('Av1910^A#1') //---------------есть ли должники по шифру? IF if &unifor('7RDR,?C=',,v903,,,'?,mfn')='' then '1' fi //--------------нет должника по шифру ADD 4000 '^A',v991^G,'^B',f(val(MFN),0,0),'^C',v903,,'^D',if &unifor('Av1910^H#1')<>'' then ,&unifor('Av1910^H#1') else if &unifor('Av1910^B#1')<>'' then &unifor('Av1910^B#1') else ' ' fi fi,'^FЭкземпляр статус 1 - нет должника по шифру',,,,'^E ',,,'^x',v2106 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX REP 3333 L '1' //------конец должники по шифру не найдены FI IF if &unifor('7RDR,?C=',,v903,,,'?,mfn')<>'' then '1' fi //--------------есть должники по шифру // есть ли должники по ИН/ШК? В 1002 MFN всех читатедей по ИН/ШК DEL 1002 * ADD 1002 XXXXXXXXXXXXXXXXXXX if &unifor('7RDR,?H=',,&unifor('Av1910^H#1'),'?,mfn')<>'' then &unifor('7RDR,?H=',,&unifor('Av1910^H#1'),'?,mfn/') else &unifor('7RDR,?H=',,&unifor('Av1910^B#1'),'?,mfn/') fi XXXXXXXXXXXXXXXXXXX PUTLOG 'Должники: 1002=',,,v1002+|, | //-------проверяю на наличие читателя-должника IF if v1002='' then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //--------нет читателя должника ADD 4000 '^A',v991^G,'^B',f(val(MFN),0,0),'^C',v903,,'^D',if &unifor('Av1910^H#1')<>'' then ,&unifor('Av1910^H#1') else if &unifor('Av1910^B#1')<>'' then &unifor('Av1910^B#1') else ' ' fi fi,'^FЭкземпляр статус 1 - нет должника по ИН/ШК',,,,'^E ',,,,'^x',v2106 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX REP 3333 L '1' //------конец нет записи должника FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //-----проверяю на согласованность читателя-должника //-------в g12 собираю результаты - ОК или пусто, в g13 перечень MFN по ИН/ШК IF if v1002<>'' then '1' fi,,,,&uf('+7W12#'),,,,,&uf('+7W13#',,,,(if p(v1002) then if val(&uf('+90'))>1 then ', ' fi,,,,f(val(v1002),0,0) fi/) ),,,,,,,,,,,,,, //---------есть читатели предп.должник //-----------цикл по читателям с ИН/ШК предп.должников REPEAT PUTLOG' 'Должник RDR ',&uf('Av1002#1') // проверка по записи читателю на согласованность инвентарь-БД-на руках DEL 1040 * ADD 1040 &unifor('DRDR,@',&uf('Av1002#1'),,',(v40/)') ADD 1040 (if p(v1040) then if v1040^F: '**' then if &uf('+97',v1040^G)=&uf('+97',&uf('+D')) then if &uf('+97',v1040^A)=&uf('+97',&uf('Av903#1')) then if &uf('+97',v1040^B)=&uf('+97',&uf('Ag10#1')) or &uf('+97',v1040^H)=&uf('+97',&uf('Ag10#1')) then &uf('+7U12#OK'),break,,,, fi fi fi fi fi/) DEL 1002 1 UNTIL if p(v1002) then '1' fi //------результат в g12 PUTLOG 'Результат: ',g12,,,if a(g12) then 'no OK' fi IF if g12='' then '1' fi // несогласованные записи - в &uf('Av1002#1') MFN записи читателя ADD 4000 '^A',v991^G,'^B',f(val(mfn),0,0),,,'^C',v903,'^D',if &unifor('Av1910^H#1')<>'' then &unifor('Av1910^H#1') else &unifor('Av1910^B#1') fi,'^E',,g13,,,'^FНесогласованные записи','^X',v2106 REP 3333 L '1' FI //-----конец есть читатели предп.должники FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //-------------------------------------------------конец есть должники по шифру FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //-------------------------------------------------конец статуса 1 FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // будет ли корректироваться повторение IF if v991^B='1' and &uf('Av3333#',&uf('+N3333'))='1' then '1' else '0' fi ADD 4000 '^FСнят признак занятости' FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if v991^B='1' and &uf('Av3334#',&uf('+N3334'))='1' then '1' else '0' fi ADD 4000 '^FУстановлено число выданных экз-ров для статуса U по БД RDR' FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1910 1 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX UNTIL if p(v1910) then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX //-----------------------------------------------------------------конец цикла по полю 910 // //корректировка каталога, если задано IF if v991^B='1' then '1' else '0' fi REP 910^A F (if p(v910) then if v3333='1' and v910^A='1' then '0' else v910^A fi fi/) REP 910^2 F (if p(v910) then if p(v910^2) then if v910^A='U' then if v910^H<>'' then if(F(val( &uf('JRDR,H=',v910^H) ),0,0)<>'') then F(val( &uf('JRDR,H=',v910^H) ),0,0) else '0' fi else if v910^B<>'' then if(F(val( &uf('JRDR,H=',v910^B) ),0,0)<>'') then F(val( &uf('JRDR,H=',v910^B) ),0,0) else '0' fi fi,,fi,,else v910^2 fi else # fi fi/) FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if v4000<>'' then '1' else '0' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX NEWMFN 'WORK' XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 1001 XXXXXXXXXXXXXXXXXXX (v4000/) XXXXXXXXXXXXXXXXXXX ADD 920 XXXXXXXXXXXXXXXXXXX v991^A XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX PUTLOG (v4000/) DEL 4000 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 3333 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 3334 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 2106 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1910 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1040 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 991 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX