Некорректная работа глобальной корректировки DelArh.gbl
Пользователь:
KPopov (IP-адрес скрыт)
Дата: 19, March, 2026 16:20
Добрый день!
Возникла сл. ситуация при использовании глобальной корректировки DelArh.gbl. Имеется запись в базе RDR c 17 повторениями 40 поля ^F20260117^D20260117^C (Посещение)^VЧЗ^1153756^2153756^Iчз. Все посещения за 17.01.2026 г. После выполнения DelArh.gbl в АРМах Каталогизатор или Администратор переносятся в базу RDR_ARH всего 14 записей, в 15 записи - поле 40 - пустое, т.е. три записи куда-то пропали. Из RDR удалились все 17 повторений 40-ого поля, в RDR_ARH пришло 14 записей (15 - с пустым 40 полем).
Что интересно. Я выделил в тестовую запись набор данных именно за 20260117 число, на которых и заметил расхождение. За все остальные дни января удаление повторений 40 поля и перенос в RDR_ARH корректно.
Доп. файлы прикрепить не могу, поэтому
DelArh.gbl
1
DELARH.WSS
Задание даты, признака архивации
//
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
991^A - если дата возврата меньше/равна заданного значения
//
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
991^B - признак переноса в архив
//
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
991^D - переносить, если дата возврата равна заданной на длине заданной
//
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
991^1 - переносить, если кол-во полей 40 больше заданного. Если пусто, то переносить все
DEL
991
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
991
XXXXXXXXXXXXXXXXXXX
'%1',,,&uf('+7W10#'),,&uf('+7W11#')
XXXXXXXXXXXXXXXXXXX
IF
if v991^1='' or val(&uf('+N40')) >= val(v991^1) then '1' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
PUTLOG
'На корректировку MFN=',,f(val(mfn),0,0)
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
1040
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
40
F
(if p(v40) then if v40^F<>'' and v40^F.1<>'*' then if &uf('Av991^D#1')<>'' then if &uf('Av991^D#1')=&uf('+960.',,,&uf('+95',,&uf('Av991^D#1')),,'#',v40^F) then '1' ,,if val(&uf('Av991^B#1'))=1 then &uf('+7U11#',v40) fi,,,else '0' fi,,else if &uf('Av991^A#1')<>'' then if val(v40^F)<=val(&uf('Av991^A#1')) then '1' ,,if val(&uf('Av991^B#1'))=1 then &uf('+7U11#',v40) fi,,,else '0' fi,,else '0' fi fi,,else '0' fi,, fi/)
XXXXXXXXXXXXXXXXXXX
IF
&uf('+7G11#'),,,,if g11<>'' then '1',,,&uf('S0'),&uf('+7W1#',,,f(rsum((if p(g11) then '1,' fi)),0,0) ) fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
PUTLOG
'Всего в архив - ',,g1
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
//
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
------создание записей в архивной БД
REPEAT
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
1040
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
1040
XXXXXXXXXXXXXXXXXXX
&uf('Ag11#',,&uf('S1A'))
XXXXXXXXXXXXXXXXXXX
IF
if val(&uf('DRDR_ARH,?!',,&uf('Av1040^G#1'),,&uf('Av1040^A#1'),,&uf('Av1040^K#1'),,&uf('Av1040^B#1'),,&uf('Av1040^H#1'),,&uf('Av1040^D#1'),,&uf('Av1040^V#1'),,&uf('Av1040^E#1'),,&uf('Av1040^1#1'),,,,,'?,mfn'))>0 then '1' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
PUTLOG
&uf('Av1040^G#1'),,&uf('Av1040^A#1'),,&uf('Av1040^K#1'),,&uf('Av1040^B#1'),,&uf('Av1040^H#1'),,&uf('Av1040^D#1'),,&uf('Av1040^V#1'),,&uf('Av1040^E#1'),,&uf('Av1040^1#1'),,,,' - уже существует'
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
IF
if val(&uf('DRDR_ARH,?!',,&uf('Av1040^G#1'),,&uf('Av1040^A#1'),,&uf('Av1040^K#1'),,&uf('Av1040^B#1'),,&uf('Av1040^H#1'),,&uf('Av1040^D#1'),,&uf('Av1040^V#1'),,&uf('Av1040^E#1'),,&uf('Av1040^1#1'),,,,,'?,mfn'))=0 then '1' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
NEWMFN
'RDR_ARH'
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
30
XXXXXXXXXXXXXXXXXXX
v30
XXXXXXXXXXXXXXXXXXX
ADD
40
XXXXXXXXXXXXXXXXXXX
&uf('Av1040#1')
XXXXXXXXXXXXXXXXXXX
ADD
907
XXXXXXXXXXXXXXXXXXX
if rsum((if p(v907) then if v907^a = &unifor(|3|d907) and v907^b = &unifor('IPRIVATE,FIO,') then '1;'else'0;'fi fi))> 0 then else'^A',&unifor('3'),'^B',&unifor('IPRIVATE,FIO,') fi
XXXXXXXXXXXXXXXXXXX
PUTLOG
'Создана запись в БД ',,&uf('+D'),,," - "v30,,
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
END
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
UNTIL
if val(&uf('SA'))< val(g1) then '1' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
1040
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
991
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
Ирбис64+Турбо 2024
С уважением,
Константин Попов
Вложения:
Тестовая_запись.txt (1.6KB)
Перед_выполнением_DelArh.png (208.7KB)
Протокол_корректировки.png (40.9KB)