1 KUMUL909.wss Задание года кумуляции номеров // кумуляция в описании ж по реальным номерам - на сводной записи // используются глобальные 3, 10, 12, 13, 15, 20 // во вложенном формате 6, 7 // g3 - признак, что ошибка DEL 994 * ADD 994 '%1' IF if &uf('+97',v920)='J' then '1' fi,,,,&uf('+7W10#'),,,,&uf('+7W3#') PUTLOG 'Кумуляция номеров для ',,v903,,if v994^A<>'' then ' за ',,v994^A,,' год',,fi,, /* заданы ли несколько годов через запятую? IF if v994: ',' then '1' fi DEL 995 * ADD 995 (if &unifor('1*R,?v994^A#1')<>'' then &unifor('1*R,?v994^A#1') fi/) REP 995 F (if p(v995) then f(val(v995),0,0) fi/) DEL 994 * ADD 994 (|^A|v995/) FI /*---------------------------------------------------------ЦИКЛ ПО годам REPEAT DEL 991 * //------сначала кол-во ответов - не более 1000 ADD 991 &uf('+7W3#'),,,,,,,,,,,,&uf('+7W10#',,,&uf('+3S,0,',,"!I="v903,,'/',&uf('Av994^A#1'),'$',,,,'!,@KUMUL910') ) IF if val(g10)>1000 then '1' fi PUTLOG 'Невозможна кумуляция ',,,if v994^A<>'' then ' по году ',,,v994^A fi,,,' - число номеров должно быть менее 1000',,,,&uf('+7W3#1') FI IF if val(g10)<=1000 then '1' fi //-------номеров меньше 1000 ADD 991 mpu,&uf('+7W10#',,,&uf('+3S,1000,',,"!I="v903,,'/',&uf('Av994^A#1'),'$',,,,'!,@KUMUL910') ),,,&uf('+7G10'),,(g10/) IF if val(&uf('+N991'))=0 then '1' fi PUTLOG 'Не найдены номера для кумуляции по шифру ',,,v903,,'/',&uf('Av994^A#1'),,,,&uf('+7W3#1') FI IF if val(&uf('+N991'))>0 then '1' fi //----------номера по году есть DEL 992 * ADD 992 mpu,&uf('+7W13#',,,,(|^Q|v991^Q,,|^D|v991^D,,|^K|v991^K,,,|^F|v991^F,,,,/) ),,,,&uf('+7W12#') ADD 992 &uf('+7W15#',,f(rsum((if p(g13) then '1,' fi/)),0,0),,,,,) // цикл по g13, в g15 кол-во проходов REPEAT DEL 881 * // заготовка ^H-номер ^V-номер валовый ADD 881 &uf('Ag13#',,,,,g15,,,,,),'^H^V' /*---------Номер REP 881^H 1 &uf('Av881^H#1'),,,,(if p(g10) then if s(g10^Q,,,g10^K,,g10^D,,g10^F,)=s(&uf('Av881^Q#1'),,,&uf('Av881^K#1'),,,&uf('Av881^D#1'),,,,&uf('Av881^F#1'),,,,,) then if g10^H<>'' then ',' g10^H fi fi fi) /* &uf('Av881^H#1'),,,,(if p(v991) then if s(v991^Q,,,v991^K,,v991^D,,v991^F,v991^P)=s(&uf('Av881^Q#1'),,,&uf('Av881^K#1'),,,&uf('Av881^D#1'),,,,&uf('Av881^F#1'),,,,&uf('Av881^P#1'),,) then if v991^H<>'' then ',' v991^H fi fi fi) REP 881^V 1 &uf('Av881^V#1'),,,,(if p(g10) then if s(g10^Q,,,g10^K,,g10^D,,g10^F,,,)=s(&uf('Av881^Q#1'),,,&uf('Av881^K#1'),,,&uf('Av881^D#1'),,&uf('Av881^F#1'),,,) then if g10^V<>'' then ',' g10^V fi fi fi) /* &uf('Av881^V#1'),,,,(if p(v991) then if s(v991^Q,,,v991^K,,v991^D,,v991^F,,,v991^P)=s(&uf('Av881^Q#1'),,,&uf('Av881^K#1'),,,&uf('Av881^D#1'),,&uf('Av881^F#1'),,&uf('Av881^P#1'),,) then if v991^V<>'' then ',' v991^V fi fi fi) ADD 993 &uf('+7U12#',,&uf('Av881#1') ) ADD 993 &uf('+7W15#',,f(val(g15)-1,0,0),,,,) UNTIL if val(g15)>0 then '1' fi DEL 993 * IF if &uf('Av994^A#1')<>'' then '1' fi //----задан год, для которого пересоздаются поля 909 DEL 909 F (if p(v909) then if v909^Q=&uf('Av994^A#1') then '1' else '0' fi fi/) ADD 909 &uf('+7U12#',,(v909/) ),, FI DEL 909 * ADD 909 &uf('+7G12'),,&uf('+7T12#0'),,,,,(|^Q|g12^Q,,|^D|g12^D,,,|^K|g12^K,,,,|^F|g12^F,,,,,if g12^H<>'' then '^H',&uf('U',g12^H) fi,,,,if g12^V<>'' then '^V',&uf('U',g12^V) fi /),, FI //--------конец число номеров менее 1000 FI //--------конец номера по году есть DEL 994 1 UNTIL if p(v994) then '1' fi //----------------------------КОНЕЦ цикла по годам PUTLOG if val(g3)=0 then 'Выполнено в записи MFN=',,f(val(mfn),0,0) fi DEL 991 * DEL 992 * DEL 993 * DEL 881 * FI DEL 994 *