акюмйяьюакнмнл [07.11.2005] "нОЕПЮЖХХ Я йай Б 2005";

var Buf[]      :String;
var Bufйай[]   :String;

var StoreMaskйай   :String;
var Storeйай       :String;
var StoreFlagйняцс :Logical;

var cacheооо2005_йНД[]   :String;   var cacheооо2005_мЮХЛ[]   :String;
var cacheтйп2005_йНД[]   :String;   var cacheтйп2005_мЮХЛ[]   :String;
var cacheйжяп2005_йНД[]  :String;   var cacheйжяп2005_мЮХЛ[]  :String;
var cacheйбп2005_йНД[]   :String;   var cacheйбп2005_мЮХЛ[]   :String;
var cacheйняцс2005_йНД[] :String;   var cacheйняцс2005_мЮХЛ[] :String;
var cacheяверю_йНД[]     :String;   var cacheяверю_мЮХЛ[]     :String;
var cacheйд2005_йНД[]    :String;   var cacheйд2005_мЮХЛ[]    :String;
var cacheйхбтд2005_йНД[] :String;   var cacheйхбтд2005_мЮХЛ[] :String;

Func нАЗЕДХМХРЭ(Value1:String; Value2:String; Sep:String) :String;
var Ret :String;
 if Value1<>"" and Value2<>"": Ret=Value1+Sep+Value2;
 |  Value1= "" and Value2<>"": Ret=Value2;
 |  Value1<>"" and Value2="" : Ret=Value1;
 |  True: Ret="";
 fi;
 ^Ret;
end;

Func DelDot(Value:String) :String;
var p :Integer;
 p=Pos(".", Value);
 while p>0 do Value=Delete(Value,p,1); p=Pos(".",Value); od;
 ^Value;
end;

Proc CrdToCache2005(NameVoc:String; Update:Logical);
var RO, i, num :Integer;
var йНД, мЮХЛ :String;
 if NameVoc="ооо2006"  : if пюа.соо.йай2005.cacheооо2005_йНД[1]  ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheооо2005_йНД);   ClearVariable(пюа.соо.йай2005.cacheооо2005_мЮХЛ);   fi;
 |  NameVoc="тйп2006"  : if пюа.соо.йай2005.cacheтйп2005_йНД[1]  ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheтйп2005_йНД);   ClearVariable(пюа.соо.йай2005.cacheтйп2005_мЮХЛ);   fi;
 |  NameVoc="йжяп2006" : if пюа.соо.йай2005.cacheйжяп2005_йНД[1] ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheйжяп2005_йНД);  ClearVariable(пюа.соо.йай2005.cacheйжяп2005_мЮХЛ);  fi;
 |  NameVoc="йбп2006"  : if пюа.соо.йай2005.cacheйбп2005_йНД[1]  ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheйбп2005_йНД);   ClearVariable(пюа.соо.йай2005.cacheйбп2005_мЮХЛ);   fi;
 |  NameVoc="йняцс2006": if пюа.соо.йай2005.cacheйняцс2005_йНД[1]="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheйняцс2005_йНД); ClearVariable(пюа.соо.йай2005.cacheйняцс2005_мЮХЛ); fi;
 |  NameVoc="яверю2006": if пюа.соо.йай2005.cacheяверю_йНД[1]    ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheяверю_йНД);     ClearVariable(пюа.соо.йай2005.cacheяверю_мЮХЛ);     fi;
 |  NameVoc="яв"       : if пюа.соо.йай2005.cacheяверю_йНД[1]    ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheяверю_йНД);     ClearVariable(пюа.соо.йай2005.cacheяверю_мЮХЛ);     fi;
 |  NameVoc="йд2006"   : if пюа.соо.йай2005.cacheйд2005_йНД[1]   ="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheйд2005_йНД);    ClearVariable(пюа.соо.йай2005.cacheйд2005_мЮХЛ);    fi;
 |  NameVoc="йхтд2006" : if пюа.соо.йай2005.cacheйхбтд2005_йНД[1]="": Update=True; fi; if Update: ClearVariable(пюа.соо.йай2005.cacheйхбтд2005_йНД); ClearVariable(пюа.соо.йай2005.cacheйхбтд2005_мЮХЛ); fi;
 |  True: Exit;
 fi;
 if Update:
   RO=OpenWorkArea("пон_ачдф_йкюяя", "NAME_VOC;CODE", "NAME_VOC='"+NameVoc+"'");
   Try
     num=Records(RO);
     for i=1 to num do
       йНД =GetFieldS(RO, i, "CODE");
       мЮХЛ=GetFieldS(RO, i, "TXT");
       if NameVoc="ооо2006"  : cacheооо2005_йНД[i]   = йНД; cacheооо2005_мЮХЛ[i]   = мЮХЛ;
       |  NameVoc="тйп2006"  : cacheтйп2005_йНД[i]   = йНД; cacheтйп2005_мЮХЛ[i]   = мЮХЛ;
       |  NameVoc="йжяп2006" : cacheйжяп2005_йНД[i]  = йНД; cacheйжяп2005_мЮХЛ[i]  = мЮХЛ;
       |  NameVoc="йбп2006"  : cacheйбп2005_йНД[i]   = йНД; cacheйбп2005_мЮХЛ[i]   = мЮХЛ;
       |  NameVoc="йняцс2006": cacheйняцс2005_йНД[i] = йНД; cacheйняцс2005_мЮХЛ[i] = мЮХЛ;
       |  NameVoc="яверю2006": cacheяверю_йНД[i]     = йНД; cacheяверю_мЮХЛ[i]     = мЮХЛ;
       |  NameVoc="яв"       : cacheяверю_йНД[i]     = йНД; cacheяверю_мЮХЛ[i]     = мЮХЛ;
       |  NameVoc="йд2006"   : cacheйд2005_йНД[i]    = йНД; cacheйд2005_мЮХЛ[i]    = мЮХЛ;
       |  NameVoc="йхтд2006" : cacheйхбтд2005_йНД[i] = йНД; cacheйхбтд2005_мЮХЛ[i] = мЮХЛ;
       fi;
     od;
   Finally
     CloseWorkArea(RO);
   end;
 fi;
