Копирование категорий счетов из одного вида договора в другой
Сохранить в файлеОбсудить в форуме
Описание
возникла необходимость сделать копию категорий счетов из договора в одной валюте, в такой-же, по сути договор, в другой валюте. Стандартные средства обычно приводят валюту под названием "все валюты" к валюте договора, и приходится каждый раз проходить по категориям, вот и быстренько накропал.
Особые условия - Новый вид договора должен быть уже заведен. Из рублей в валюту копирует неправильно :).
Особые условия - Новый вид договора должен быть уже заведен. Из рублей в валюту копирует неправильно :).
Текст примера
var TypeCatO = tbfile ("cat_type.dbt", "R", 1, "cat_type.dbt","..\\dbfile\\loans.def"), TypeCatN = tbfile ("cat_type.dbt", "W", 1, "cat_type.dbt","..\\dbfile\\loans.def"), TypeCat = tbfile ("cat_type.dbt", "R", 0, "cat_type.dbt","..\\dbfile\\loans.def"), TypeODB = tbfile ("acc_tmpl.dbt", "R", 0, "acc_tmpl.dbt","..\\dbfile\\loans.def"), TypeODBO = tbfile ("acc_tmpl.dbt", "R", 0, "acc_tmpl.dbt","..\\dbfile\\loans.def"), TypeODBN = tbfile ("acc_tmpl.dbt", "W", 0, "acc_tmpl.dbt","..\\dbfile\\loans.def"), TypeCrdO = tbfile ("type_crd.dbt", "R", 0, "type_crd.dbt","..\\dbfile\\loans.def"), TypeCrdN = tbfile ("type_crd.dbt", "R", 0, "type_crd.dbt","..\\dbfile\\loans.def"), OldCrdCode=133, //Вид кредита - источник NewCrdCode=138, //Вид кредита приемник ; TypeCrdO.rec.CreditTypeId=OldCrdCode; if (not TypeCrdO.geteq) MsgBox ("Шаблона кредита с номером ", OldCrdCode, " не существует !!!" );exit;end; TypeCrdN.rec.CreditTypeId=NewCrdCode; if (not TypeCrdN.geteq) MsgBox ("Шаблон кредита с номером ", NewCrdCode, " ещё не создан !!!" );exit;end; TypeCat.rewind; TypeCat.prev; TypeODB.rewind; TypeODB.prev; Message ("Копируются категории учета для ", TypeCrdN.rec.CreditTypeName ); TypeCatO.rec.Reference=OldCrdCode; TypeCatO.rec.CurCode=-2; TypeCatO.rec.AccCategType=0; TypeCatO.getge; TypeCatO.prev; While ((TypeCatO.next) and (TypeCatO.rec.Reference==OldCrdCode)); TypeCatN.rec.Reference=NewCrdCode; TypeCatN.rec.CurCode= TypeCatO.rec.CurCode; TypeCatN.rec.AccCategType= TypeCatO.rec.AccCategType; if (TypeCatN.geteq);println ("Для договора вида ", NewCrdCode, " существует категория ", TypeCatN.rec.AccCategType); Continue; end; copy (TypeCatN, TypeCatO); TypeCatN.rec.Reference=NewCrdCode; TypeCatN.rec.AccCategID=TypeCat.rec.AccCategID+1; if ((TypeCatO.rec.curcode!=0) and (TypeCatO.rec.curcode!=-1)) TypeCatN.rec.curcode=TypeCrdN.rec.CurCode; TypeCatN.rec.curcodeODB=TypeCrdN.rec.CurCode; end; if (TypeCatO.rec.TmplODB!=0); TypeODBO.rec.Id_Tmpl=TypeCatO.rec.TmplODB; TypeODBO.geteq; copy (TypeODBN,TypeODBO); TypeODBN.rec.Id_Tmpl=TypeODB.rec.Id_Tmpl+1; TypeCatN.rec.TmplODB=TypeODBN.rec.Id_Tmpl; end; TypeODBN.insert; TypeCatN.insert; TypeCat.rewind; TypeCat.prev; TypeODB.rewind; TypeODB.prev; end;