0 // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Отбираю поля 910, удовлетворяющие условиям (нет ШК). ADD 111 XXXXXXXXXXXXXXXXXXX (if p(v910) then if a(v910^h) then v910 fi fi/) XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Отбираю поля 910, не удовлетворяющие условиям ADD 112 XXXXXXXXXXXXXXXXXXX (if p(v910) then if p(v910^h) then v910 fi fi/) XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Удаляю исходные поля 910 DEL 910 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Формирую поле 910 со статусом "R" - нач. ШК беру из по 300 записи "POLZV" БД CMPL ADD 910 XXXXXXXXXXXXXXXXXXX if p(v111) and v111^h='' then '^AR^B'&uf('+N111'),'/',&uf('DCMPL,!VD=POLZV!,&uf("Av300#1"d920)') fi XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Размножение поля 910 - по числу полей 111 ADD 1000 XXXXXXXXXXXXXXXXXXX &uf('Z') XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Формирую поля 113 (111 объединяю с размноженными 910, дописываю 112) ADD 113 XXXXXXXXXXXXXXXXXXX (if p(v111) then v111,|^H|v910^b fi/)/(v112/) XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Ввожу максимальный присвоенный № ШК, увеличенный на 1, в БД CMPL (замена поля 300 в записи POLZV) CORREC 'CMPL' f(val(&uf('Av910^b#'&uf('+N910')))+1,0,0) 'VD=POLZV' XXXXXXXXXXXXXX REP 300 1 v1001 XXXXXXXXXXXXXXXXXXX DEL 1001 1 XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX END XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Удаление "коротких" полей 910 DEL 910 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX получаю 910 из 113 ADD 910 XXXXXXXXXXXXXXXXXXX (v113/) XXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX Удаление служебных полей 111, 112, 113 DEL 111 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 112 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX DEL 113 * XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX