Ревизия субъектов
Сохранить в файлеОбсудить в форуме
Описание
В RS-Bank 5.1 субъекты (клиенты физлица, клиенты юрлица) хранятся в нескольких таблицах, это актуально также для RS-Loans 5.1.93, а также для RS-Retail 5.1.93 (если используется настройка "Единый клиент"). Из-за сбоев, нештатных ситуаций или некорректного использования системы может получиться так, что логическая связь таблиц нарушится, что отразится на работе со справочником субъектов. Если такая ситуация возникла, то необходимо найти "висячие" записи в таблицах, т.е. которым нет соответствия в party.dbt. Для этого предназначен предлагаемый макрос.
Макрос получен из Астраханского филиала Петрокоммерца, автор неизвестен.
Макрос получен из Астраханского филиала Петрокоммерца, автор неизвестен.
Текст примера
Array f; f(0)="ADRESS.dbt"; f(1)="bankdprt.dbt"; f(2)="BNKSCHEM.DBT"; f(3)="CLIENT.DBT"; f(4)="INSTITUT.DBT"; f(5)="OFFICER.DBT"; f(6)="PARTCODE.DBT"; f(7)="PARTYOWN.DBT"; f(8)="PARTYREG.DBT"; f(9)="PERSN.DBT"; f(10)="PMAUTOAC.DBT"; f(11)="PTACC_LS.DBT"; f(12)="PTBICDIR.DBT"; f(13)="PTOFFICE.DBT"; f(14)="PTOFFISU.DBT"; f(15)="SETTACC.DBT"; p=TBFile("party.dbt","R",0,"party.dbt","bank.def"); i=0; while(i<aSize(f)) f(i)=strlwr(f(i)); tf=TBFile(f(i),"R",0,f(i),"bank.def"); message(f(i)); errors=0; while(tf.next()) if(i==9) v=tf.rec.PersonID; else v=tf.rec.PartyID; end; p.rec.PartyID=v; if(not p.getEQ()) errors=errors+1; [#########](v);end; end; [############### - #####](f(i),errors); i=i+1; end;