0 // Списание книг по инв.номерам // 21 - при передаче с учетом статуса E // На входе записи книг, для которых выбраны инв.номера // v991^A - номер КСУ списания v991^B - номер акта передачи // v992^B - отмеченные инвентарные номера // v992^D - место хранения, v992^M - новое место хранения номера/штрих-коды // Списание книг со статусом С или U // На входе записи отмеченных книг,для которых указано кол-во списываемых экземпляров // v991^A - номер КСУ списания v991^B - номер акта передачи // Поле 992 формируется для повторения 910 поля,если задано кол-во списываемых экземпляров или // задано новое место хранения v992^A-статус,v992^B - инвентарные номера // v992^D - место хранения, // v992^M - новое место хранения,v992^X - кол-во списанных экземпляров,v992^Z-кол-во переданных экземпляров PUTLOG 'На корректировку запись ',f(val(mfn),0,0) // Списание книг по инв.номерам/штрих-кодам // Списание книг для группового учета //15 для группового учета беру только, если задано кол-во ADD 1002 XXXXXXXXXXXXXXXXXXX mpu,,,(v992/) XXXXXXXXXXXXXXXXXXX REP 991 F mpu,(v991/),,,&uf('+7W10#') XXXXXXXXXXXXXXXXXXX REPEAT XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 1003 XXXXXXXXXXXXXXXXXXX &unifor('Av1002#1') XXXXXXXXXXXXXXXXXXX //---добавила предварительную чистку - от пустых подполей ^V DEL 910^V F (if p(v910) then if v910^V='' then '1' else '0' fi fi/) // добавление в списываемое-передаваемое подполей V, M, X, Z, //----Очагова - добавила проверку-фильтр по StatusNoSpis и STATUSPDSH //----добавила проверку на "уже есть поле 910^X" при его добавлении REP 910 F (if p(v910) then v910,,,,,,,,,,,,if v910^v<>'' then else,,,,,,if ( &uf('Av1003^b#1')='' or &uf('+97',v910^B)=&uf('+97',&uf('Av1003^b#1')) ) AND ( &uf('Av1003^H#1')='' or &uf('+97',v910^H)=&uf('+97',&uf('Av1003^H#1')) ) then if &uf('Av1003^D#1')='' or &uf('+97',v910^D)=&uf('+97',&uf('Av1003^D#1')) then if &uf('Av1003^C#1')='' or &uf('+97',v910^C)=&uf('Av1003^C#1') then if &uf('Av1003^E#1')='' or val(v910^E)=val(&uf('Av1003^E#1')) then if &uf('Av1003^U#1')='' or &uf('+97',v910^U)=&uf('+97',&uf('Av1003^U#1') ) then if val(&uf('+97',v910^1))>=val(&uf('Av1003^X#1')) or &uf('+97',v910^1)='' then if &uf('IMAIN,StatusNoSpis,'): v910^A OR s(&uf('IMAIN,STATUSPDSH,p')): v910^a then &uf('+7U10#',,,v910^H,,,if v910^H<>'' and v910^B<>'' then '-' fi,,,,v910^B ' - не списан по статусу') else if (( s(&uf('IMAIN,StatusSpisInd,0,1,5')): v910^A) and (&uf('Av1003^X#1')='' or &uf('Av1003^X#1')='1')) OR (( s(&uf('IMAIN,StatusSpisGroup,U,C')):v910^A ) and &uf('Av1003^X#1')<>'') then,,,'^V',&unifor('Av991^a#1'), if &unifor('Av1003#1'):'^M' then '^M',&unifor('Av1003^M#1'), if &unifor('Av991#1'):'^B' then '^W',&unifor('Av991^b#1') fi fi, if &uf('IMAIN,StatusSpisGroup,U,C'): v910^A then if &unifor('Av1003#1'):'^X' then if v910^X='' then '^X',&unifor('Av1003^X#1') fi fi,if &unifor('Av1003#1'):'^Z' then '^Z',&unifor('Av1003^Z#1') fi fi else &uf('+7U10#',,,v910^H,,,if v910^H<>'' and v910^B<>'' then '-' fi,,,,v910^B ' - не списан по статусу') fi fi else &uf('+7U10#',,,v910^H,,,if v910^H<>'' and v910^B<>'' then '-' fi,,,,v910^B ' - кол-во на списание больше чем в наличии') fi fi fi fi fi else fi fi fi/) XXXXXXXXXXXXXXXXXXX //----исходный статус для инд. запоминаю в ^9 //----Очагова - добавила проверку-фильтр по StatusNoSpis и STATUSPDSH REP 910^A F (if p(v910) then if &uf('+97',v910^v)=&unifor('Av991^a#1') then if &uf('IMAIN,StatusNoSpis,'): v910^A OR s(&uf('IMAIN,STATUSPDSH,p')): v910^a then v910^a else if ( s(&uf('IMAIN,StatusSpisInd,0,1,5')): v910^A) then '6',,,,'^9',v910^A,,,&uf('+7U10#',,v910^H,,,if v910^H<>'' and v910^B<>'' then '-' fi,,,,v910^B ' списан',,| из |v910^D,,,if v910^M<>'' then ' с передачей в ',,,v910^M fi,,,,,,) else v910^a fi fi else v910^a fi fi/) XXXXXXXXXXXXXXXXXXX // перенос списанного-переданного в 940 ADD 940 XXXXXXXXXXXXXXXXXXX &uf('+7W940#'),&uf('+7U940#'(v940|; |)),(if p(v910)then if &uf('+97',v910^v)=&unifor('Av991^A#1') then if &unifor('Ag940#1'):v910 then else v910 fi fi fi/) XXXXXXXXXXXXXXXXXXX // изменение кол-ва в подполе ^1 для U REP 910 F (if p(v910) then if &uf('+97',v910^v)=&uf('Av991^A#1') and s(&uf('IMAIN,StatusSpisGroup,U,C')):v910^A then |^A|v910^a,|^D|v910^d,'^1',f(val(v910^1,' 0')-val(v910^x,' 0'),0,0),|^B|v910^b,|^H|v910^h,|^K|v910^k,|^E|v910^e,|^U|v910^u,|^Y|v910^y,|^C|v910^c,|^F|v910^f,|^T|v910^T,|^S|v910^S,|^=|v910^=,|^!|v910^!,|^2|v910^2,|^5|v910^5,,|^G|v910^G,|^Q|v910^Q,|^R|v910^R,|^4|v910^4,|^0|v910^0,|^L|v910^L, &uf('+7U10#',,v910^H,if v910^H<>'' and v910^B<>'' then '-' fi,,,,v910^B ' списан',,| из |v910^D if v910^M<>'' then ' с передачей в ',,,v910^M fi,,,,,,,,,,,,) else v910 fi fi/) XXXXXXXXXXXXXXXXXXX DEL 910 F (if p(v910) then if s(&uf('IMAIN,StatusSpisGroup,U,C')): v910^a then if v910^1='' then '1' else '0' fi else '0' fi fi/) XXXXXXXXXXXXXXXXXXX //---восстанавливаю статус для инд. с учетом передачи REP 910 F (if p(v910) then if &uf('+97',v910^v)=&uf('Av991^A#1') and p(v910^w) and &uf('+97',v910^w)=&uf('Av991^B#1') then if v910^a:'6' then '^A',,if v910^9<>'' then v910^9 else v910^A fi,,,,else |^A|v910^a fi, if &uf('IMAIN,StatusSpisGroup,U,C'): v910^a then |^1|v910^z fi, |^D|v910^m,|^B|v910^b,|^H|v910^h,|^K|v910^k,|^E|v910^e,|^U|v910^u,|^Y|v910^y,|^C|v910^c,|^F|v910^f,|^G|v910^G,|^2|v910^2,|^5|v910^5,,,|^T|v910^T,|^=|v910^=,|^!|v910^!,|^R|v910^R,|^Q|v910^Q,|^4|v910^4,|^S|v910^S,|^0|v910^0,|^L|v910^L,,,else v910,,fi fi/) XXXXXXXXXXXXXXXXXXX // для добавления переданного повторения для U - через 1004 ADD 1004 XXXXXXXXXXXXXXXXXXX (if p(v940) then if &uf('IMAIN,StatusSpisGroup,U,C'): v940^a then if ( &uf('Av1003^b#1')='' or &uf('+97',v940^B)=&uf('Av1003^b#1') ) AND ( &uf('Av1003^H#1')='' or &uf('+97',v940^H)=&uf('Av1003^H#1') ) then if &uf('+97',v940^v)=&uf('Av991^A#1') and p(v940^w) and &uf('+97',v940^w)=&uf('Av991^B#1') then |^A|v940^A,,,,,|^1|v940^z,|^D|v940^m,|^B|v940^b,|^H|v940^h,|^K|v910^k,|^E|v940^e,|^U|v940^u,|^Y|v940^y,|^C|v940^c,|^F|v940^f,|^2|v940^2,|^5|v910^5 fi,,fi fi fi/) XXXXXXXXXXXXXXXXXXX REPEAT XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // добавление переданного в 910 ADD 910 XXXXXXXXXXXXXXXXXXX if v910:&unifor('Av1004#1') then else &unifor('Av1004#1') fi XXXXXXXXXXXXXXXXXXX DEL 1004 1 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX UNTIL if p(v1004)then '1'else'0'fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ADD 1005 XXXXXXXXXXXXXXXXXXX if p(v910)then f(rsum((if p(v910)then if v910^a<>'6'then '1;' else '0;'fi fi/)),0,0)else if p(v940)then '0'else'1'fi fi XXXXXXXXXXXXXXXXXXX ADD 910 XXXXXXXXXXXXXXXXXXX if val(v1005)>0 then else if v940:'^k'then (if p(v940) then if p(v940^k)then|^A7^K|v940^k,|^D|v940^d fi fi/)else'^A7'fi fi XXXXXXXXXXXXXXXXXXX //----убираю ^9 DEL 940^9 * DEL 910^9 * DEL 1005 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX IF if l("II="v903)>0 then '1'else'0'fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX CORREC '*' (v910/) "II="v903 XXXXXXXXXXXXXXXXXXX ADD 910 XXXXXXXXXXXXXXXXXXX if v1001:'^A7'then'^A7'fi XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX FI XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1002 1 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 1003 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX UNTIL if p(v1002) then '1' else '' fi XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 991 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 992 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // формирование протокола списания PUTLOG &uf('+7G10'),,(g10/),