Как установить счетчик номеров вгружаемых док-ов

0 (0)
  • Развернуть Как установить счетчик номеров вгружаемых док-ов ( Ilya  11.07.2003 18:06 )
    3(2)
    До 73-ей сборки не пользовались финансовым мониторингом... Как установить счетчик номеров вгружаемых док-ов (поле NUMB_P в DBF-ке) чтобы не нарушить уникальность нумерации?
    >> Ответить
    • Развернуть opcontr.dbt ключ 5 ( RozhkovaTatyana  11.07.2003 18:17 )
      3(2)
      В Оболочке RSL для файла opcontr.dbt заполните для последней отправленной (или любой "старой" операции) содержимое полей (ключ 5)
      5 YearSend
      5 NumberOp

      При следующей выгрузке в RAV номер первой выгружаемой операции будет равен номер последней (ключ 5) + 1 и т.д.

      Примечание.
      Предвариетельно протестируйте словарь bank.def: при неверной структуре opcontr.dbt нумерация выгружаемых документов будет неверной (cм.Знание №2266)
      >> Ответить
    • Развернуть Как установить счетчик номеров вгружаемых док-ов ( Timur  08.10.2007 07:17 )
      5(1)
      у меня такая же проблемка была, решил так:
      1) Заводим отдельную DBT, с единственым полем, где храним знач-е (уникальное)
      var numb = TBFile("msgnum.dbt","W",0,NULL,"finmonit.def" );

      и обрабатываем вот таким макаром
      macro MSGNUM
      numb.next;
      numb.rec.num = Num;
      Num = numb.rec.num + 1;
      numb.rec.num = Num;
      if(not numb.update)
      msgbox("…бвм Їа®Ў«Ґ¬л б б®§¤ ­ЁҐ¬ ­®¬Ґа , ®бв ­®ўЄ  ўлЈаг§ЄЁ");
      return -1;
      end;
      end;
      Если, что пишите timur@bankik.com.kg
      >> Ответить
    • Развернуть Пример ( Timur  08.10.2007 08:33 )
      5(1)
      Еще раз привет,
      вот мой раб макрос...
      счетчик лучше хранить отдельно от системных таблиц...

      import Globals, CurrInter, BankInter, rsexts, lgs;

      var opcontr_mon = TBFile("opcontr.dbt", "R",3,NULL,"bank.def" ); //дЁ­. ¬®­Ёв®аЁ­Ј
      var opcntrpt_mon = TBFile("opcntrpt.dbt","R",0,NULL,"bank.def" );//ᢥ¤Ґ­Ёп ®Ў гз бв­ЁЄ е
      var notetext_mon = TBFile("notetext.dbt","R",0,NULL,"bank.def" );//ЇаЁ¬Ґз ­Ёп Є а §­л¬ ®ЎкҐЄв ¬
      var objatcor_mon = TBFile("objatcor.dbt","R",0,NULL,"bank.def" );//бЇа ў®з­ЁЄ ЇаЁ­ ¤«Ґ¦­®бвЁ ЇаЁ§­ Є®ў
      var party_mon = TBFile("party.dbt","R",0,NULL,"bank.def" ); //бЇа ў®з­ЁЄ бгЎкҐЄв®ў
      var numb = TBFile("msgnum.dbt","W",0,NULL,"finmonit.def" ); //еа ­Ґ­ЁҐ б®®ЎйҐ­Ёп ў Ј®¤г
      var partcode = TBFile("partcode.dbt","R",0,NULL,"bank.def" ); //Љ®¤л бгЎкҐЄв®ў
      var persn_mon = TBFile("persn.dbt","R",0,NULL,"bank.def"); //”Ё§ЁзҐбЄЁҐ «Ёж 
      var PtrList_num; // ­®¬Ґа гз бв­ЁЄ 
      var num = 1; //б®е࠭塞 ­®¬Ґа б®®ЎйҐ­Ёп ў Ј®¤г
      GetInt(num, "‚Ґ¤ЁвҐ ­®¬Ґа б®®ЎйҐ­Ёп",8);

      var MessageDate = "";
      var mons = "", days = "",years ="", hours ="", mins ="", secs = ""; //¤«п ўлў®¤  ¤ вл б®®ЎйҐ­Ёп

      var INN ="", OKPO ="", PaperIssuer ="", Account ="", RegNumber ="", Name ="", OutStr ="", Postindex ="", codePlace ="", Street ="",
      Region ="", Republic ="", House ="", NumCorps ="", flat ="", BankName ="", BankCode ="", BankCountry ="", BankTerritory = "",
      PageCount ="", PostindexF ="", codePlaceF ="", StreetF ="", RegionF ="", RepublicF ="", HouseF ="", NumCorpsF ="", flatF = "";

      var DateUnLoad; //¤ в  ўлЈаг§ЄЁ
      if(not GetDate(DateUnLoad, "‚ўҐ¤ЁвҐ ¤ вг"))
      exit(1);
      end;

      var rowset = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>" + "\n" + "<ROWSET>" + "\n";
      var addres_of_out_XML_file = "D:\\rsbank51\\Operation";

      var flag_contr = false, flag_cntrpt = false, i = 1;
      var B_OKPO ="", B_Name ="", B_Branch ="", B_PostIndex ="", B_Town ="", B_Region ="", B_Republic ="", B_Street ="", B_House = "";
      var B_INN ="", B_BIC ="", Currency_Code ="";

      file pm (pmpaym); //Ї« вҐ¦Ё
      file atcor (objatcor) key 2; //бЇа ў ЇаЁ­ ¤«Ґ¦­®бвЁ ЇаЁ§­ Є®ў
      file attr (objattr); //€Ґа аеЁп ЇаЁ§­ Є®ў
      file pmnote(notetext); //ЇаЁ¬Ґз ­Ёп Є а §«Ёз­л¬ ®ЎкҐЄв ¬
      file fininstr (fininstr); //”Ё­ ­б®ўл© Ё­бва㬥­в

      file Operation () txt 3000000 write;

      macro demo //¤«п дЁ­¬®­ 
      Name = StrSubSt(opcntrpt_mon.rec.Name,StrFor(34)," ");
      RegNumber = opcntrpt_mon.rec.RegNumber;
      Account = opcntrpt_mon.rec.Account;
      INN = opcntrpt_mon.rec.INN;
      OKPO = opcntrpt_mon.rec.OKPO;
      PaperIssuer = opcntrpt_mon.rec.PaperIssuer;
      BankName = StrSubSt(opcntrpt_mon.rec.BankName,StrFor(34)," ");
      BankCode = opcntrpt_mon.rec.BankCode;
      BankCountry = opcntrpt_mon.rec.CorrCountry;//BankCountry;
      BankTerritory = opcntrpt_mon.rec.BankTerritory;
      if(opcntrpt_mon.rec.ClientID >= 0)
      /* ‹ЁЎ® ­ и Ў ­Є, «ЁЎ® ­ и Є«ЁҐ­в */
      if(opcntrpt_mon.rec.ClientID == 0)
      /* Џ« вЁ«миЁЄ - ­ и Ў ­Є */
      party_mon.rec.partyID = {SelfID};
      else
      /* Џ« вЁ«мйЁЄ - ­ и Є«ЁҐ­в */
      party_mon.rec.partyID = opcntrpt_mon.rec.ClientID;
      end;
      if(not party_mon.GetEQ)
      msgbox("ERROR - ­Ґв Ё­д®а¬ жЁЁ Ї® Ї« вЁ«мйЁЄг");
      return;
      end;
      /* Џ®ва®иЁ¬ ўбҐ, зв® Ґбвм ў Ў §Ґ party_mon */
      Postindex = party_mon.rec.Postindex;
      codePlace = party_mon.rec.codePlace;
      Region = party_mon.rec.Region;
      Republic = party_mon.rec.Republic;
      codePlace = party_mon.rec.codePlace;
      Street = party_mon.rec.Street;
      House = party_mon.rec.House;
      NumCorps = party_mon.rec.NumCorps;
      House = party_mon.rec.House;
      flat = party_mon.rec.flat;
      PostindexF = party_mon.rec.PostindexF;
      codePlaceF = party_mon.rec.codePlaceF;
      RegionF = party_mon.rec.RegionF;
      RepublicF = party_mon.rec.RepublicF;
      codePlaceF = party_mon.rec.codePlaceF;
      StreetF = party_mon.rec.StreetF;
      HouseF = party_mon.rec.HouseF;
      NumCorpsF = party_mon.rec.NumCorpsF;
      HouseF = party_mon.rec.HouseF;
      flatF = party_mon.rec.flatF;
      else
      /* ‚­Ґи­Ё© Є«ЁҐ­в - Їа® ­ҐЈ® §­ Ґ¬ в®«мЄ® в®, зв® Ґбвм ў Ў §Ґ opcntrpt_mon */
      Postindex = "";
      codePlace = "";
      Region = "";
      Republic = "";
      codePlace = "";
      Street = "";
      House = "";
      NumCorps = "";
      House = "";
      flat = "";
      PostindexF = "";
      codePlaceF = "";
      RegionF = "";
      RepublicF = "";
      codePlaceF = "";
      StreetF = "";
      HouseF = "";
      NumCorpsF = "";
      HouseF = "";
      flatF = "";
      end;
      end;

      /* ў§пвм Є вҐЈ®аЁо вЁЇ  Type Ё§ Group ¤«п Ё¤Ґ­вЁдЁЄ в®а  ID */
      MACRO GetCategory (Type, Group, id, flag)
      var Object = id;
      atcor.ObjectType = Type;
      atcor.GroupID = Group;
      atcor.Object = Object;
      if(flag)
      atcor.General = "X";
      atcor.ValidToDate = date(0,0,0);
      if(GetGE(atcor) and (atcor.ObjectType == Type) and
      (atcor.GroupID == Group) and (atcor.Object == Object) and
      (atcor.General == "X"))
      attr.ObjectType = atcor.ObjectType;
      attr.GroupID = atcor.GroupID;
      attr.AttrID = atcor.AttrID;
      if(GetEQ(attr))
      return attr.NumInList;
      end;
      end;
      else
      atcor.General = "";
      atcor.ValidToDate = date(0,0,0);
      if(GetGE(atcor) and (atcor.ObjectType == Type) and
      (atcor.GroupID == Group) and (atcor.Object == Object) and
      (atcor.General == ""))
      attr.ObjectType = atcor.ObjectType;
      attr.GroupID = atcor.GroupID;
      attr.AttrID = atcor.AttrID;
      if(GetEQ(attr))
      return attr.NumInList;
      end;
      end;
      end;
      return "";
      END;

      /* ўлзЁвлў в Є вҐЈ®аЁо CatNum Ї« вҐ¦  paymid */

      MACRO GetPayCode (recid, CatNum, pmrec, flag)
      var id = "", result = "", seekid = 501;
      if (valtype (flag) == V_UNDEF)
      flag = true;
      end;
      if(pmrec)
      pm.PaymentID = recid;
      if(not GetEQ(pm))
      println ("Ї®ЁбЄ Є вҐЈ®аЁЁ Ї« вҐ¦ : ­Ґ ­ ©¤Ґ­ Ї« вҐ¦ " + recid);
      return "";
      end;
      id = string(pm.PaymentId);
      else
      id = string(recid);
      seekid = 3;
      end;
      id = mkstr ("0", 10 - strlen(id)) + id;

      result = GetCategory (seekid,CatNum, id, flag);
      return result;
      END;
      ////////////////////////////////////////////////////////////////////////////
      MACRO GetPayCode3 (recid, CatNum, pmrec, flag)
      var id = "", result = "", seekid = 3;
      if (valtype (flag) == V_UNDEF)
      flag = true;
      end;
      if(pmrec)
      pm.PaymentID = recid;
      if(not GetEQ(pm))
      println ("Ї®ЁбЄ Є вҐЈ®аЁЁ Ї« вҐ¦ : ­Ґ ­ ©¤Ґ­ Ї« вҐ¦ " + recid);
      return "";
      end;
      id = string(pm.PaymentId);
      else
      id = string(recid);
      seekid = 3;
      end;
      id = mkstr ("0", 10 - strlen(id)) + id;
      result = GetCategory (seekid,CatNum, id, flag);
      return result;
      END;


      /* з⥭ЁҐ ЇаЁ¬Ґз ­Ёп ўЁ¤  kind Ї« вҐ¦  paymid */
      MACRO GetPayNote (recid, kind, pmrec)
      var id = "", objtype = 0;
      if(pmrec)
      pm.PaymentID = recid;
      if(not GetEQ(pm))
      println ("Ї®ЁбЄ Є вҐЈ®аЁЁ Ї« вҐ¦ : ­Ґ ­ ©¤Ґ­ Ї« вҐ¦ " + recid);
      return "";
      end;
      id = string(pm.DocumentId);
      objtype = 501;
      else
      id = string(recid);
      objtype = 3;
      end;
      id = mkstr ("0", 10 - strlen(id)) + id;
      keynum (pmnote, 0);
      pmnote.ObjectType = objtype;
      pmnote.DocumentId = id;
      pmnote.NoteKind = kind;
      pmnote.ValidToDate = date (31,12,9999);
      if (geteq (pmnote))
      return trim(pmnote.Text);
      end;
      return "";
      END;

      macro Oper
      var PrtCount = PageCount -1;
      DateSplit(opcontr_mon.rec.Date_Carry, days, mons, years);
      TimeSplit(Time, hours=0, mins=0, secs=0);
      var OperationDate = String(mons:o:2) + "/" +String(days:o:2) + "/" + String(years:o:4) + " " +
      String(hours:o:2) + ":" + String(mins:o:2) + ":" + String(secs:o:2);
      var Lc = ToAnsi(GetPayCode(opcontr_mon.rec.PaymentID, 110, true, true)); //ЇаЁ§­ Є Ї®¤®§аЁвҐ«м­®бвЁ

      fininstr.FIID = opcontr_mon.rec.Code_Currency;
      if(GetEQ(fininstr))
      Currency_Code = fininstr.FI_Code;
      end;
      //debugbreak;
      OutStr = OutStr + ToAnsi("<OPER>" + "\n" +
      "<OPERDATE>" + OperationDate + "</OPERDATE>" + "\n" +
      "<OPER_CODE>" + GetPayCode(opcontr_mon.rec.PaymentID, 113 , true, true) + "</OPER_CODE>" + "\n" + /* ‡¤Ґбм бв ўЁ¬ ­®¬Ґа Є вҐЈ®аЁЁ ў Ї«в вҐ¦Ґ б Є®¤®¬ "‚Ё¤ ®ЇҐа жЁЁ" */
      "<OPER_CODES>" + GetPayCode(opcontr_mon.rec.PaymentID, 113 , true, false) + "</OPER_CODES>" + "\n" + /*  ­ «®ЈЁз­® б ЇаҐ¤л¤г饩 бва®Є®© */
      "<SUMCUR>" + opcontr_mon.rec.SumCur + "</SUMCUR>" + "\n" +
      "<CUR_CODES>" + Currency_Code + "</CUR_CODES>" + "\n" +
      "<SUMTGT>" + opcontr_mon.rec.SumRub + "</SUMTGT>" + "\n" +
      "<SUM>" + opcontr_mon.rec.SumRub + "</SUM>" + "\n" +
      "<SHARE_QTY>" + "" + "</SHARE_QTY>" + "\n" +
      "<SHARE_CAPITAL>" + "" + "</SHARE_CAPITAL>" + "\n" +
      "<REASON>" + StrSubSt(opcontr_mon.rec.Ground,StrFor(34)," ")+ "</REASON>" + "\n" +
      // "<UNUSUAL_CODE>" + String(GetPayCode(opcontr_mon.rec.PaymentID, 110, true, true)) + "</UNUSUAL_CODE>" + "\n" +
      // "<UNUSUAL_CODES>" + GetPayCode(opcontr_mon.rec.PaymentID, 110, true, false) + "</UNUSUAL_CODES>" + "\n" +
      "<LIMIT_CODES>" + Lc + "</LIMIT_CODES>" + "\n" +
      "<SHADY_CODES>" + Lc + "</SHADY_CODES>" + "\n" +
      "<STATUS_CODE>" + opcontr_mon.rec.Status + "</STATUS_CODE>" + "\n" +
      "<PRTCOUNT>" + PrtCount + "</PRTCOUNT>" + "\n" +
      "<EXTRAINFO>" + GetPayNote(opcontr_mon.rec.paymentID, 221, true) + "</EXTRAINFO>" + "\n" +
      "</OPER>" + "\n");
      end;

      macro Is_Closed
      OutStr = OutStr + ToAnsi("</PRTLIST>" + "\n" +
      // "<IS_CLOSED>" + "Y" + "</IS_CLOSED>" + "\n" + /*ЏаЁ§­ Є § ЄалвЁп ®ЇҐа жЁЁ*/
      "</ROW>" + "\n");
      end;

      macro PrintListU(parametr) //ћаЁ¤ЁзҐбЄЁҐ «Ёж 
      var Partic_kind, State, citizen; // State б®бв®п­ЁҐ бзҐв  1-§ зЁб«Ґ­ 2-бЇЁб ­

      if(party_mon.rec.NotResident == "")
      citizen = 1;
      else
      citizen = 2;
      end;

      OutStr = OutStr + ToAnsi( + "<PRTLIST_ITEM num='"+ PtrList_num + "'>" + "\n");
      if(parametr == 1)
      OutStr = OutStr + ToAnsi("<PAGENUM>" + "002ћ" + "</PAGENUM>" + "\n");
      Partic_kind = GetPayCode(opcontr_mon.rec.PaymentID, 111 , true, true);//’ЁЇ гз бв­ЁЄ  ®ЇҐа жЁЁ
      State = 2;
      elif(parametr == 4)
      OutStr = OutStr + ToAnsi("<PAGENUM>" + "003ћ" + "</PAGENUM>" + "\n");
      Partic_kind = GetPayCode(opcontr_mon.rec.PaymentID, 112 , true, true);
      State = 1;
      else
      OutStr = OutStr + ToAnsi("<PAGENUM>" + "004ћ" + "</PAGENUM>" + "\n");
      end;
      OutStr = OutStr + ToAnsi("<PARTICIPANT>" + "\n" +
      /*GetPayCode(opcntrpt_mon.rec.ClientID,111,false)*/
      //GetPayCode(opcntrpt_mon.rec.ClientID,107,false)
      "<PARTIC_KIND>" + "\n" + Partic_kind + "</PARTIC_KIND>" + "\n" +
      "<JURNAME>" + "\n" +
      "<ORGFORM_CODE>" + GetPayCode(opcntrpt_mon.rec.ClientID, 107, false) + "</ORGFORM_CODE>" + "\n" +
      "<ORGNAME>" + /*opcntrpt_mon.rec.Name*/Name + "</ORGNAME>" + "\n" +
      "<BRANCH>" + "ѓ®«®ў­®© ЋдЁб" + "</BRANCH>" + "\n" +
      "</JURNAME>" + "\n" +
      "<REGNUM>" + INN + "</REGNUM>" + "\n" +
      "<OKPO>" + OKPO + "</OKPO>" + "\n" +
      "<FOREIGNER>" +
      "<RESIDENT>" + citizen + "</RESIDENT>" + "\n" +
      "<REGNUM>" + RegNumber + "</REGNUM>" + "\n" +
      "<ORGAN>" + PaperIssuer + "</ORGAN>" + "\n" +
      "</FOREIGNER>" + "\n" +
      "<LEGAL_ADDRESS>" + "\n" +
      "<POSTCODE>" + Postindex + "</POSTCODE>" + "\n" +
      "<TOWN_CODE>" + /*codePlace*/"" + "</TOWN_CODE>" + "\n" +
      "<REGION>" + /*Region*/"" + "</REGION>" + "\n" +
      "<AREA>" + Republic + "</AREA>" + "\n" +
      "<TOWN>" + /*codePlace*/"" + "</TOWN>" + "\n" +
      "<STREET>" + Street + "</STREET>" + "\n" +
      "<HOUSE>" + House + "</HOUSE>" + "\n" +
      "<CORP>" + NumCorps + "</CORP>" + "\n" +
      "<BUILDING>" + House + "</BUILDING>" + "\n" +
      "<ROOM>" + flat + "</ROOM>" + "\n" +
      "</LEGAL_ADDRESS>" + "\n" +
      "<NATURAL_ADDRESS>" + "\n" +
      "<POSTCODE>" + PostindexF + "</POSTCODE>" + "\n" +
      "<TOWN_CODE>" + codePlaceF + "</TOWN_CODE>" + "\n" +
      "<REGION>" + /*RegionF*/"" + "</REGION>" + "\n" +
      "<AREA>" + RepublicF + "</AREA>" + "\n" +
      "<TOWN>" + /*codePlaceF*/"" + "</TOWN>" + "\n" +
      "<STREET>" + StreetF + "</STREET>" + "\n" +
      "<HOUSE>" + HouseF + "</HOUSE>" + "\n" +
      "<CORP>" + NumCorpsF + "</CORP>" + "\n" +
      "<BUILDING>" + HouseF + "</BUILDING>" + "\n" +
      "<ROOM>" + flatF + "</ROOM>" + "\n" +
      "</NATURAL_ADDRESS>" + "\n" +
      "<ADDINFO>" + "\n" +
      "<ACTIVITY>" + "" + "</ACTIVITY>" + "\n" +
      "<ACTIVITIES>" + "" + "</ACTIVITIES>" + "\n" +
      "</ADDINFO>" + "\n" +
      "<DISPONENT>" + "\n" +
      "<NAME>" + "" + "</NAME>" + "\n" +
      "<DOC>" + "\n" +
      "<DOC_CODE>" + "" + "</DOC_CODE>" + "\n" +
      "<SERIES>" + "" + "</SERIES>" + "\n" +
      "<NUM>" + "" + "</NUM>" + "\n" +
      "<ISSUEDATE>" + "" + "</ISSUEDATE>" + "\n" +
      "<ORGAN>" + "" + "</ORGAN>" + "\n" +
      "</DOC>" + "\n" +
      "</DISPONENT>" + "\n" +
      "<PAGENUM_REF>" + "01" + "</PAGENUM_REF>" + "\n" +
      "</PARTICIPANT>" + "\n" +
      "<ACCOUNT>" + "\n" +
      "<NUM>" + Account + "</NUM>" + "\n" +
      "<BANK>" + BankName + "</BANK>" + "\n" +
      "<BIC>" + BankCode + "</BIC>" + "\n" +
      "<COUNTRY_CODE>" + BankCountry + "</COUNTRY_CODE>" + "\n" +
      "<STATE>" + State + "</STATE>" + "\n" +
      "<ADDRESS>" + BankTerritory + "</ADDRESS>" + "\n" +
      "</ACCOUNT>" + "\n" +
      "<SHARES>" + "\n" +
      "<QTY>" + "" + "</QTY>" + "\n" +
      "</SHARES>" + "\n" +
      "</PRTLIST_ITEM>" + "\n");
      end;


      macro PrintListF(parametr) //”Ё§ЁзҐбЄЁҐ «Ёж 
      var citizen, State ; //б®бв®п­ЁҐ бзҐв  1-§ зЁб«Ґ­ 2-бЇЁб ­
      var Partic_kind;
      if(party_mon.rec.NotResident == "")
      citizen = "ЉлаЈл§бв ­";
      else
      citizen = party_mon.rec.NRCountry;
      end;

      persn_mon.keynum = 0;
      persn_mon.rec.PersonID = party_mon.rec.PartyID;
      if(not persn_mon.GetEQ)
      msgbox ("Ќ…’ „ЋЉ“Њ…Ќ’Ђ");
      return;
      end;
      OutStr = OutStr + ToAnsi("<PRTLIST_ITEM num='"+ PtrList_num + "'>" + "\n");
      if(parametr == 1)
      OutStr = OutStr + ToAnsi("<PAGENUM>" + "002”" + "</PAGENUM>" + "\n");
      Partic_kind = GetPayCode(opcontr_mon.rec.PaymentID, 111 , true, true);
      State = 2;
      elif(parametr == 4)
      OutStr = OutStr + ToAnsi("<PAGENUM>" + "003”" + "</PAGENUM>" + "\n");
      Partic_kind = GetPayCode(opcontr_mon.rec.PaymentID, 112 , true, true);
      State = 1;
      else
      OutStr = OutStr + ToAnsi("<PAGENUM>" + "004”" + "</PAGENUM>" + "\n");
      end;
      OutStr = OutStr + ToAnsi("<PARTICIPANT>" + "\n" +
      "<PARTIC_KIND>" + /*GetPayCode(opcntrpt_mon.rec.ClientID,112,false)*/Partic_kind + "</PARTIC_KIND>" + "\n" +
      "<PHISNAME>" + "\n" +
      "<LAST_NAME>" + persn_mon.rec.Name1 + "</LAST_NAME>" + "\n" +
      "<FIRST_NAME>" + persn_mon.rec.Name2 + "</FIRST_NAME>" + "\n" +
      "<MIDDLENAME>" + persn_mon.rec.Name3 + "</MIDDLENAME>" + "\n" +
      "</PHISNAME>" + "\n" +
      "<REGNUM>" + opcntrpt_mon.rec.INN + "</REGNUM>" + "\n" +
      "<NATION_CODE>" + citizen + "</NATION_CODE>" + "\n" +
      "<OWNER>" + "\n" +
      "<FLAG>" + persn_mon.rec.LicenceNumber + "</FLAG>" + "\n" +
      "<OKPO>" + OKPO + "</OKPO>" + "\n" +
      "<ACTIVITIES>" + "" + "</ACTIVITIES>" + "\n" +
      "</OWNER>" + "\n" +
      "<LEGAL_ADDRESS>" + "\n" +
      "<POSTCODE>" + party_mon.rec.Postindex + "</POSTCODE>" + "\n" +
      "<TOWN_CODE>" + /*party_mon.rec.codePlace*/"" + "</TOWN_CODE>" + "\n" +
      "<REGION>" + party_mon.rec.Region + "</REGION>" + "\n" +
      "<AREA>" + party_mon.rec.Republic + "</AREA>" + "\n" +
      "<TOWN>" + /*party_mon.rec.codePlace*/"" + "</TOWN>" + "\n" +
      "<STREET>" + party_mon.rec.Street + "</STREET>" + "\n" +
      "<HOUSE>" + party_mon.rec.House + "</HOUSE>" + "\n" +
      "<CORP>" + party_mon.rec.NumCorps + "</CORP>" + "\n" +
      "<BUILDING>" + party_mon.rec.House + "</BUILDING>" + "\n" +
      "<ROOM>" + party_mon.rec.flat + "</ROOM>" + "\n" +
      "</LEGAL_ADDRESS>" + "\n" +
      "<NATURAL_ADDRESS>" + "\n" +
      "<POSTCODE>" + party_mon.rec.PostindexF + "</POSTCODE>" + "\n" +
      "<TOWN_CODE>" + /*party_mon.rec.codePlaceF*/"" + "</TOWN_CODE>" + "\n" +
      "<REGION>" + party_mon.rec.RegionF + "</REGION>" + "\n" +
      "<AREA>" + party_mon.rec.RepublicF + "</AREA>" + "\n" +
      "<TOWN>" + /*party_mon.rec.codePlaceF*/"" + "</TOWN>" + "\n" +
      "<STREET>" + party_mon.rec.StreetF + "</STREET>" + "\n" +
      "<HOUSE>" + party_mon.rec.HouseF + "</HOUSE>" + "\n" +
      "<CORP>" + party_mon.rec.NumCorpsF + "</CORP>" + "\n" +
      "<BUILDING>" + party_mon.rec.HouseF + "</BUILDING>" + "\n" +
      "<ROOM>" + party_mon.rec.flatF + "</ROOM>" + "\n" +
      "</NATURAL_ADDRESS>" + "\n" +
      "<DOC>" + "\n" +
      "<DOC_CODE>" + opcntrpt_mon.rec.CodeDocum + "</DOC_CODE>" + "\n" +
      "<SERIES>" + opcntrpt_mon.rec.PaperSeries + "</SERIES>" + "\n" +
      "<NUM>" + opcntrpt_mon.rec.PaperNumber + "</NUM>" + "\n" +
      "<ISSUEDATE>" + opcntrpt_mon.rec.PaperIssuedDate + "</ISSUEDATE>" + "\n" +
      "<ORGAN>" + opcntrpt_mon.rec.PaperIssuer + "</ORGAN>" + "\n" +
      "<BIRTHDATE>" + opcntrpt_mon.rec.Birthday + "</BIRTHDATE>" + "\n" +
      "<BIRHPLACE>" + SubStr(persn_mon.rec.BirsPlase,1,254) + "</BIRHPLACE>" + "\n" +
      "</DOC>" + "\n" +
      "<PAGENUM_REF>" + "01" + "</PAGENUM_REF>" + "\n" +
      "</PARTICIPANT>" + "\n" +
      "<ACCOUNT>" + "\n" +
      "<NUM>" + opcntrpt_mon.rec.Account + "</NUM>" + "\n" +
      "<BANK>" + opcntrpt_mon.rec.BankName + "</BANK>" + "\n" +
      "<BIC>" + opcntrpt_mon.rec.BankCode + "</BIC>" + "\n" +
      "<COUNTRY_CODE>" + opcntrpt_mon.rec.BankCountry + "</COUNTRY_CODE>" + "\n" +
      "<STATE>" + State + "</STATE>" + "\n" +
      "<ADDRESS>" + opcntrpt_mon.rec.BankTerritory + "</ADDRESS>" + "\n" +
      "</ACCOUNT>" + "\n" +
      "<SHARES>" + "\n" +
      "<QTY>" + "" + "</QTY>" + "\n" +
      "</SHARES>" + "\n" +
      "</PRTLIST_ITEM>" + "\n");
      end;

      macro Person
      OutStr = OutStr + ToAnsi( "<PERSON>" + "\n" +
      "<ORG_KIND>" + "01" + "</ORG_KIND>" + "\n" +
      "<REGNUM>" + B_INN + "</REGNUM>" + "\n" +
      "<BANK_BIC>" + B_BIC + "</BANK_BIC>" + "\n" +
      "<OKPO>" + B_OKPO + "</OKPO>" + "\n" +
      "<ORGFORM_CODE>" + "07" + "</ORGFORM_CODE>" + "\n" +
      "<PERSON_NAME>" + "ЋвЄал⮥  ЄжЁ®­Ґа­®Ґ ®ЎйҐбвў® €­ўҐбвЁжЁ®­­л© Ў ­Є €бблЄ-Љг«м" + "</PERSON_NAME>" + "\n" +
      "<BRANCH>" + "ѓ®«®ў­®© ЋдЁб" + "</BRANCH>" + "\n" +
      "<LEGAL_ADDRESS>" + "\n" +
      "<POSTCODE>" + B_PostIndex + "</POSTCODE>" + "\n" +
      "<TOWN_CODE>" + "41711204000000" + "</TOWN_CODE>" + "\n" +
      "<REGION>" + "—г©" + "</REGION>" + "\n" +
      "<AREA>" + B_Republic + "</AREA>" + "\n" +
      "<TOWN>" + B_Town + "</TOWN>" + "\n" +
      "<STREET>" + B_Street + "</STREET>" + "\n" +
      "<HOUSE>" + B_House + "</HOUSE>" + "\n" +
      "<CORP>" + "00" + "</CORP>" + "\n" +
      "<BUILDING>" + "00" + "</BUILDING>" + "\n" +
      "<ROOM>" + "00" + "</ROOM>" + "\n" +
      "</LEGAL_ADDRESS>" + "\n" +
      "<NATURAL_ADDRESS>" + "\n" +
      "<POSTCODE>" + B_PostIndex + "</POSTCODE>" + "\n" +
      "<TOWN_CODE>" + "41711204000000" + "</TOWN_CODE>" + "\n" +
      "<REGION>" + B_Region + "</REGION>" + "\n" +
      "<AREA>" + B_Republic + "</AREA>" + "\n" +
      "<TOWN>" + B_Town + "</TOWN>" + "\n" +
      "<STREET>" + B_Street + "</STREET>" + "\n" +
      "<HOUSE>" + B_House + "</HOUSE>" + "\n" +
      "<CORP>" + "00" + "</CORP>" + "\n" +
      "<BUILDING>" + "00" + "</BUILDING>" + "\n" +
      "<ROOM>" + "00" + "</ROOM>" + "\n" +
      "</NATURAL_ADDRESS>" + "\n" +
      "<PERFORMER>" + "\n" +
      "<NAME>" + "џЄ®ўҐ­Є® ‹ аЁб  ЌЁЄ®« Ґў­ " + "</NAME>" + "\n" +
      "<POST>" + "ђЁбЄ-¬Ґ­Ґ¤¦Ґа" + "</POST>" + "\n" +
      "</PERFORMER>" + "\n" +
      "<PHONE>" + "312 622179" + "</PHONE>" + "\n" +
      "</PERSON>");
      end;

      macro ROW
      DateSplit({CurDate}, days, mons, years);
      TimeSplit(Time, hours=0, mins=0, secs=0);
      MessageDate = String(mons:o:2) + "/" +String(days:o:2) + "/" + String(years:o:4) + " " +
      String(hours:o:1) + ":" + String(mins:o:1) + ":" + String(secs:o:1);

      OutStr = OutStr + ToAnsi("<ROW num='" + string(i) + "'>" + "\n" + "<MSG>" + "\n" +
      "<MSGNUM>" + numb.rec.num + "</MSGNUM>" + "\n" +
      "<MSGDATE>" + MessageDate + "</MSGDATE>" + "\n" +
      "<PAGECOUNT>" + PageCount + "</PAGECOUNT>" + "\n" +
      "<MSGTYPE>" + "1" + "</MSGTYPE>" + "\n" +
      "</MSG>" + "\n");
      end;

      macro MSGNUM
      numb.next;
      numb.rec.num = Num;
      Num = numb.rec.num + 1;
      numb.rec.num = Num;
      if(not numb.update)
      msgbox("…бвм Їа®Ў«Ґ¬л б б®§¤ ­ЁҐ¬ ­®¬Ґа , ®бв ­®ўЄ  ўлЈаг§ЄЁ");
      return -1;
      end;
      end;

      //ўлв бЄЁў Ґ¬ €ЌЌ
      partcode.keynum = 0;
      partcode.rec.partyID = {SelfID};
      partcode.rec.codekind = 16;
      if(not partcode.GetEQ)
      msgbox("ERROR");
      return;
      end;
      B_INN = partcode.rec.code;
      //ўлв бЄЁў Ґ¬ Ѓ€Љ
      partcode.keynum = 0;
      partcode.rec.partyID = {SelfID};
      partcode.rec.codekind = 3;
      if(not partcode.GetEQ)
      msgbox("ERROR");
      return;
      end;
      B_BIC = partcode.rec.code;
      //ўлв бЄЁў Ґ¬ ЋЉЏЋ
      party_mon.keynum = 0;
      party_mon.rec.partyID = {SelfID};
      if(not party_mon.GetEQ)
      msgbox("ERROR");
      return;
      end;
      B_OKPO = party_mon.rec.OKPO; //ЋЉЏЋ
      B_Name = party_mon.rec.Name; //ўлв бЄЁў Ґ¬ €¬п ­ иҐЈ® Ѓ ­Є 
      B_Branch = party_mon.rec.Branch; //Branch
      B_PostIndex = party_mon.rec.PostIndex;//Џ®зв®ўл© Ё­¤ҐЄб
      B_Town = party_mon.rec.Place; //ѓ®а®¤
      B_Region = party_mon.rec.Region; //ђҐЈЁ®­
      B_Republic = party_mon.rec.Republic; //ђ ©®­
      B_Street = party_mon.rec.Street; //“«Ёж 
      B_House = party_mon.rec.House; //„®¬

      opcontr_mon.rewind;

      opcontr_mon.rec.date = DateUnLoad;
      opcontr_mon.rec.status = 0;
      flag_contr = (opcontr_mon.GetGe and (opcontr_mon.rec.date == DateUnLoad));

      OutStr = rowset;
      if(not open(Operation,addres_of_out_XML_file + ".xml"))
      MsgBox("ЌҐ ¬®Јг ®вЄалвм д ©« ", Operation);
      Return False;
      end;

      while (flag_contr)
      MSGNUM;
      PageCount = 1;
      PtrList_num = 1;
      opcntrpt_mon.rec.OperationID = opcontr_mon.rec.OperationID;
      opcntrpt_mon.rec.kind = 0;
      flag_cntrpt = opcntrpt_mon.GetGe and (opcntrpt_mon.rec.OperationID == opcontr_mon.rec.OperationID);
      if(not flag_cntrpt)
      msgbox ("NO DOCUMENT");
      return;
      end;
      while(flag_cntrpt)
      if((opcntrpt_mon.rec.ClientID != 0) and (opcntrpt_mon.rec.ClientID != {SelfID}) or (opcntrpt_mon.rec.ClientID == -1) or (party_mon.rec.LegalForm == 1))
      PageCount = PageCount + 1;
      end;
      flag_cntrpt = opcntrpt_mon.next and (opcntrpt_mon.rec.OperationID == opcontr_mon.rec.OperationID)
      end;
      ROW;
      Person;
      Oper;
      opcntrpt_mon.rewind;
      opcntrpt_mon.rec.OperationID = opcontr_mon.rec.OperationID;
      opcntrpt_mon.rec.kind = 0;
      flag_cntrpt = opcntrpt_mon.GetGe and (opcntrpt_mon.rec.OperationID == opcontr_mon.rec.OperationID);
      if(not flag_cntrpt)
      msgbox ("NO DOCUMENT");
      return;
      end;
      OutStr = OutStr + ToAnsi("<PRTLIST>" + "\n");
      while(flag_cntrpt)
      demo;
      if(opcntrpt_mon.rec.ClientID == -1)
      PrintListU(opcntrpt_mon.rec.kind);
      else //((opcntrpt_mon.rec.ClientID != 0) and (opcntrpt_mon.rec.ClientID != {SelfID}))
      if (party_mon.rec.LegalForm == 1)
      PrintListU(opcntrpt_mon.rec.kind);
      PtrList_num = PtrList_num +1;
      else
      PrintListF(opcntrpt_mon.rec.kind);
      PtrList_num = PtrList_num +1;
      end;
      end;
      flag_cntrpt = opcntrpt_mon.next and (opcntrpt_mon.rec.OperationID == opcontr_mon.rec.OperationID);
      end;
      Is_Closed;
      i = i + 1;
      flag_contr = (opcontr_mon.Next and (opcontr_mon.rec.date == DateUnLoad));
      end;
      Operation.str = OutStr + "</ROWSET>";

      insert(Operation);
      close(Operation);
      //§ Єалў Ґ¬ ўбҐ Ў §л
      close(opcontr_mon);
      close(opcntrpt_mon);
      close(objatcor_mon);
      close(party_mon);
      close(numb);
      close(partcode);
      close(persn_mon);
      close(pm);
      close(atcor);
      close(attr);
      close(pmnote);

      if(not CopyFile("D:\\rsbank51\\Operation.xml","\\Ќ з_®® \\sfr\\$Operation", True))
      println("Error Copy file");
      end;

      /*if(not lgServTerm("d:\\rsbank51\\Operation.xml","..\\Timur\\TEST\\Operation.xml"))
      println("Error Copy file");
      end;*/
      >> Ответить
      • Развернуть Тимур... спасибо огромное... но !!! ( Ilya  08.10.2007 09:07 )
        5(1)
        Если вы обратили внимание, когда я писал это сообщение за окном было лето две-тыщи бородатого года... (2003)
        А сейчас осень 2007-го...
        :-))))
        Много воды с тех пор утекло... И многое стало работать в РС-е немного лучше...

        >> Ответить