end;

Func нВЕПЕДЭ(Val:String) :String;
-- ПЮЯОНКНФЕМХЕ ЩКЕЛЕМРНБ Б пюа.соо.йай2005.Buf
 if Val="1": ^"01_12";
 |  Val="2": ^"13_16";
 |  Val="3": ^"17_22";
 else ^"";
 fi;
end;

--???.????.???????.???.?.???.??.???    - яВЕР ЙКЮЯЯХТХЙЮЖХХ ПЮЯУНДНБ
--???.?.??.?????.??.????.?.???.??.???  - яВЕР ЙКЮЯЯХТХЙЮЖХХ ДНУНДНБ
--???.??.??.??.??.??.????.?.???.??.??? - яВЕР ЙКЮЯЯХТХЙЮЖХХ ХЯРНВМХЙНБ ДЕТХЖХРНБ АЧДФЕРЮ
--000000000111111111122222222223333333
--123456789012345678901234567890123456

Func яОХЯНЙйайХЕПЮПУ2005(MaskAcc:String; яРПСЙРСПЮ:String; йняцс:Logical; FlagUpd:Logical) :Logical;
var txt, tmp, РЛО, MaskAcc_, Ц1, Ц2, Ц3, Ц4, Ц5, Ц6, Ц7 :String;
var nn, i, z, j, k1, k2 :Integer;
var дЕПЕБН :Logical;
 if not(яРПСЙРСПЮ<>"йп" or яРПСЙРСПЮ<>"йд" or яРПСЙРСПЮ<>"йхтд"): яРПСЙРСПЮ=""; fi;
 ClearVariable(пюа.соо.йай2005.Buf);
 nn=0; пюа.ачдфер2005.пЕФХЛлЮЯЙХ="?";
 if MaskAcc<>"": MaskAcc="("+MaskAcc+")"; fi;
 if яРПСЙРСПЮ="йп"   : MaskAcc=нАЗЕДХМХРЭ(MaskAcc, пюа.ачдфер2005.лЮЯЙЮяВЕРЮтйп , "&");
 |  яРПСЙРСПЮ="йд"   : MaskAcc=нАЗЕДХМХРЭ(MaskAcc, пюа.ачдфер2005.лЮЯЙЮяВЕРЮйд  , "&");
 |  яРПСЙРСПЮ="йхтд" : MaskAcc=нАЗЕДХМХРЭ(MaskAcc, пюа.ачдфер2005.лЮЯЙЮяВЕРЮйхтд, "&");
 fi;
 if FlagUpd=False: if MaskAcc<>пюа.соо.йай2005.StoreMaskйай or пюа.соо.йай2005.Bufйай[1]="" or пюа.соо.йай2005.StoreFlagйняцс<>йняцс: FlagUpd=True; fi; fi;
 if FlagUpd=False: ^True; fi;
 FlagUpd=False;
 txt=if(йняцс, "+йняцс", "");
 ShowProgress(0, "оНДЦНРНБЙЮ ДЮММШУ ДКЪ ЯОХЯЙЮ йай"+txt+"...");
 Try
   ClearVariable(пюа.соо.йай2005.Bufйай);
   if яРПСЙРСПЮ="йп" or яРПСЙРСПЮ="":
     ClearVariable(пюа.соо.йай2005.Buf);
     if яРПСЙРСПЮ="": MaskAcc_=нАЗЕДХМХРЭ(MaskAcc, пюа.ачдфер2005.лЮЯЙЮяВЕРЮтйп, "&"); else MaskAcc_=MaskAcc; fi;
     if йняцс: 
       nn=GetGroupAccounts(MaskAcc_, пюа.соо.йай2005.Buf, 1,2,3,4,8);
     else 
       nn=GetGroupAccounts(MaskAcc_, пюа.соо.йай2005.Buf, 1,2,3,4);
     fi;
     CopyArray(пюа.соо.йай2005.Buf, пюа.соо.йай2005.Bufйай);
   fi;
   if яРПСЙРСПЮ="йд" or яРПСЙРСПЮ="":
     ClearVariable(пюа.соо.йай2005.Buf);
     if яРПСЙРСПЮ="": MaskAcc_=нАЗЕДХМХРЭ(MaskAcc, пюа.ачдфер2005.лЮЯЙЮяВЕРЮйд, "&"); else MaskAcc_=MaskAcc; fi;
     if йняцс: 
       nn=GetGroupAccounts(MaskAcc_, пюа.соо.йай2005.Buf, 1,2,3,4,5,6,10);
     else 
       nn=GetGroupAccounts(MaskAcc_, пюа.соо.йай2005.Buf, 1,2,3,4,5,6);
     fi;
     for i=1 to nn do
       if SearchInArray(пюа.соо.йай2005.Bufйай, пюа.соо.йай2005.Buf[i],True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, пюа.соо.йай2005.Buf[i]); fi;
     od;
   fi;
   if яРПСЙРСПЮ="йхтд" or яРПСЙРСПЮ="":
     ClearVariable(пюа.соо.йай2005.Buf);
     if яРПСЙРСПЮ="": MaskAcc_=нАЗЕДХМХРЭ(MaskAcc, пюа.ачдфер2005.лЮЯЙЮяВЕРЮйхтд, "&"); else MaskAcc_=MaskAcc; fi;
     if йняцс: 
       nn=GetGroupAccounts(MaskAcc_, пюа.соо.йай2005.Buf, 1,2,3,4,5,6,7,11);
     else 
       nn=GetGroupAccounts(MaskAcc_, пюа.соо.йай2005.Buf, 1,2,3,4,5,6,7);
     fi;
     for i=1 to nn do
       if SearchInArray(пюа.соо.йай2005.Bufйай, пюа.соо.йай2005.Buf[i],True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, пюа.соо.йай2005.Buf[i]); fi;
     od;
   fi;
   nn=LengthOfArray(пюа.соо.йай2005.Bufйай);
   if nn=0: Message("б ЯРПСЙРСПЕ СВЕРЮ МЕР йай ДКЪ ЛЮЯЙХ ЯВЕРНБ"+Chr(13)+MaskAcc+"!", mtError); ^False; fi;
   if nn>10 or (nn<11 and йняцс=True): дЕПЕБН=True; else дЕПЕБН=False; fi;
   --дНАЮБКЕМХЕ ЦПСОО
   ShowProgress(nn, "дНАЮБКЕМХЕ ЦПСОО ДКЪ ЯОХЯЙЮ йай"+txt+"...");
   nn=1;
   while пюа.соо.йай2005.Bufйай[nn]<>"" do
     Ц1=""; Ц2=""; Ц3=""; Ц4=""; Ц5=""; Ц6=""; Ц7="";
     ProgressPos(nn);
     if яРПСЙРСПЮ="": tmp=пюа.ачдфер2005.рХОйайяВЕРЮ(пюа.соо.йай2005.Bufйай[nn]); else if яРПСЙРСПЮ="йп": tmp="тйп"; else tmp=яРПСЙРСПЮ; fi; fi;
     if tmp="тйп":
       if дЕПЕБН:
         Ц1=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "ооо", True)+".";
         Ц2=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "по" , True)+".";
         Ц3=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "жя" , True)+".";
       fi;
       if йняцс: Ц4=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "бп" , True)+"."; fi;
     | tmp="йд":
       if дЕПЕБН:
         Ц1=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "ооо", True)+".";
         Ц2=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "цп" , True)+".";
         Ц3=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "оцп", True)+".";
         Ц4=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "яр" , True)+".";
         Ц5=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "щк" , True)+".";
       fi;
       if йняцс: Ц6=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "опц", True)+"."; fi;
     | tmp="йхтд":
       if дЕПЕБН:
         Ц1=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "ооо", True)+".";
         Ц2=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "цп" , True)+".";
         Ц3=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "оцп", True)+".";
         Ц4=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "яр" , True)+".";
         Ц5=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "ояр", True)+".";
         Ц6=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "щк" , True)+".";
       fi;
       if йняцс: Ц7=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[nn], tmp, "опц", True)+"."; fi;
     fi;
     --дНАЮБКЕМХЕ ЦПСООШ ХДЕР ОЕПЕД БШАПЮММШЛ ЩКЕЛЕМРНЛ (ЯНПРХПНБЙЮ)
     if Ц1<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц1, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц1); nn=nn+1; fi;
     if Ц2<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц2, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц2); nn=nn+1; fi;
     if Ц3<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц3, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц3); nn=nn+1; fi;
     if Ц4<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц4, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц4); nn=nn+1; fi;
     if Ц5<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц5, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц5); nn=nn+1; fi;
     if Ц6<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц6, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц6); nn=nn+1; fi;
     if Ц7<>"" and SearchInArray(пюа.соо.йай2005.Bufйай, Ц7, True)=-1: InsertInArraySort(пюа.соо.йай2005.Bufйай, Ц7); nn=nn+1; fi;
     nn=nn+1;
   od;
   --дНАЮБКЕМХЕ МЮХЛЕМНБЮМХЪ
   nn=LengthOfArray(пюа.соо.йай2005.Bufйай);
   ShowProgress(nn, "оНЯРПНЕМХЕ ЯОХЯЙЮ йай"+txt+"...");
   if tmp="тйп":
     CrdToCache2005("ооо2006"  , False);
     CrdToCache2005("тйп2006"  , False);
     CrdToCache2005("йжяп2006" , False);
     CrdToCache2005("йбп2006"  , False);
     if йняцс: CrdToCache2005("йняцс2006", False); fi;
     for i=1 to nn do
       ProgressPos(i);
       if Match(пюа.соо.йай2005.Bufйай[i], "???."):
          tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","ооо",False);
          z=SearchInArray(пюа.соо.йай2005.cacheооо2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheооо2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.????."):
          tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","по",False);
          z=SearchInArray(пюа.соо.йай2005.cacheтйп2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheтйп2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.????.???????."):
          tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","жя",False);
          z=SearchInArray(пюа.соо.йай2005.cacheйжяп2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйжяп2005_мЮХЛ[z], "");
       fi;
       if йняцс:
          if Match(пюа.соо.йай2005.Bufйай[i], "???.????.???????.???."):
             tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","бп",False);
             РЛО=SubStr(пюа.соо.йай2005.Bufйай[i], 5, 16);
             z=SearchInArray(пюа.соо.йай2005.cacheйбп2005_йНД, tmp, True);
             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйбп2005_мЮХЛ[z], if(РЛО="0000.0000000.000", "пЮЯУНДШ ОН БМЕАЧДФЕРМШЛ ЯПЕДЯРБЮЛ", ""));
          |  Match(пюа.соо.йай2005.Bufйай[i], "???.????.???????.???.???"):
             tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","йняцс",False);
             z=SearchInArray(пюа.соо.йай2005.cacheйняцс2005_йНД, tmp, True);
             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйняцс2005_мЮХЛ[z], "");
          fi;
       else
          if Match(пюа.соо.йай2005.Bufйай[i], "???.????.???????.???"):
             tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","бп",False);
             РЛО=SubStr(пюа.соо.йай2005.Bufйай[i], 5, 16);
             z=SearchInArray(пюа.соо.йай2005.cacheйбп2005_йНД, tmp, True);
             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйбп2005_мЮХЛ[z], if(РЛО="0000.0000000.000", "пЮЯУНДШ ОН БМЕАЧДФЕРМШЛ ЯПЕДЯРБЮЛ", ""));
          fi;
       fi;
     od;
