Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Некорректная работа глобальной корректировки 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)  
Re: Некорректная работа глобальной корректировки DelArh.gbl
Пользователь: ochagova (IP-адрес скрыт)
Дата: 20, March, 2026 13:52

Испытала глобальную из версии 2025 (сервер ИРБИС64). Отработало все верно.
Прикладываю протокол и сами файлы глобальной. Попробуйте.

Вложения: 1.rar (1.9KB)  
Re: Некорректная работа глобальной корректировки DelArh.gbl
Пользователь: KPopov (IP-адрес скрыт)
Дата: 20, March, 2026 16:02

Ваш delarh.gbl отличается от нашего, входящего в дистрибутив. Попробовал с Вашим файлом, - всё получилось корректно.
DelArh.gbl 4 066 31.05.2021 16:32 наш файл
DelArh.gbl 4 845 23.12.2024 11:03 Ваш файл

Спасибо!



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.