0 // Удаление из записи полей 691 // удаляемые поля в 991 //14 если в 991 есть ^X, то передаю в архивное поле 943 //19 v991^Z - РП, которую надо удалить, только // g11 - кол-во полей 991 // g10 - счетчик повторений 991 ADD 991 &uf('+7W5#') //удаляю повторение, в котором только ^X DEL 991 F (if p(v991) then if v991: '^X' then '1',,&uf('+7W5#1') else '0' fi fi/) IF if p(v691) then '1' fi,,,&uf('+7W10#1'),,,&uf('+7W11#',,&uf('+N991'),,,,,) //----------------------------есть поле 691--------------------- DEL 111 * ADD 111 (v691/) REPEAT // если ^Z=1, то удвляю только РП IF if &uf('Av991^Z#1')<>'' then '1' fi DEL 691^5 F (if p(v691) then if v691^5<>'' then if &uf('+97',v691^A)=&uf('+97',&uf('Av991^A#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^N)=&uf('+97',&uf('Av991^N#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^C)=&uf('+97',&uf('Av991^C#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^V)=&uf('+97',&uf('Av991^V#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^O)=&uf('+97',&uf('Av991^O#',,&uf('Ag10#1'),,) ) and val(v691^F)=val( &uf('Av991^F#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^S)=&uf('+97',&uf('Av991^S#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^G)=&uf('+97',&uf('Av991^G#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^I)=&uf('+97',&uf('Av991^I#',,&uf('Ag10#1'),,) ) then '1' else '0' fi else '0' fi fi/)/ FI IF if &uf('Av991^Z#1')='' then '1' fi // удаление самого повторения DEL 691 F (if p(v691) then if &uf('+97',v691^A)=&uf('+97',&uf('Av991^A#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^N)=&uf('+97',&uf('Av991^N#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^C)=&uf('+97',&uf('Av991^C#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^V)=&uf('+97',&uf('Av991^V#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^O)=&uf('+97',&uf('Av991^O#',,&uf('Ag10#1'),,) ) and val(v691^F)=val( &uf('Av991^F#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^S)=&uf('+97',&uf('Av991^S#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^G)=&uf('+97',&uf('Av991^G#',,&uf('Ag10#1'),,) ) and &uf('+97',v691^I)=&uf('+97',&uf('Av991^I#',,&uf('Ag10#1'),,) ) then '1' else '0' fi fi/) FI ADD 991 &uf('+7W10#',,,,,f(val(g10)+1,0,0),,,,,) UNTIL if val(g10)<=val(g11) then '1' fi IF if v111<>v691 then '1' fi PUTLOG 'Удалены данные из записи MFN=',f(val(mfn),0,0) FI DEL 111 * IF if val(g5)>0 then '1' fi,,,,,,,,,&uf('+7W10#1') //----------------------передача удаленных в архив REPEAT ADD 943 if a(v943) or rsum((if p(v943) then if &uf('+97',v943^A)=&uf('+97',,&uf('Av991^A#',,&uf('Ag10#1'),,),,,) and &uf('+97',v943^N)=&uf('+97', &uf('Av991^N#',,&uf('Ag10#1'),,) ) and &uf('+97',v943^C)=&uf('+97', &uf('Av991^C#',,&uf('Ag10#1'),,) ) and &uf('+97',v943^V)=&uf('+97', &uf('Av991^V#',,&uf('Ag10#1'),,) ) and &uf('+97',v943^O)=&uf('+97', &uf('Av991^O#',,&uf('Ag10#1'),,) ) and val(v943^F)=val( &uf('Av991^F#',,&uf('Ag10#1'),,) ) and &uf('+97',v943^S)=&uf('+97', &uf('Av991^S#',,&uf('Ag10#1'),,) ) and &uf('+97',v943^G)=&uf('+97', &uf('Av991^G#',,&uf('Ag10#1'),,) ) then '1,' fi fi))=0 then &unifor('Av991#' &uf('Ag10#1') ) fi ADD 991 &uf('+7W10#',,,,,f(val(g10)+1,0,0),,,,,) UNTIL if val(g10)<=val(g11) then '1' fi FI //------конец задана передача------------------------- IF if &unifor('IMAIN,NAMECMPL,')<>'' and &unifor('IMAIN,NAMECMPL,')<>&uf('+D') then '1' fi //------------------------------удаление из БД CMPL, если задано имя NameCmpl и если текущая не CMPL // в БД CMPL запись с тем же шифром! CORREC &unifor('IMAIN,NAMECMPL,') mpu,,(v991/) "I="v903 IF if p(v691) then '1' fi,,,,,,,,&uf('+7W10#1'),,,,&uf('+7W11#',,,&uf('+N1001'),,,,) DEL 111 * ADD 111 (v691/) REPEAT DEL 691 F (if p(v691) then if &uf('+97',v691^A)=&uf('Av1001^A#',,&uf('Ag10#1'),,) and &uf('+97',v691^B)=&uf('Av1001^B#',,&uf('Ag10#1'),,) and &uf('+97',v691^N)=&uf('Av1001^N#',,&uf('Ag10#1'),,) and &uf('+97',v691^C)=&uf('Av1001^C#',,&uf('Ag10#1'),,) and &uf('+97',v691^I)=&uf('Av1001^I#',,&uf('Ag10#1'),,) and &uf('+97',v691^V)=&uf('Av1001^V#',,&uf('Ag10#1'),,) and &uf('+97',v691^O)=&uf('Av1001^O#',,&uf('Ag10#1'),,) and val(v691^F)=val(&uf('Av1001^F#',,&uf('Ag10#1'),,)) and &uf('+97',v691^S)=&uf('Av1001^S#',,&uf('Ag10#1'),,) and &uf('+97',v691^G)=&uf('Av1001^G#',,&uf('Ag10#1'),,) then '1' else '0' fi fi/) ADD 1001 &uf('+7W10#',,,,,f(val(g10)+1,0,0),,,,,) UNTIL if val(g10)<=val(g11) then '1' fi IF if v111<>v691 then '1' fi PUTLOG 'Удалены данные из записи БД ',&unifor('IMAIN,NAMECMPL,'),,' MFN=',f(val(mfn),0,0) FI DEL 111 * FI END FI //--------------конец CMPL-------------------------- FI //----------конец есть поле 691-------------------- DEL 111 * DEL 991 * DEL 992 *