--   | tmp="йд":
--     if йняцс: CrdToCache2005("йняцс2006", False); fi;
--     for i=1 to nn do
--       if Match(пюа.соо.йай2005.Bufйай[i], "???."):               пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
--       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?."):             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
--       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??."):          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
--       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????."):    пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
--       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??."): пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
--       fi;
--       if йняцс:
--          if Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??.????."):
--             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
--          |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??.????.???"):
--             tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"йд","йняцс",False);
--             z=SearchInArray(пюа.соо.йай2005.cacheйняцс2005_йНД, tmp, True);
--             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйняцс2005_мЮХЛ[z],"");
--          fi;
--       else
--          if Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??.????"): пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]+"."); fi;
--       fi;
--     od;
   | tmp="йд":
     CrdToCache2005("ооо2006"  , False);
     CrdToCache2005("йд2006"  , False);
     if йняцс: CrdToCache2005("йняцс2006", False); fi;
     ClearVariable(пюа.соо.йай2005.Buf);
     пюа.соо.йай2005.Buf[1] ="000";  пюа.соо.йай2005.Buf[13] ="000";  пюа.соо.йай2005.Buf[17] ="000";
     пюа.соо.йай2005.Buf[2] ="100";  пюа.соо.йай2005.Buf[14] ="151";  пюа.соо.йай2005.Buf[18] ="120";
     пюа.соо.йай2005.Buf[3] ="110";  пюа.соо.йай2005.Buf[15] ="152";  пюа.соо.йай2005.Buf[19] ="130";
     пюа.соо.йай2005.Buf[4] ="120";  пюа.соо.йай2005.Buf[16] ="180";  пюа.соо.йай2005.Buf[20] ="151";
     пюа.соо.йай2005.Buf[5] ="130";                                   пюа.соо.йай2005.Buf[21] ="180";
     пюа.соо.йай2005.Buf[6] ="140";                                   пюа.соо.йай2005.Buf[22] ="440";
     пюа.соо.йай2005.Buf[7] ="151";
     пюа.соо.йай2005.Buf[8] ="160";
     пюа.соо.йай2005.Buf[9] ="180";
     пюа.соо.йай2005.Buf[10]="410";
     пюа.соо.йай2005.Buf[11]="420";
     пюа.соо.йай2005.Buf[12]="440";
     for i=1 to nn do
       if Match(пюа.соо.йай2005.Bufйай[i], "???."):
          tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"тйп","ооо",False);
          z=SearchInArray(пюа.соо.йай2005.cacheооо2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheооо2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?."):
          tmp=DelDot(пюа.соо.йай2005.Bufйай[i]);
          tmp="000"+SubStr(tmp, 4, 1)+"0000000000000000";
          z=SearchInArray(пюа.соо.йай2005.cacheйд2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйд2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??."):
          tmp=DelDot(пюа.соо.йай2005.Bufйай[i]);
          tmp="000"+SubStr(tmp, 4, 3)+"00000000000000";
          z=SearchInArray(пюа.соо.йай2005.cacheйд2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйд2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????."):
          tmp=DelDot(пюа.соо.йай2005.Bufйай[i]);
          РЛО=нВЕПЕДЭ(SubStr(tmp, 4, 1));
          if РЛО<>"":
             k1=Int(SubStr(РЛО, 1, 2)); k2=Int(SubStr(РЛО, 4, 2));
             for j=k1 to k2 do 
               tmp="000"+SubStr(tmp, 4, 5)+"000000000"+пюа.соо.йай2005.Buf[j];
               z=SearchInArray(пюа.соо.йай2005.cacheйд2005_йНД, tmp, True);
               if z>0: Break; fi;
             od;
          else
             z=0;
          fi;
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйд2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??."):
          tmp=DelDot(пюа.соо.йай2005.Bufйай[i]);
          РЛО=нВЕПЕДЭ(SubStr(tmp, 4, 1));
          if РЛО<>"":
             k1=Int(SubStr(РЛО, 1, 2)); k2=Int(SubStr(РЛО, 4, 2));
             for j=k1 to k2 do 
               tmp="000"+SubStr(tmp, 4, 10)+"0000"+пюа.соо.йай2005.Buf[j];
               z=SearchInArray(пюа.соо.йай2005.cacheйд2005_йНД, tmp, True);
               if z>0: Break; fi;
             od;
          else
             z=0;
          fi;
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйд2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??.????.") or Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??.????"):
          tmp=DelDot(пюа.соо.йай2005.Bufйай[i]);
          РЛО=нВЕПЕДЭ(SubStr(tmp, 4, 1));
          if РЛО<>"":
             k1=Int(SubStr(РЛО, 1, 2)); k2=Int(SubStr(РЛО, 4, 2));
             for j=k1 to k2 do 
               tmp="000"+SubStr(tmp, 4, 14)+пюа.соо.йай2005.Buf[j];
               z=SearchInArray(пюа.соо.йай2005.cacheйд2005_йНД, tmp, True);
               if z>0: Break; fi;
             od;
          else
             z=0;
          fi;
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйд2005_мЮХЛ[z], "");
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.?.??.?????.??.????.???"):
          tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"йд","йняцс",False);
          z=SearchInArray(пюа.соо.йай2005.cacheйняцс2005_йНД, tmp, True);
          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйняцс2005_мЮХЛ[z], "");
       fi;
     od;
   | tmp="йхтд":
     if йняцс: CrdToCache2005("йняцс2006", False); fi;
     for i=1 to nn do
       if Match(пюа.соо.йай2005.Bufйай[i], "???."):                пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.??."):             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.??.??."):          пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.??.??.??."):       пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.??.??.??.??."):    пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
       |  Match(пюа.соо.йай2005.Bufйай[i], "???.??.??.??.??.??."): пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
       fi;
       if йняцс:
          if Match(пюа.соо.йай2005.Bufйай[i], "???.??.??.??.??.??.????."):
             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]);
          |  Match(пюа.соо.йай2005.Bufйай[i], "???.??.??.??.??.??.????.???"):
             tmp=пюа.ачдфер2005.бГЪРЭйНДйай(пюа.соо.йай2005.Bufйай[i],"йхтд","йняцс",False);
             z=SearchInArray(пюа.соо.йай2005.cacheйняцс2005_йНД, tmp, True);
             пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+if(z>0, пюа.соо.йай2005.cacheйняцс2005_мЮХЛ[z],"");
          fi;
       else
          if Match(пюа.соо.йай2005.Bufйай[i], "???.??.??.??.??.??.????"): 
            if дЕПЕБН:
              пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(пюа.соо.йай2005.Bufйай[i]+".");
            else
              пюа.соо.йай2005.Bufйай[i]=пюа.соо.йай2005.Bufйай[i]+" --"+Name_S(SubStr(пюа.соо.йай2005.Bufйай[i], 1, 13));
            fi;
          fi;
       fi;
     od;
   fi;
   InsertInArray(пюа.соо.йай2005.Bufйай, 1, "* --нАМНБХРЭ ЯОХЯНЙ");
 Finally
   CloseProgress;
 end;
 пюа.соо.йай2005.StoreMaskйай=MaskAcc;
 пюа.соо.йай2005.StoreFlagйняцс=йняцс;
 ^True;
