Не совпадают свертки в CMPL и каталоге
Пользователь:
bazhenov (IP-адрес скрыт)
Дата: 10, February, 2016 15:40
Ситуация: взяли запись из каталога в CMPL, приписали экземпляр и при передаче в каталог экземпляр не приписался: выдало сообщение о не совпадении свертки.
Выяснилось, что свертки почему-то формируются различно для этих БД:
в CMPL:
if v920='ZK'or v920='zk'then if s(v225^v)<>''then'!'v210^d*2,v10^a,&unifor('B',&unifor('Av225^a#1')),&unifor('G1#'&unifor('Av225^v#1')),v215^a else if p(v200^a) then'!'v210^d*2.2,v700^a.9,&unifor('B'v711^a" ",v972^a" ",v200^a),&unifor('G1#'v200^v),if val(v923^h)>0 then &unifor('G1#'v923^h) else v923^h fi,if val(v923^k)>0 then &unifor('G1#'v923^k) else v923^k fi,,f(rsum(v215^a),0,0),,,,fi fi fi
а в каталоге:
if p(v200^a)and a(v981)and a(v463)and (not(v920:'spec'))then'!'v110^b,v11^a,if v210^d.1='['then else v210^d*2.2fi,v700^a.9,&unifor('B'v710^a" ",v200^a),if v920='J'then" "v923^h,if a(v923^h) then" "v923^i fi," "v923^k,if a(v923^k) then" "v923^l fi," "v923^m,if a(v923^m) then" "v923^n fi fi,if v920='J'then else (if p(v925) then &unifor(|G1#|v925^v) fi),(if val(v923^h)>0 then &unifor('G1#'v923^h) else v923^h fi,if val(v923^k)>0 then &unifor('G1#'v923^k) else v923^k fi) fi,f(rsum(v215^a),0,0) fi
Отличие: &unifor('B'v711^a" ",v972^a" ",v200^a)
и &unifor('B'v710^a" ",v200^a)
т.е. если в записи имеется поле 710, либо поле 711 (972), то они, естественно, не совпадут.
Вопрос: из каких соображений это было сделано? Или же просто заляпа?
Предлагается сделать одинаково, например,в обоих вариантах написать:
&unifor('B'v710^a" ",v711^a" ",v972^a" ",v200^a)