Ревизия субъектов

Автор:R-Style Softlab
Дата:09.08.2004
Просмотров:2093
Скачиваний:2165
Оценка:, Оценок - 1
Сохранить в файле

Обсудить в форуме

Описание

В 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;