end;

Func бШАНПйайХЕПЮПУ2005(MaskAcc:String; яРПСЙРСПЮ:String; йняцс:Logical) :String;
var nn, p, len :Integer;
var Ret :String;
var OK, дЕПЕБН :Logical;
 nn=1;
 OK=яОХЯНЙйайХЕПЮПУ2005(MaskAcc, яРПСЙРСПЮ, йняцс, False);
 if OK=False: ^""; fi;
 while nn=1 do
   p=SearchInArray(пюа.соо.йай2005.Bufйай, пюа.соо.йай2005.Storeйай);
   len=LengthOfArray(пюа.соо.йай2005.Bufйай);
   if len>10 or (len<11 and йняцс=True): дЕПЕБН=True; else дЕПЕБН=False; fi;
   nn=AlternateTree("бШАНП йай"+if(йняцс, "+йняцс", ""), пюа.соо.йай2005.Bufйай, -1, p, 12, if(дЕПЕБН, ".", " "), "йай", "мЮХЛЕМНБЮМХЕ", if(дЕПЕБН, 15, 20), False);
   if nn=0: ^""; fi;
   if nn=1: 
     OK=яОХЯНЙйайХЕПЮПУ2005(MaskAcc, яРПСЙРСПЮ, йняцс, True);
     if OK=False: ^""; fi;
   fi;
 od;
 Ret=пюа.соо.йай2005.Bufйай[nn]; пюа.соо.йай2005.Storeйай=Ret;
 p=Pos(" --", Ret);
 if p>1: Ret=SubStr(Ret, 1, p-1); fi;
 ^Ret;
end;

йнмеж -- ЙНМЕЖ АКЮМЙЮ
