Func НачТекГод:D;
 ^1.1.2018;
end;

Func СРЗ2СОП(СРЗ:S):S;
var Res:S;
 if СРЗ="1"         : Res="11011";
   |СРЗ="2"         : Res="11021";
   |СРЗ="3"         : Res="11031";
   |СРЗ="4"         : Res="11042";
   |СРЗ="5"         : Res="11052";
   |СРЗ="6"         : Res="11062";
   |СРЗ="7"         : Res="12011";
   |СРЗ="8"         : Res="12022";
   |СРЗ="9"         : Res="13011";
   |Match(СРЗ,"10!"): Res="14011";
   |СРЗ="11"        : Res="20000";
   |СРЗ="11.93_1_1" : Res="20010";
   |СРЗ="11.93_1_2" : Res="20020";
   |СРЗ="11.93_1_3" : Res="20030";
   |СРЗ="11.93_1_4" : Res="0.4";
   |СРЗ="11.93_1_5" : Res="0.5";
   |СРЗ="11.93_1_6" : Res="20040";
   |СРЗ="11.93_1_7" : Res="20050";
   |СРЗ="11.93_1_8" : Res="20060";
   |СРЗ="11.93_1_9" : Res="20070";
   |СРЗ="11.93_1_10": Res="20080";
   |СРЗ="11.93_1_11": Res="20090";
   |СРЗ="11.93_1_12": Res="20100";
   |СРЗ="11.93_1_13": Res="20110";
   |СРЗ="11.93_1_14": Res="20120";
   |СРЗ="11.93_1_15": Res="20130";
   |СРЗ="11.93_1_16": Res="20140";
   |СРЗ="11.93_1_17": Res="20150";
   |СРЗ="11.93_1_18": Res="20160";
   |СРЗ="11.93_1_19": Res="20170";
   |СРЗ="11.93_1_20": Res="20180";
   |СРЗ="11.93_1_21": Res="20190";
   |СРЗ="11.93_1_22": Res="20200";
   |СРЗ="11.93_1_23": Res="0.23";
   |СРЗ="11.93_1_24": Res="20220";
   |СРЗ="11.93_1_26": Res="20300";
   |СРЗ="11.93_1_28": Res="20310";
   |СРЗ="11.93_1_29": Res="20320";
   |СРЗ="11.93_1_30": Res="20330";
   |СРЗ="11.93_1_31": Res="20340";
   |СРЗ="11.93_1_32": Res="20350";
   |СРЗ="11.93_1_33": Res="20360";
   |СРЗ="11.93_1_34": Res="20370";
   |СРЗ="11.93_1_35": Res="20380";
   |СРЗ="11.93_1_36": Res="20390";
   |СРЗ="11.93_1_37": Res="20400";
   |СРЗ="11.93_1_38": Res="20410";
   |СРЗ="11.93_1_39": Res="20420";
   |СРЗ="11.93_1_40": Res="20430";
   |СРЗ="11.93_1_41": Res="20440";
   |СРЗ="11.93_1_46": Res="20460";
   |СРЗ="11.93_1_47": Res="20470";
   |СРЗ="11.93_1_48": Res="20480";
   |True            : Res="";
 fi;
 ^Res;
end;

Func Ан2КОСГУ (Ан:S):S;
var Res:S;
 if Ан="11":Res="211";
   |Ан="12":Res="212";
   |Ан="13":Res="213";
   |Ан="14":Res="214";
   |Ан="21":Res="221";
   |Ан="22":Res="222";
   |Ан="23":Res="223";
   |Ан="24":Res="224";
   |Ан="25":Res="225";
   |Ан="26":Res="226";
   |Ан="27":Res="227";
   |Ан="28":Res="228";
   |Ан="29":Res="229";
   |Ан="41":Res="241";
   |Ан="42":Res="242";
   |Ан="51":Res="251";
   |Ан="52":Res="252";
   |Ан="53":Res="253";
   |Ан="61":Res="261";
   |Ан="62":Res="262";
   |Ан="63":Res="263";
   |Ан="64":Res="264";
   |Ан="65":Res="265";
   |Ан="66":Res="266";
   |Ан="67":Res="267";
   |Ан="91":Res="291";
   |Ан="92":Res="292";
   |Ан="93":Res="293";
   |Ан="94":Res="294";
   |Ан="95":Res="295";
   |Ан="96":Res="296";
   |Ан="97":Res="297";
   |Ан="98":Res="298";
   |Ан="99":Res="299";
   |Ан="31":Res="310";
   |Ан="32":Res="320";
   |Ан="33":Res="330";
   |Ан="34":Res="340";
   |Ан="72":Res="520";
   |Ан="73":Res="530";
   |True   :Res="";
 fi;
 ^Res;
end;

Func КОСГУ2Ан (КОСГУ:S):S;
var Res:S;
 if КОСГУ="211":Res="11";
   |КОСГУ="212":Res="12";
   |КОСГУ="213":Res="13";
   |КОСГУ="214":Res="14";
   |КОСГУ="221":Res="21";
   |КОСГУ="222":Res="22";
   |КОСГУ="223":Res="23";
   |КОСГУ="224":Res="24";
   |КОСГУ="225":Res="25";
   |КОСГУ="226":Res="26";
   |КОСГУ="227":Res="27";
   |КОСГУ="228":Res="28";
   |КОСГУ="229":Res="29";
   |КОСГУ="241":Res="41";
   |КОСГУ="242":Res="42";
   |КОСГУ="251":Res="51";
   |КОСГУ="252":Res="52";
   |КОСГУ="253":Res="53";
   |КОСГУ="261":Res="61";
   |КОСГУ="262":Res="62";
   |КОСГУ="263":Res="63";
   |КОСГУ="264":Res="64";
   |КОСГУ="265":Res="65";
   |КОСГУ="266":Res="66";
   |КОСГУ="267":Res="67";
   |КОСГУ="290":Res="91";
   |КОСГУ="291":Res="91";
   |КОСГУ="292":Res="92";
   |КОСГУ="293":Res="93";
   |КОСГУ="294":Res="94";
   |КОСГУ="295":Res="95";
   |КОСГУ="296":Res="96";
   |КОСГУ="297":Res="97";
   |КОСГУ="298":Res="98";
   |КОСГУ="299":Res="99";
   |КОСГУ="310":Res="31";
   |КОСГУ="320":Res="32";
   |КОСГУ="330":Res="33";
   |КОСГУ="340":Res="34";
   |КОСГУ="341":Res="34";
   |КОСГУ="342":Res="34";
   |КОСГУ="343":Res="34";
   |КОСГУ="344":Res="34";
   |КОСГУ="345":Res="34";
   |КОСГУ="346":Res="34";
   |КОСГУ="347":Res="34";
   |КОСГУ="349":Res="34";
   |КОСГУ="520":Res="72";
   |КОСГУ="530":Res="73";
   |True       :Res="";
 fi;
 ^Res;
end;

Func ЗаменаСч5 (Счет:S; Сч5:S; Дат:D):S;
var l:i;
var Res:S;
 l=Length(Счет);
 if l=32                 : Res=SubStr(Счет,1,22)+Сч5+SubStr(Счет,29,4); --КР2016
   |l=34                 : Res=SubStr(Счет,1,24)+Сч5+SubStr(Счет,31,4); --КД2016
   |l=33 and Дат<1.1.2016: Res=SubStr(Счет,1,23)+Сч5+SubStr(Счет,30,4); --КР2005
   |l=35                 : Res=SubStr(Счет,1,25)+Сч5+SubStr(Счет,32,4); --КД2005
   |l=33                 : Res=SubStr(Счет,1,23)+Сч5+SubStr(Счет,30,4); --КИФД2016
   |l=36                 : Res=SubStr(Счет,1,26)+Сч5+SubStr(Счет,33,4); --КИФД2005
   |True                 : Res="";
 fi;
 ^Res;
end;

Func ВзятьКодСчета (Счет:S; Код:S):S;
var l:i;
var Res:S;
 l=Length(Счет);
 if Код="БК"    : Res=SubStr(Счет,1,l-13);
   |Код="ВД"    : Res=SubStr(Счет,l-11,1);
   |Код="СИНТ"  : Res=SubStr(Счет,l-9 ,3);
   |Код="АН"    : Res=SubStr(Счет,l-5 ,2);
   |Код="КОСГУ" : Res=SubStr(Счет,l-2 ,3);
   |Код="БК+СЧ8": Res=SubStr(Счет,1,l-4);
   |True        : Res="";
 fi;
 ^Res;
end;

Func ЕстьСправочник_Наборе(аПризнак:S; аНабор:S) :L;
var рабПризнак :S;
var рабНабор :S;
var pp :I;
 pp=Pos(".", аПризнак);
 if pp>0:
   рабПризнак=" "+Up(SubStr(аПризнак, 1, pp));
   рабНабор=" "+Up(аНабор)+" ";
   ^(Pos(рабПризнак, рабНабор)>0);
 fi;
 ^False;
end;

Func ЗаменаСтр (Src:S; Old:S; New:S):S;
var p  :I;
var l  :I;
var w  :I;
var ww :I;
var Val:S;
var Ret:S;
 Val=Src;
 ww=Length(Val);
 l=Length(Old);
 Ret="";
 for w=1..ww do
  p=Pos(Old,Val);
  if p=0:
     Ret=Ret+Val;
     Break;
    |true: 
     Ret=Ret+SubStr(Val,1,p-1)+New;
     Val=SubStr(Val,p+l,255);
  fi;
 od;
 ^Ret;
end;

Func ЗаменаПризнака(aПризн:S; aМаскаПризн:S; aЗначПризн:S; sp:S):S;
var Sgn:S;
var Val:S;
var Ret:S;
 Ret="";
 Val=ЗаменаСтр(aПризн," ","|");
 for sign Sgn=Val do
  if Match(Sgn,aМаскаПризн):
     Ret=Ret+sp+aЗначПризн;
    |True:
     Ret=Ret+sp+Sgn;
  fi;
 od;
 Ret=SubStr(Ret,2,255);
 ^Ret;
end;

Func УдалитьПризнакПоМаскеИзНабора_Опер(аМаскПризн:S; аНабор:S) :S;
var ii :I;
var ii_count :I;
var RES :S;
var loc_chr :S;
var loc_wrd :S;
var NewWord :L;
 if аМаскПризн="" or аНабор="": ^аНабор; fi;
 RES="";
 loc_chr="";
 loc_wrd="";
 NewWord=False;
 ii_count = Length(аНабор);
 for ii=1..ii_count do
   loc_chr = SubStr(аНабор, ii, 1);
   if not loc_chr=" ":
     loc_wrd = loc_wrd + loc_chr;
   |True:
     NewWord=True;
   fi;
   if NewWord:
     if not Match(loc_wrd, аМаскПризн):
       if not RES="":
         RES = RES + " " + loc_wrd;
       |True:
         RES = loc_wrd;
       fi;
     fi;
     loc_wrd="";
     NewWord=False;
   fi;
 od;
 if not loc_wrd="":
   if not Match(loc_wrd, аМаскПризн):
     if not RES="":
       RES = RES + " " + loc_wrd;
     |True:
       RES = loc_wrd;
     fi;
   fi;
 fi;
 ^RES;
end;

Func ПереворотКосгу (Счет:S):S;
var КОСГУ_:S;
var Z:S;
var Ret:S;
var l:I;
 Ret=Счет;
 l=Length(Счет);
 КОСГУ_=SubStr(Счет,l-2,3);
 Z=SubStr(КОСГУ_,3,1);
 КОСГУ_=SubStr(КОСГУ_,1,2);
 if КОСГУ_="56": Ret=SubStr(Счет,1,l-3)+"66"+z;
   |КОСГУ_="66": Ret=SubStr(Счет,1,l-3)+"56"+z;
   |КОСГУ_="73": Ret=SubStr(Счет,1,l-3)+"83"+z;
   |КОСГУ_="83": Ret=SubStr(Счет,1,l-3)+"73"+z;
 fi;
 ^Ret;
end;

Группа РАБ="Обработчики картотек";
 Группа РПО="Типовые операции ТББ 'Бюджет 157Н'";
  Группа ЛБО="Лимиты бюджетных обязательств";
   Опер Смета_ДОХОД="Смета доходов"
     (СУММГОД_ИЗМ :N;  --Сумма на год
      ПРИЗНАК     :S;  --Аналитика
      ПРИЗН_ЛС    :S;  --Признак счета;
      ИСТ1        :S;  --Наименование показателя
      СЧЕТ_ДЕБ    :S;  --Счет по дебету
      СЧЕТ_КРЕ    :S)  --Счет по кредиту

    :СУММГОД_ИЗМ $СЧЕТ_ДЕБ  $СЧЕТ_КРЕ {$ПРИЗНАК $ПРИЗН_ЛС} --$Ист1
   Репо;
   Опер Смета_РАСХОД="Смета расходов"
        (НАПР1       :S;  --Наименование показателя
         СУММГОД_ИЗМ :N;  --Сумма на год
         ПРИЗНАК :    S;  --Аналитика
         ПРИЗН_ЛС    :S;  --Признак счета;
         СЧЕТ_ДЕБ    :S;  --Счет по дебету
         СЧЕТ_КРЕ :   S)  --Счет по кредиту

    :СУММГОД_ИЗМ $СЧЕТ_ДЕБ  $СЧЕТ_КРЕ {$ПРИЗНАК $ПРИЗН_ЛС} --$НАПР1
   Репо;
   Опер РР_Вх1="Расходное расписание поступившее (Раздел 1)"
        (НомерДок   :S;
         ДатаДок    :D;
         ПБС_ПризнЛС:S;
         СчДеб1     :S;
         СчКре1     :S;
         СчДеб2     :S;
         СчКре2     :S;
         СчДеб3     :S;
         СчКре3     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Сум2       :N;
         Сум3       :N;
         Примеч     :S)
    if Сум1>0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум2>0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум2<0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум3>0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум3<0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ВХ1="Расходное расписание поступившее (Раздел 1)"
   Опер РР_Вх2="Расходное расписание поступившее (Раздел 2)"
        (НомерДок   :S;
         ДатаДок    :D;
         ПБС_ПризнЛС:S;
         СчДеб1     :S;
         СчКре1     :S;
         СчДеб2     :S;
         СчКре2     :S;
         СчДеб3     :S;
         СчКре3     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Сум2       :N;
         Сум3       :N;
         Примеч     :S)
    if Сум1>0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум2>0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум2<0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум3>0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум3<0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ВХ2="Расходное расписание поступившее (Раздел 2)"
   Опер РР_Вх3="Расходное расписание поступившее (Раздел 3)"
        (НомерДок   :S;
         ДатаДок    :D;
         ПБС_признЛС:S;
         СчДеб1     :S;
         СчКре1     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Примеч     :S)
    if Сум1>0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $ПБС_ПризнЛС} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $ПБС_ПризнЛС ОТЗЫВ} --Расходное расписание поступившее N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ВХ3="Расходное расписание поступившее (Раздел 3)"
   Опер РР_Исх1="Расходное расписание исходящие (Раздел 1)"
        (Проводить  :L;
         НомерДок   :S;
         ДатаДок    :D;
         РБС_ПризнЛС:S;
         ПБС_Призн  :S;
         СчДеб1     :S;
         СчКре1     :S;
         СчДеб2     :S;
         СчКре2     :S;
         СчДеб3     :S;
         СчКре3     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Сум2       :N;
         Сум3       :N;
         Примеч     :S)
    var Опер_:S;
    var Кмнт :S;
    Опер_=if(Проводить,"","ОПЕР");
    Кмнт=if(Проводить,"","Оперативная проводка.");
    if Сум1>0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум2>0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум2<0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум3>0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум3<0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ИСХ1="Расходное расписание исходящие (Раздел 1)"
   Опер РР_Исх2="Расходное расписание исходящие (Раздел 2)"
        (Проводить  :L;
         НомерДок   :S;
         ДатаДок    :D;
         РБС_ПризнЛС:S;
         ПБС_Призн  :S;
         СчДеб1     :S;
         СчКре1     :S;
         СчДеб2     :S;
         СчКре2     :S;
         СчДеб3     :S;
         СчКре3     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Сум2       :N;
         Сум3       :N;
         Примеч     :S)
    var Опер_:S;
    var Кмнт :S;
    Кмнт=if(Проводить,"","Оперативная проводка.");
    Опер_=if(Проводить,"","ОПЕР");
    if Сум1>0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум2>0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум2<0:
       :Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум3>0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум3<0:
       :Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ИСХ2="Расходное расписание исходящие (Раздел 2)"
   Опер РР_Исх3="Расходное расписание исходящие (Раздел 3)"
        (Проводить  :L;
         НомерДок   :S;
         ДатаДок    :D;
         РБС_ПризнЛС:S;
         ПБС_Призн  :S;
         СчДеб1     :S;
         СчКре1     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Примеч     :S)
    var Опер_:S;
    var Кмнт :S;
    Опер_=if(Проводить,"","ОПЕР");
    Кмнт=if(Проводить,"","Оперативная проводка.");
    if Сум1>0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн $Опер_ ОТЗЫВ} --$Кмнт Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ИСХ3="Расходное расписание исходящие (Раздел 3)"
   Опер РР_Исх_Аннул1="Расходное расписание исходящие аннулированое (Раздел 1)"
        (НомерДок   :S;
         ДатаДок    :D;
         РБС_ПризнЛС:S;
         ПБС_Призн  :S;
         СчДеб1     :S;
         СчКре1     :S;
         СчДеб2     :S;
         СчКре2     :S;
         СчДеб3     :S;
         СчКре3     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Сум2       :N;
         Сум3       :N;
         Примеч     :S)
    if Сум1>0:
       :-1*Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :-1*Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум2>0:
       :-1*Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум2<0:
       :-1*Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум3>0:
       :-1*Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум3<0:
       :-1*Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ИСХ1="Расходное расписание исходящие (Раздел 1)"
   Опер РР_Исх_Аннул2="Расходное расписание исходящие аннулированое (Раздел 2)"
        (Проводить  :L;
         Аннул      :L;
         НомерДок   :S;
         ДатаДок    :D;
         РБС_ПризнЛС:S;
         ПБС_Призн  :S;
         СчДеб1     :S;
         СчКре1     :S;
         СчДеб2     :S;
         СчКре2     :S;
         СчДеб3     :S;
         СчКре3     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Сум2       :N;
         Сум3       :N;
         Примеч     :S)
    if Сум1>0:
       :-1*Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :-1*Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум2>0:
       :-1*Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум2<0:
       :-1*Сум2 $СчДеб2 $СчКре2 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
    if Сум3>0:
       :-1*Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум3<0:
       :-1*Сум3 $СчДеб3 $СчКре3 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ИСХ2="Расходное расписание исходящие (Раздел 2)"
   Опер РР_Исх_Аннул3="Расходное расписание исходящиее аннулированое (Раздел 3)"
        (Проводить  :L;
         Аннул      :L;
         НомерДок   :S;
         ДатаДок    :D;
         РБС_ПризнЛС:S;
         ПБС_Призн  :S;
         СчДеб1     :S;
         СчКре1     :S;
         БК         :S;
         КОСГУ      :S;
         Призн      :S;
         Сум1       :N;
         Примеч     :S)
    if Сум1>0:
       :-1*Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
      |Сум1<0:
       :-1*Сум1 $СчДеб1 $СчКре1 {$Призн $РБС_ПризнЛС $ПБС_Призн ОТЗЫВ} --Аннулировано. Расходное расписание исходящие N $НомерДок от $ДатаДок $Примеч
    fi;
   Репо; --РР_ИСХ3="Расходное расписание исходящие (Раздел 3)"
   Опер Перераспред="Перераспределение средств"
        (НомерБум    :S;
         ДатаОпер    :D;
         Тип         :I;
         Кмнт        :S;
         ТипОпер     :S;
         БК          :S;
         КОСГУ       :S;
         КОСГУКре    :S;
         КОСГУДеб    :S;
         Сум_Изм     :N;
         СчДеб       :S;
         СчКре       :S;
         СчДеб_ПБС   :S;
         СчКре_ПБС   :S;
         Призн       :S;
         ПризнПБС    :S;
         ПризнДеб    :S;
         ПризнКре    :S;
         ПризнДоп    :S;
         ПризнДоп_ПБС:S;
         Примеч      :S)
         var Д:S;
         var К:S;
         if Тип=1 or Тип=3:
            -- Уменьшение
            if КОСГУ="":
               Д=СчДеб+КОСГУКре;
               К=СчКре+КОСГУКре;
               :-Сум_Изм $Д $К {$Призн $ПризнКре $ПризнДоп ОТЗЫВ ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
              |True:
               :-Сум_Изм $СчДеб $СчКре {$Призн $ПризнКре $ПризнДоп ОТЗЫВ ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
            fi;
            -- Увелечение
            if КОСГУ="":
               Д=СчДеб+КОСГУДеб;
               К=СчКре+КОСГУДеб;
               :Сум_Изм $Д $К {$Призн $ПризнДеб $ПризнДоп ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
              |True:
               :Сум_Изм $СчДеб $СчКре {$Призн $ПризнДеб $ПризнДоп $ПризнДоп_ПБС ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
            fi;
           |true:
            if КОСГУ="":
               Д=СчДеб_ПБС+КОСГУКре;
               К=СчКре_ПБС+КОСГУКре;
               :-Сум_Изм $Д $К {$Призн $ПризнПБС $ПризнКре $ПризнДоп $ПризнДоп_ПБС ОТЗЫВ ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               Д=СчДеб_ПБС+КОСГУДеб;
               К=СчКре_ПБС+КОСГУДеб;
               : Сум_Изм $Д $К {$Призн $ПризнПБС $ПризнДеб $ПризнДоп $ПризнДоп_ПБС ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               Д=СчДеб+КОСГУКре;
               К=СчКре+КОСГУКре;
               :-Сум_Изм $Д $К {$Призн $ПризнКре $ПризнДоп ОТЗЫВ ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               Д=СчДеб+КОСГУДеб;
               К=СчКре+КОСГУДеб;
               : Сум_Изм $Д $К {$Призн $ПризнДеб $ПризнДоп ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               if Тип=-2:
                  Д=СчДеб+КОСГУКре;
                  К=СчКре+КОСГУКре;
                  if Match(ТипОпер,"ЛБО*"):
                     К=SubStr(К,1,27)+"3"+SubStr(К,29,4);
                    |True:
                     Д=SubStr(Д,1,26)+"91"+SubStr(Д,29,4);
                     К=SubStr(К,1,27)+"14"+SubStr(К,29,4);
                  fi;
                  :-Сум_Изм $Д $К {$Призн $ПризнКре $ПризнДоп ОТЗЫВ ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
                  Д=СчДеб+КОСГУДеб;
                  К=СчКре+КОСГУДеб;
                  if Match(ТипОпер,"ЛБО*"):
                     К=SubStr(К,1,27)+"3"+SubStr(К,29,4);
                    |True:
                     Д=SubStr(Д,1,26)+"91"+SubStr(Д,29,4);
                     К=SubStr(К,1,27)+"14"+SubStr(К,29,4);
                  fi;
                  : Сум_Изм $Д $К {$Призн $ПризнДеб $ПризнДоп ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               fi;
              |True:
               :-Сум_Изм $СчДеб_ПБС $СчКре_ПБС {$Призн $ПризнПБС $ПризнКре $ПризнДоп $ПризнДоп_ПБС ОТЗЫВ ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               : Сум_Изм $СчДеб_ПБС $СчКре_ПБС {$Призн $ПризнПБС $ПризнДеб $ПризнДоп $ПризнДоп_ПБС ПРП} --План перераспределения (получатель) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               :-Сум_Изм $СчДеб $СчКре {$Призн $ПризнКре $ПризнДоп ОТЗЫВ ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               : Сум_Изм $СчДеб $СчКре {$Призн $ПризнДеб $ПризнДоп ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               if Тип=-2:
                  if Match(ТипОпер,"ЛБО*"):
                     Д=СчДеб;
                     К=SubStr(СчКре,1,27)+"3"+SubStr(СчКре,29,4);
                    |True:
                     Д=SubStr(СчДеб,1,26)+"91"+SubStr(СчДеб,29,4);
                     К=SubStr(СчКре,1,27)+"14"+SubStr(СчКре,29,4);
                  fi;
                  :-Сум_Изм $Д $К {$Призн $ПризнКре $ПризнДоп ОТЗЫВ ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
                  : Сум_Изм $Д $К {$Призн $ПризнДеб $ПризнДоп ПРП} --План перераспределения (л/с) N $НомерБум от $ДатаОпер $Кмнт $Примеч
               fi;
            fi; --if КОСГУ="":
         fi; --if Тип=1 or Тип=3:
   Репо;
   Опер ПБО2009="Принятые бюджетные обязательства"
        (ТипДок         :I;
         ТекГод         :I;
         ДатаДок        :D;
         ФорматНомер    :I;
         Префикс        :S;
         Сепаратор      :S;
         НомерДок       :S;
         Признак        :S;
         Призн_К        :S;
         Призн_Договор  :S;
         Вал            :S;
         КурсВал        :N;
         Доп_РазмещЗаказ:S;
         Осн_ДокВид     :S;
         Осн_ДокНаим    :S;
         Осн_ДокНом     :S;
         Осн_ДокДат     :D;
         КоррСч         :S;
         Сум1_1         :N;
         Сум1_2         :N;
         Сум1_3         :N;
         Сум1_4         :N;
         Сум1_5         :N;
         Сум1_6         :N;
         Сум1_7         :N;
         Сум1_8         :N;
         Сум1_9         :N;
         Сум1_10        :N;
         Сум1_11        :N;
         Сум1_12        :N;
         Сум2           :N;
         Сум3           :N;
         СчДеб1         :S;
         СчКре1         :S;
         СчДеб2         :S;
         СчКре2         :S;
         СчДеб3         :S;
         СчКре3         :S;
         ВД             :S;
         КБК            :S;
         Призн          :S;
         ДопКл          :S;
         УчетФК         :L;
         РегДата        :D;
         Рег            :L)
      var НомерДок_:S;
      var ПризнБО  :S;
      var Опр      :S;
      var Вал_     :Валюта;
      var Пер_     :S;
      var Сум_     :N;
      var СОП_     :S;
      var НаимДок_ :S;
      var m        :i;
      var ТекГод_  :S;
      var Мес_     :S;
      var ДопКл_   :S;
      var СчДеб_   :S;
      var СчКре_   :S;
      var ВД_      :S;
      var БК_      :S;
      var КОСГУ_   :S;
      НомерДок_=if(ФорматНомер=0,НомерДок,Префикс+Сепаратор+НомерДок);
      ПризнБО="БО."+Признак;
--      if Рег   : Опр="";
--        |УчетФК: Опр=""; --Опр="ОПЕР";  учет по казначеству не актуален ver=28
--        |True  : Опр="";
--      fi;
      Опр="";
      Вал_=Вал;
      if Вал_="": Вал_=BaseCurrency; fi;
      if Length(Доп_РазмещЗаказ)=5 or Match(Доп_РазмещЗаказ,"0!"):
         СОП_="СОП."+Доп_РазмещЗаказ;
        |Доп_РазмещЗаказ="":
         СОП_="СОП."+"0";
        |True: 
         СОП_="СОП."+СРЗ2СОП(Доп_РазмещЗаказ);
         if СОП_="СОП.": СОП_=""; fi;
      fi;
      if Осн_ДокНаим="":
         if Осн_ДокВид="извещение об осуществлении закупки"                                            : НаимДок_="извещение";
           |Осн_ДокВид="приглашение принять участие в определении поставщика (подрядчика, исполнителя)": НаимДок_="приглашение";
           |True                                                                                       : НаимДок_=Осн_ДокВид;
         fi;
        |True:
         НаимДок_=Осн_ДокНаим;
      fi;
      if Pos(" ЦЕЛЬ.",Призн)=0 and not ДопКл="":
         ДопКл_="ЦЕЛЬ."+ДопКл;
        |True:
         ДопКл_="";
      fi;
      ТекГод_=Str(ТекГод);
      for m=1..14 do
       if m= 1: Пер_=ТекГод_+".1.01"; Сум_=Сум1_1;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="январь";
         |m= 2: Пер_=ТекГод_+".1.02"; Сум_=Сум1_2;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="февраль";
         |m= 3: Пер_=ТекГод_+".1.03"; Сум_=Сум1_3;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="март";
         |m= 4: Пер_=ТекГод_+".2.04"; Сум_=Сум1_4;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="апрель";
         |m= 5: Пер_=ТекГод_+".2.05"; Сум_=Сум1_5;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="май";
         |m= 6: Пер_=ТекГод_+".2.06"; Сум_=Сум1_6;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="июнь";
         |m= 7: Пер_=ТекГод_+".3.07"; Сум_=Сум1_7;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="июль";
         |m= 8: Пер_=ТекГод_+".3.08"; Сум_=Сум1_8;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="август";
         |m= 9: Пер_=ТекГод_+".3.09"; Сум_=Сум1_9;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="сентябрь";
         |m=10: Пер_=ТекГод_+".4.10"; Сум_=Сум1_10; СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="октябрь";
         |m=11: Пер_=ТекГод_+".4.11"; Сум_=Сум1_11; СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="ноябрь";
         |m=12: Пер_=ТекГод_+".4.12"; Сум_=Сум1_12; СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="декабрь";
         |m=13: Пер_=Str(ТекГод+1);   Сум_=Сум2;    СчДеб_=СчДеб2; СчКре_=СчКре2; Мес_="план. период, первый год";
         |m=14: Пер_=Str(ТекГод+2);   Сум_=Сум3;    СчДеб_=СчДеб3; СчКре_=СчКре3; Мес_="план. период, второй год";
       fi;
       Пер_="ПЕРИОД."+Пер_;
       if not Name_S(СчДеб_)=" " and not Name_S(СчКре_)=" ":
          if Вал_=BaseCurrency:
             :Сум_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_}  --Свед. о БО №$НомерДок_ от $ДатаДок $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
            |True:
             :Сум_^$Вал_ :Сум_*КурсВал $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_}  --Свед. о БО №$НомерДок_ от $ДатаДок $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
          fi;
       fi;
      od; --for m=1..14 do
      --Учет ФК
      if УчетФК and not (Рег and ДатаДок=РегДата) and ВД="1":
         if ЕстьСправочник_Наборе("ВД.@", Призн):
            ВД_="";
           |True:
            ВД_="ВД."+ВД;
         fi;
         БК_=if(ВД="2" or ВД="4" or ВД="5", "БК.", "КР.")+SubStr(КБК,1,19);
         if Pos("КОСГУ.",Призн)=0:
            КОСГУ_="КОСГУ."+SubStr(КБК,21,3);
           |True:
            КОСГУ_="";
         fi;
         СчДеб_="ЗАБ.ЛБ";
         if Match(СчКре1,"*.?.502.17.???"): СчКре_="ЗАБ.ПО";
           |True                          : СчКре_="ЗАБ.БО";
         fi;
         for m=1..3 do
          if m=1: Пер_=Str(ТекГод);   Сум_=Сум1_1+Сум1_2+Сум1_3+Сум1_4+Сум1_5+Сум1_6+Сум1_7+Сум1_8+Сум1_9+Сум1_10+Сум1_11+Сум1_12;
            |m=2: Пер_=Str(ТекГод+1); Сум_=Сум2;
            |m=3: Пер_=Str(ТекГод+2); Сум_=Сум3;
          fi;
          Пер_="ПЕРИОД."+Пер_;
          if Вал_=BaseCurrency:
             :Сум_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --Свед. о БО №$НомерДок_ от $ДатаДок ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
            |True:
             :Сум_^$Вал_ :Сум_*КурсВал $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --Свед. о БО №$НомерДок_ от $ДатаДок ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
          fi;
         od; --for m=1..3 do
      fi;
   Репо; --ПБО="Принятые бюджетные обязательства"
   Опер ИЗМ_ПБО2009="Внесение изменений в принятые бюджетные обязательства"
        (ТекГод         :I;
         ДатаДок        :D;
         ФорматНомер    :I;
         Префикс        :S;
         Сепаратор      :S;
         НомерДок       :S;
         Изм_ДатаДок    :D;
         Изм_ФорматНомер:I;
         Изм_Префикс    :S;
         Изм_Сепаратор  :S;
         Изм_НомерДок   :S;
         Признак        :S;
         Призн_К        :S;
         Призн_К_Пре    :S;
         Призн_Договор  :S;
         Вал            :S;
         КурсВал        :N;
         КурсВал_Пре    :N;
         Доп_РазмещЗаказ:S;
         Доп_Статус     :S;
         Осн_ДокВид     :S;
         Осн_ДокНаим    :S;
         Осн_ДокНом     :S;
         Осн_ДокДат     :D;
         Исп_ДокНом     :S; 
         Исп_ДокДат     :D;
         КоррСч         :S;
         ТипОпер        :S;
         Сум1_1         :N;
         Сум1_2         :N;
         Сум1_3         :N;
         Сум1_4         :N;
         Сум1_5         :N;
         Сум1_6         :N;
         Сум1_7         :N;
         Сум1_8         :N;
         Сум1_9         :N;
         Сум1_10        :N;
         Сум1_11        :N;
         Сум1_12        :N;
         Сум2           :N;
         Сум3           :N;
         Сум_Пре1_1     :N;
         Сум_Пре1_2     :N;
         Сум_Пре1_3     :N;
         Сум_Пре1_4     :N;
         Сум_Пре1_5     :N;
         Сум_Пре1_6     :N;
         Сум_Пре1_7     :N;
         Сум_Пре1_8     :N;
         Сум_Пре1_9     :N;
         Сум_Пре1_10    :N;
         Сум_Пре1_11    :N;
         Сум_Пре1_12    :N;
         Сум_Пре2       :N;
         Сум_Пре3       :N;
         СчДеб1         :S;
         СчКре1         :S;
         СчДеб2         :S;
         СчКре2         :S;
         СчДеб3         :S;
         СчКре3         :S;
         ВД             :S;
         КБК            :S;
         Призн          :S;
         ДопКл          :S;
         УчетФК         :L;
         РегДата        :D;
         Рег            :L)
      var Изм_НомерДок_:S;
      var НомерДок_    :S;
      var ПризнБО      :S;
      var Опр          :S;
      var Аннул_       :S;
      var Вал_         :Валюта;
      var Пер_         :S;
      var Сум_         :N;
      var Сум_Пре_     :N;
      var СОП_         :S;
      var ДопКл_       :S;
      var НаимДок_     :S;
      var Кмнт_        :S;
      var СчДеб_       :S;
      var СчКре_       :S;
      var Сч_          :S;
      var Сч1_         :S;
      var Сч2_         :S;
      var Сч3_         :S;
      var v0           :S;
      var v1           :S;
      var v2           :S;
      var m            :i;
      var ТекГод_      :S;
      var Мес_         :S;
      var ВД_          :S;
      var БК_          :S;
      var КОСГУ_       :S;
      var flagФК       :L;
      Изм_НомерДок_=if(Изм_ФорматНомер=0,Изм_НомерДок,Изм_Префикс+Изм_Сепаратор+Изм_НомерДок);
      НомерДок_=if(ФорматНомер=0,НомерДок,Префикс+Сепаратор+НомерДок);
      ПризнБО="БО."+Признак;
--      if Рег   : Опр="";
--        |УчетФК: Опр=""; --Опр="ОПЕР"; учет по казначеству не актуален ver=28
--        |True  : Опр="";
--      fi;
      Опр="";
      Аннул_=if(Доп_Статус="2","АННУЛ","");
      Вал_=Вал;
      if Вал_="": Вал_=BaseCurrency; fi;
      if Length(Доп_РазмещЗаказ)=5 or Match(Доп_РазмещЗаказ,"0!"):
         СОП_="СОП."+Доп_РазмещЗаказ;
        |Доп_РазмещЗаказ="":
         СОП_="СОП."+"0";
        |True: 
         СОП_="СОП."+СРЗ2СОП(Доп_РазмещЗаказ);
         if СОП_="СОП.": СОП_=""; fi;
      fi;
      if Осн_ДокНаим="":
         if Осн_ДокВид="извещение об осуществлении закупки"                                            : НаимДок_="извещение";
           |Осн_ДокВид="приглашение принять участие в определении поставщика (подрядчика, исполнителя)": НаимДок_="приглашение";
           |True                                                                                       : НаимДок_=Осн_ДокВид;
         fi;
        |True:
         НаимДок_=Осн_ДокНаим;
      fi;
      Кмнт_="("+НаимДок_+" №"+Осн_ДокНом+" от "+Str(Day(Осн_ДокДат))+"."+Str(Mon(Осн_ДокДат))+"."+Str(Year(Осн_ДокДат))+")";
      if Pos(" ЦЕЛЬ.",Призн)=0 and not ДопКл="":
         ДопКл_="ЦЕЛЬ."+ДопКл;
        |True:
         ДопКл_="";
      fi;
      if ЕстьСправочник_Наборе("ВД.@", Призн):
         ВД_="";
        |True:
         ВД_="ВД."+ВД;
      fi;
      --БК_="КР."+SubStr(КБК,1,19);
      БК_=if(ВД="2" or ВД="4" or ВД="5", "БК.", "КР.")+SubStr(КБК,1,19);
      if Pos("КОСГУ.",Призн)=0:
         КОСГУ_="КОСГУ."+SubStr(КБК,21,3);
        |True:
         КОСГУ_="";
      fi;
      flagФК=УчетФК and not (Рег and Изм_ДатаДок=РегДата) and ВД="1";
      if Match(ТипОпер,"*/ПО/БО"):
         --Экономия
         v1=SubStr(СчКре1,1,22); --КБК
         v2=SubStr(СчКре1,30,3); --КОСГУ
         v0=SubStr(ТипОпер,1,6);
         if v0="503.13":
            Сч1_=v1+"503.13."+v2;
            Сч2_=v1+"503.23."+v2;
            Сч3_=v1+"503.33."+v2;
           |v0="506.10":
            Сч1_=v1+"506.10."+v2;
            Сч2_=v1+"506.20."+v2;
            Сч3_=v1+"506.30."+v2;
           |True:
            Сч1_=v1+"501.13."+v2;
            Сч2_=v1+"501.23."+v2;
            Сч3_=v1+"501.33."+v2;
         fi;
         ТекГод_=Str(ТекГод);
         for m=1..14 do
          if m= 1: Пер_=ТекГод_+".1.01"; Сум_=Сум1_1;  Сум_Пре_=Сум_Пре1_1;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="январь";
            |m= 2: Пер_=ТекГод_+".1.02"; Сум_=Сум1_2;  Сум_Пре_=Сум_Пре1_2;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="февраль";
            |m= 3: Пер_=ТекГод_+".1.03"; Сум_=Сум1_3;  Сум_Пре_=Сум_Пре1_3;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="март";
            |m= 4: Пер_=ТекГод_+".2.04"; Сум_=Сум1_4;  Сум_Пре_=Сум_Пре1_4;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="апрель";
            |m= 5: Пер_=ТекГод_+".2.05"; Сум_=Сум1_5;  Сум_Пре_=Сум_Пре1_5;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="май";
            |m= 6: Пер_=ТекГод_+".2.06"; Сум_=Сум1_6;  Сум_Пре_=Сум_Пре1_6;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="июнь";
            |m= 7: Пер_=ТекГод_+".3.07"; Сум_=Сум1_7;  Сум_Пре_=Сум_Пре1_7;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="июль";
            |m= 8: Пер_=ТекГод_+".3.08"; Сум_=Сум1_8;  Сум_Пре_=Сум_Пре1_8;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="август";
            |m= 9: Пер_=ТекГод_+".3.09"; Сум_=Сум1_9;  Сум_Пре_=Сум_Пре1_9;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="сентябрь";
            |m=10: Пер_=ТекГод_+".4.10"; Сум_=Сум1_10; Сум_Пре_=Сум_Пре1_10; СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="октябрь";
            |m=11: Пер_=ТекГод_+".4.11"; Сум_=Сум1_11; Сум_Пре_=Сум_Пре1_11; СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="ноябрь";
            |m=12: Пер_=ТекГод_+".4.12"; Сум_=Сум1_12; Сум_Пре_=Сум_Пре1_12; СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="декабрь";
            |m=13: Пер_=Str(ТекГод+1);   Сум_=Сум2;    Сум_Пре_=Сум_Пре2;    СчДеб_=СчДеб2; СчКре_=СчКре2; Сч_=Сч2_; Мес_="план. период, первый год";
            |m=14: Пер_=Str(ТекГод+2);   Сум_=Сум3;    Сум_Пре_=Сум_Пре3;    СчДеб_=СчДеб3; СчКре_=СчКре3; Сч_=Сч3_; Мес_="план. период, второй год";
          fi;
          Пер_="ПЕРИОД."+Пер_;
          if not Name_S(СчДеб_)=" " and not Name_S(СчКре_)=" ":
             if Вал_=BaseCurrency:
                :Сум_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                --Экономия
                :Сум_Пре_-Сум_  $СчДеб_  $Сч_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
               |True:
                :Сум_^$Вал_ :Сум_*КурсВал $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                --Экономия
                :Сум_Пре_-Сум_^$Вал_ :Сум_Пре_*КурсВал_Пре-Сум_*КурсВал  $СчДеб_  $Сч_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
             fi;
          fi; --if not Name_S(СчДеб_)=" " and not Name_S(СчКре_)=" ":
         od; --for m=1..14 do
         --Учет ФК
         if flagФК:
            СчДеб_="ЗАБ.ПО";
            СчКре_="ЗАБ.БО";
            for m=1..3 do
             if m=1: Пер_=Str(ТекГод);   Сум_=Сум1_1+Сум1_2+Сум1_3+Сум1_4+Сум1_5+Сум1_6+Сум1_7+Сум1_8+Сум1_9+Сум1_10+Сум1_11+Сум1_12;  Сум_Пре_=Сум_Пре1_1+Сум_Пре1_2+Сум_Пре1_3+Сум_Пре1_4+Сум_Пре1_5+Сум_Пре1_6+Сум_Пре1_7+Сум_Пре1_8+Сум_Пре1_9+Сум_Пре1_10+Сум_Пре1_11+Сум_Пре1_12; Мес_="текущий год";
               |m=2: Пер_=Str(ТекГод+1); Сум_=Сум2;                                                                                    Сум_Пре_=Сум_Пре2;                                                                                                                               Мес_="план. период, первый год";
               |m=3: Пер_=Str(ТекГод+2); Сум_=Сум3;                                                                                    Сум_Пре_=Сум_Пре3;                                                                                                                               Мес_="план. период, второй год";
             fi;
             Пер_="ПЕРИОД."+Пер_;
             if Вал_=BaseCurrency:
                :Сум_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                --Экономия
                :-(Сум_Пре_-Сум_)  ЗАБ.ЛБ $СчДеб_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
               |True:
                :Сум_^$Вал_ :Сум_*КурсВал $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                --Экономия
                :-(Сум_Пре_-Сум_)^$Вал_ :-(Сум_Пре_*КурсВал_Пре-Сум_*КурсВал)  ЗАБ.ЛБ  $СчДеб_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
             fi;
            od; --for m=1..3 do
         fi; --if flagФК:
        |ТипОпер="БО/ПО":
         Сч1_=ЗаменаСч5(СчКре1,"502.17",ДатаДок);  --Счет ПО
         Сч2_=ЗаменаСч5(СчКре1,"502.27",ДатаДок);
         Сч3_=ЗаменаСч5(СчКре1,"502.37",ДатаДок);
         ТекГод_=Str(ТекГод);
         for m=1..14 do
          if m= 1: Пер_=ТекГод_+".1.01"; Сум_=Сум1_1;  Сум_Пре_=Сум_Пре1_1;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="январь";
            |m= 2: Пер_=ТекГод_+".1.02"; Сум_=Сум1_2;  Сум_Пре_=Сум_Пре1_2;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="февраль";
            |m= 3: Пер_=ТекГод_+".1.03"; Сум_=Сум1_3;  Сум_Пре_=Сум_Пре1_3;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="март";
            |m= 4: Пер_=ТекГод_+".2.04"; Сум_=Сум1_4;  Сум_Пре_=Сум_Пре1_4;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="апрель";
            |m= 5: Пер_=ТекГод_+".2.05"; Сум_=Сум1_5;  Сум_Пре_=Сум_Пре1_5;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="май";
            |m= 6: Пер_=ТекГод_+".2.06"; Сум_=Сум1_6;  Сум_Пре_=Сум_Пре1_6;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="июнь";
            |m= 7: Пер_=ТекГод_+".3.07"; Сум_=Сум1_7;  Сум_Пре_=Сум_Пре1_7;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="июль";
            |m= 8: Пер_=ТекГод_+".3.08"; Сум_=Сум1_8;  Сум_Пре_=Сум_Пре1_8;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="август";
            |m= 9: Пер_=ТекГод_+".3.09"; Сум_=Сум1_9;  Сум_Пре_=Сум_Пре1_9;   СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="сентябрь";
            |m=10: Пер_=ТекГод_+".4.10"; Сум_=Сум1_10; Сум_Пре_=Сум_Пре1_10;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="октябрь";
            |m=11: Пер_=ТекГод_+".4.11"; Сум_=Сум1_11; Сум_Пре_=Сум_Пре1_11;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="ноябрь";
            |m=12: Пер_=ТекГод_+".4.12"; Сум_=Сум1_12; Сум_Пре_=Сум_Пре1_12;  СчДеб_=СчДеб1; СчКре_=СчКре1; Сч_=Сч1_; Мес_="декабрь";
            |m=13: Пер_=Str(ТекГод+1);   Сум_=Сум2;    Сум_Пре_=Сум_Пре2;     СчДеб_=СчДеб2; СчКре_=СчКре2; Сч_=Сч2_; Мес_="план. период, первый год";
            |m=14: Пер_=Str(ТекГод+2);   Сум_=Сум3;    Сум_Пре_=Сум_Пре3;     СчДеб_=СчДеб3; СчКре_=СчКре3; Сч_=Сч3_; Мес_="план. период, второй год";
          fi;
          Пер_="ПЕРИОД."+Пер_;
          if not Name_S(СчДеб_)=" " and not Name_S(СчКре_)=" ":
             if Вал_=BaseCurrency:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   --502.17/502.11
                   :-Сум_Пре_  $Сч_  $СчКре_  {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_      $Сч_  $СчКре_  {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :-Сум_Пре_  $СчДеб_  $Сч_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_      $СчДеб_  $Сч_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   --502.17/502.11
                   :Сум_-Сум_Пре_  $Сч_  $СчКре_  {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :Сум_-Сум_Пре_  $СчДеб_   $Сч_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi; --if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
               |True:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   --502.17/502.11
                   :-Сум_Пре_^$Вал_  :-Сум_Пре_*КурсВал_Пре  $Сч_  $СчКре_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_^$Вал_      : Сум_*КурсВал          $Сч_  $СчКре_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :-Сум_Пре_^$Вал_  :-Сум_Пре_*КурсВал_Пре  $СчДеб_  $Сч_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_^$Вал_      : Сум_*КурсВал          $СчДеб_  $Сч_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   --502.17/502.11
                   :Сум_-Сум_Пре_^$Вал_  :Сум_*КурсВал-Сум_Пре_*КурсВал_Пре  $Сч_  $СчКре_  {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :Сум_-Сум_Пре_^$Вал_  :Сум_*КурсВал-Сум_Пре_*КурсВал_Пре  $СчДеб_   $Сч_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi;
             fi; --if Вал_=BaseCurrency:
          fi;
         od; --for m=1..14 do
         --Учет ФК
         if flagФК:
            for m=1..3 do
             if m=1: Пер_=Str(ТекГод);   Сум_=Сум1_1+Сум1_2+Сум1_3+Сум1_4+Сум1_5+Сум1_6+Сум1_7+Сум1_8+Сум1_9+Сум1_10+Сум1_11+Сум1_12;  Сум_Пре_=Сум_Пре1_1+Сум_Пре1_2+Сум_Пре1_3+Сум_Пре1_4+Сум_Пре1_5+Сум_Пре1_6+Сум_Пре1_7+Сум_Пре1_8+Сум_Пре1_9+Сум_Пре1_10+Сум_Пре1_11+Сум_Пре1_12; Мес_="текущий год";
               |m=2: Пер_=Str(ТекГод+1); Сум_=Сум2;                                                                                    Сум_Пре_=Сум_Пре2;                                                                                                                               Мес_="план. период, первый год";
               |m=3: Пер_=Str(ТекГод+2); Сум_=Сум3;                                                                                    Сум_Пре_=Сум_Пре3;                                                                                                                               Мес_="план. период, второй год";
             fi;
             Пер_="ПЕРИОД."+Пер_;
             if Вал_=BaseCurrency:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   --502.17/502.11
                   :-Сум_Пре_  ЗАБ.ПО  ЗАБ.БО  {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_      ЗАБ.ПО  ЗАБ.БО  {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :-Сум_Пре_  ЗАБ.ЛБ  ЗАБ.ПО {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_      ЗАБ.ЛБ  ЗАБ.ПО {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   --502.17/502.11
                   :Сум_-Сум_Пре_  ЗАБ.ПО  ЗАБ.БО {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :Сум_-Сум_Пре_  ЗАБ.ЛБ  ЗАБ.ПО {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi; --if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
               |True:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   --502.17/502.11
                   :-Сум_Пре_^$Вал_  :-Сум_Пре_*КурсВал_Пре  ЗАБ.ПО  ЗАБ.БО {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_^$Вал_      : Сум_*КурсВал          ЗАБ.ПО  ЗАБ.БО {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :-Сум_Пре_^$Вал_  :-Сум_Пре_*КурсВал_Пре  ЗАБ.ЛБ  ЗАБ.ПО {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_^$Вал_      : Сум_*КурсВал          ЗАБ.ЛБ  ЗАБ.ПО {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   --502.17/502.11
                   :Сум_-Сум_Пре_^$Вал_  :Сум_*КурсВал-Сум_Пре_*КурсВал_Пре  ЗАБ.ПО  ЗАБ.БО  {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   --501.13(506.10)/502.17
                   :Сум_-Сум_Пре_^$Вал_  :Сум_*КурсВал-Сум_Пре_*КурсВал_Пре  ЗАБ.ЛБ  ЗАБ.ПО {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi;
             fi; --if Вал_=BaseCurrency:
            od; --for m=1..3 do
         fi; --flagФК
        |True: --if Match(ТипОпер,"*/ПО/БО"):
         ТекГод_=Str(ТекГод);
         for m=1..14 do
          if m= 1: Пер_=ТекГод_+".1.01"; Сум_=Сум1_1;  Сум_Пре_=Сум_Пре1_1;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="январь";
            |m= 2: Пер_=ТекГод_+".1.02"; Сум_=Сум1_2;  Сум_Пре_=Сум_Пре1_2;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="февраль";
            |m= 3: Пер_=ТекГод_+".1.03"; Сум_=Сум1_3;  Сум_Пре_=Сум_Пре1_3;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="март";
            |m= 4: Пер_=ТекГод_+".2.04"; Сум_=Сум1_4;  Сум_Пре_=Сум_Пре1_4;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="апрель";
            |m= 5: Пер_=ТекГод_+".2.05"; Сум_=Сум1_5;  Сум_Пре_=Сум_Пре1_5;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="май";
            |m= 6: Пер_=ТекГод_+".2.06"; Сум_=Сум1_6;  Сум_Пре_=Сум_Пре1_6;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="июнь";
            |m= 7: Пер_=ТекГод_+".3.07"; Сум_=Сум1_7;  Сум_Пре_=Сум_Пре1_7;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="июль";
            |m= 8: Пер_=ТекГод_+".3.08"; Сум_=Сум1_8;  Сум_Пре_=Сум_Пре1_8;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="август";
            |m= 9: Пер_=ТекГод_+".3.09"; Сум_=Сум1_9;  Сум_Пре_=Сум_Пре1_9;  СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="сентябрь";
            |m=10: Пер_=ТекГод_+".4.10"; Сум_=Сум1_10; Сум_Пре_=Сум_Пре1_10; СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="октябрь";
            |m=11: Пер_=ТекГод_+".4.11"; Сум_=Сум1_11; Сум_Пре_=Сум_Пре1_11; СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="ноябрь";
            |m=12: Пер_=ТекГод_+".4.12"; Сум_=Сум1_12; Сум_Пре_=Сум_Пре1_12; СчДеб_=СчДеб1; СчКре_=СчКре1; Мес_="декабрь";
            |m=13: Пер_=Str(ТекГод+1);   Сум_=Сум2;    Сум_Пре_=Сум_Пре2;    СчДеб_=СчДеб2; СчКре_=СчКре2; Мес_="план. период, первый год";
            |m=14: Пер_=Str(ТекГод+2);   Сум_=Сум3;    Сум_Пре_=Сум_Пре3;    СчДеб_=СчДеб3; СчКре_=СчКре3; Мес_="план. период, второй год";
          fi;
          Пер_="ПЕРИОД."+Пер_;
          if not Name_S(СчДеб_)=" " and not Name_S(СчКре_)=" ":
             if Вал_=BaseCurrency:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   :-Сум_Пре_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_      $СчДеб_  $СчКре_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   :Сум_-Сум_Пре_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi; --if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
               |True:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   :-Сум_Пре_^$Вал_  :-Сум_Пре_*КурсВал_Пре  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_^$Вал_      : Сум_*КурсВал          $СчДеб_  $СчКре_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   :Сум_-Сум_Пре_^$Вал_  :Сум_*КурсВал-Сум_Пре_*КурсВал_Пре  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) $Мес_ ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi;
             fi; --if Вал_=BaseCurrency:
          fi; --if not Name_S(СчДеб_)=" " and not Name_S(СчКре_)=" ":
         od; --for m=1..14 do
         --Учет ФК
         if flagФК:
            СчДеб_="ЗАБ.ЛБ";
            if Match(СчКре1,"*.?.502.17.???"): СчКре_="ЗАБ.ПО";
              |True                          : СчКре_="ЗАБ.БО";
            fi;
            for m=1..3 do
             if m=1: Пер_=Str(ТекГод);   Сум_=Сум1_1+Сум1_2+Сум1_3+Сум1_4+Сум1_5+Сум1_6+Сум1_7+Сум1_8+Сум1_9+Сум1_10+Сум1_11+Сум1_12;  Сум_Пре_=Сум_Пре1_1+Сум_Пре1_2+Сум_Пре1_3+Сум_Пре1_4+Сум_Пре1_5+Сум_Пре1_6+Сум_Пре1_7+Сум_Пре1_8+Сум_Пре1_9+Сум_Пре1_10+Сум_Пре1_11+Сум_Пре1_12; Мес_="текущий год";
               |m=2: Пер_=Str(ТекГод+1); Сум_=Сум2;                                                                                    Сум_Пре_=Сум_Пре2;                                                                                                                               Мес_="план. период, первый год";
               |m=3: Пер_=Str(ТекГод+2); Сум_=Сум3;                                                                                    Сум_Пре_=Сум_Пре3;                                                                                                                               Мес_="план. период, второй год";
             fi;
             Пер_="ПЕРИОД."+Пер_;
             if Вал_=BaseCurrency:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   :-Сум_Пре_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_      $СчДеб_  $СчКре_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   :Сум_-Сум_Пре_  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi; --if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
               |True:
                if not Призн_К=Призн_К_Пре and not Призн_К="" and not Призн_К_Пре="":
                   :-Сум_Пре_^$Вал_  :-Сум_Пре_*КурсВал_Пре  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К_Пре $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                   : Сум_^$Вал_      : Сум_*КурсВал          $СчДеб_  $СчКре_ {$ПризнБО $Призн_К     $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                  |True:
                   :Сум_-Сум_Пре_^$Вал_  :Сум_*КурсВал-Сум_Пре_*КурсВал_Пре  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Опр $Пер_ $СОП_ $ДопКл_ $Аннул_ $ВД_ $БК_ $КОСГУ_} --Изм. БО №$Изм_НомерДок_ от $Изм_ДатаДок (Свед. о БО №$НомерДок_ от $ДатаДок) ($НаимДок_ № $Осн_ДокНом от $Осн_ДокДат)
                fi;
             fi; --if Вал_=BaseCurrency:
            od; --for m=1..3 do
         fi; --if flagФК:
      fi; --if Match(ТипОпер,"*/ПО/БО"):
   Репо; --ИЗМ_ПБО2009="Внесение изменеий в принятые бюджетные обязательства"
   Опер ПБО_ФК1="Принятые бюджетные обязательства"
        (Признак    :S;
         ТипДок     :I;
         ДатаДок    :D;
         Изм_ДатаДок:D;
         РегДата    :D;
         УчетФК     :L;
         Рег        :L)
      var ПризнБО:S;
      if УчетФК and (not Рег or (Рег and not ((ТипДок=1 and Изм_ДатаДок=РегДата) or (not ТипДок=1 and ДатаДок=РегДата)))):
         ПризнБО="БО."+Признак;
         :1  ЗАБ.ФК  ЗАБАЛАНС {$ПризнБО}
      fi;
   Репо; --ПБО_ФК1_="Принятые бюджетные обязательства"
   Опер ПБО_ФК0="Принятые бюджетные обязательства"
        (Признак:S;
         ТекГод :I;
         Рег    :L)
      var ПризнБО:S;
      var ФК_    :N;
      ПризнБО="БО."+Признак;
      ФК_=Tur(ЗАБ.ФК{$ПризнБО},Dat(1,1,ТекГод));
      if not ФК_=0:
         :-ФК_  ЗАБ.ФК  ЗАБАЛАНС {$ПризнБО}
      fi;
   Репо; --ПБО_ФК1_="Принятые бюджетные обязательства"
   Опер ПБО_ФК="Принятые бюджетные обязательства"
        (ТипДок         :I;
         ТекГод         :I;
         РегДата        :D;
         ДатаДок        :D;
         ФорматНомер    :I;
         Префикс        :S;
         Сепаратор      :S;
         НомерДок       :S;
         Изм_ДатаДок    :D;
         Изм_ФорматНомер:I;
         Изм_Префикс    :S;
         Изм_Сепаратор  :S;
         Изм_НомерДок   :S;
         Признак        :S;
         Призн_К        :S;
         Призн_Договор  :S;
         Вал            :S;
         КурсВал        :N;
         Доп_РазмещЗаказ:S;
         КоррСч         :S;
         ТипОпер        :S;
         Сум1_1         :N;
         Сум1_2         :N;
         Сум1_3         :N;
         Сум1_4         :N;
         Сум1_5         :N;
         Сум1_6         :N;
         Сум1_7         :N;
         Сум1_8         :N;
         Сум1_9         :N;
         Сум1_10        :N;
         Сум1_11        :N;
         Сум1_12        :N;
         Сум2           :N;
         Сум3           :N;
         Сум_Пре1_1     :N;
         Сум_Пре1_2     :N;
         Сум_Пре1_3     :N;
         Сум_Пре1_4     :N;
         Сум_Пре1_5     :N;
         Сум_Пре1_6     :N;
         Сум_Пре1_7     :N;
         Сум_Пре1_8     :N;
         Сум_Пре1_9     :N;
         Сум_Пре1_10    :N;
         Сум_Пре1_11    :N;
         Сум_Пре1_12    :N;
         Сум_Пре2       :N;
         Сум_Пре3       :N;
         ВД             :S;
         КБК            :S;
         Призн          :S;
         ДопКл          :S;
         УчетФК         :L;
         Рег            :L)
      var НаимДок_ :S;
      var НомерДок_:S;
      var ПризнБО  :S;
      var Вал_     :Валюта;
      var Пер_     :S;
      var Сум0_    :N;
      var Сум_     :N;
      var Пре_     :N;
      var СОП_     :S;
      var m        :i;
      var ВД_      :S;
      var БК_      :S;
      var КОСГУ_   :S;
      var УслПризн_:S;
      var ДопКл_   :S;
      var СчДеб_   :S;
      var СчКре_   :S;
      var ФК_      :N;
      var ДН       :D;
      var Flag     :L;
      ДН=Dat(1,1,ТекГод);
      if ТипДок=1:
         НаимДок_="Изм.  БО";
         НомерДок_=if(Изм_ФорматНомер=0,Изм_НомерДок,Изм_Префикс+Изм_Сепаратор+Изм_НомерДок);
         Flag=РегДата=Изм_ДатаДок;
        |True:
         НаимДок_="Свед. БО";
         НомерДок_=if(ФорматНомер=0,НомерДок,Префикс+Сепаратор+НомерДок);
         Flag=РегДата=ДатаДок;
      fi;
      ПризнБО="БО."+Признак;
      Вал_=Вал;
      if Вал_="":
         Вал_=BaseCurrency;
      fi;
      СОП_="СОП."+Доп_РазмещЗаказ;
      if СОП_="СОП.":
         СОП_="";
      fi;
      if Pos(" ЦЕЛЬ.",Призн)=0 and not ДопКл="":
         ДопКл_="ЦЕЛЬ."+ДопКл;
        |True:
         ДопКл_="";
      fi;
      if ЕстьСправочник_Наборе("ВД.@", Призн):
         ВД_="";
        |True:
         ВД_="ВД."+ВД;
      fi;
      --БК_="КР."+SubStr(КБК,1,19);
      БК_=if(ВД="2" or ВД="4" or ВД="5", "БК.", "КР.")+SubStr(КБК,1,19);
      if Pos("КОСГУ.",Призн)=0:
         КОСГУ_="КОСГУ."+SubStr(КБК,21,3);
        |True:
         КОСГУ_="";
      fi;
      if КоррСч="502.?7": СчДеб_="ЗАБ.ПО";
        |True           : СчДеб_="ЗАБ.ЛБ";
      fi;
      if ТипОпер="ПО"   : СчКре_="ЗАБ.ПО";
        |ТипОпер="БО/ПО": СчКре_="ЗАБ.БО"; СчДеб_="ЗАБ.ПО";
        |True           : СчКре_="ЗАБ.БО";
      fi;
      if ТипДок=1:
         УслПризн_=ПризнБО+"&"+ВД_+"&"+БК_;
         --if not Призн_К=""      : УслПризн_=УслПризн_+"&"+Призн_К;       fi; для ПО контрагента нету а для БО он есть
         if not Призн_Договор="": УслПризн_=УслПризн_+"&"+Призн_Договор; fi;
         --if not СОП_=""         : УслПризн_=УслПризн_+"&"+СОП_;          fi;
         if not Призн=""        : УслПризн_=УслПризн_+"&"+Призн;         fi;
         if not КОСГУ_=""       : УслПризн_=УслПризн_+"&"+КОСГУ_;        fi;
         --Выравниваем размерность
         if ДопКл_="": 
            УслПризн_=УслПризн_+"&~ЦЕЛЬ.*";
           |True:
            УслПризн_=УслПризн_+"&"+ДопКл_;
         fi;
         if Pos("ФАИП.",Призн)=0:
            УслПризн_=УслПризн_+"&~ФАИП.*";
         fi;
         --Выравниваем размерность
         УслПризн_=ЗаменаСтр(УслПризн_," ","&");
         ФК_=Tur(ЗАБ.ФК{$ПризнБО},ДН);
        |True:
         ФК_=0;
      fi;
      if not ФК_=0 or not Flag:
         for m=1..3 do
          if m=1: Пер_=Str(ТекГод);   Сум_=Сум1_1+Сум1_2+Сум1_3+Сум1_4+Сум1_5+Сум1_6+Сум1_7+Сум1_8+Сум1_9+Сум1_10+Сум1_11+Сум1_12;  Пре_=Сум_Пре1_1+Сум_Пре1_2+Сум_Пре1_3+Сум_Пре1_4+Сум_Пре1_5+Сум_Пре1_6+Сум_Пре1_7+Сум_Пре1_8+Сум_Пре1_9+Сум_Пре1_10+Сум_Пре1_11+Сум_Пре1_12;
            |m=2: Пер_=Str(ТекГод+1); Сум_=Сум2;                                                                                    Пре_=Сум_Пре2;
            |m=3: Пер_=Str(ТекГод+2); Сум_=Сум3;                                                                                    Пре_=Сум_Пре3;
          fi;
          Пер_="ПЕРИОД."+Пер_;
          if ТипДок=1:
             if ТипОпер="501.13/ПО/БО" or ТипОпер="БО/ПО":
                if ФК_=0:
                   Сум0_=Сум_-Пре_;
                  |True:
                   Сум0_=Tur(ЗАБ.ЛБ/ЗАБ.ПО{$УслПризн_&$Пер_!},ДН);
                fi;
                if Вал_=BaseCurrency:
                   :-Сум0_  ЗАБ.ЛБ $СчДеб_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --$НаимДок_№ $НомерДок_ от $ДатаДок
                  |True:
                   :-Сум0_^$Вал_ :-Сум0_*КурсВал ЗАБ.ЛБ $СчДеб_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --$НаимДок_№ $НомерДок_ от $ДатаДок
                fi;
             fi;
             if ТипОпер="501.13/ПО/БО":
                Пре_=0; --сумма переходит вся
               |True:
                if not ФК_=0:
                   Сум_=Tur($СчДеб_/$СчКре_{$УслПризн_&$Пер_!},ДН);
                   Пре_=0;
                fi;
             fi;
            |True:
             Пре_=0;
          fi; --if ТипДок=1:
          if Вал_=BaseCurrency:
             :-(Сум_-Пре_)  $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --$НаимДок_№ $НомерДок_ от $ДатаДок
            |True:
             :-(Сум_-Пре_)^$Вал_ :-(Сум_-Пре_*КурсВал) $СчДеб_  $СчКре_ {$ПризнБО $Призн_К $Призн_Договор $Призн $Пер_ $СОП_ $ДопКл_ $ВД_ $БК_ $КОСГУ_}  --$НаимДок_№ $НомерДок_ от $ДатаДок
          fi;
         od; --for m=1..3 do
      fi; --if not ФК_=0 or Flag:
    Репо; --ПБО_ФК="Принятые бюджетные обязательства"
  Аппург; --Лимиты="Лимиты бюджетных обязательств";
  Группа Банк="Банковские документы";
   ОПЕР Заявка_ДС_На_Карту="Заявка на получение денежных средств на карту оперативная"
    (ДатаДок   :D;
     Призн     :S;
     Номер     :I;
     СуммаП    :N;
     СчДеб     :S;
     СчКре     :S;
     ТипБК     :S;
     БК        :S;
     Назначение:S;
     Призн_ЛС  :S;
     Призн_БО  :S;
     КакБО     :L;
     КакДО     :L;
     ТипРасх   :I;
     Примечание:S;
     Учитывать :L;
     Проводить :L;
     ver       :I)
    var БК1   :S;
    var КОСГУ :S;
    var ВД    :S;
    var СчД   :S;
    var СчК   :S;
    var Опр   :S;
    Опр=if(Проводить,"","ОПЕР");
    if Проводить:
       Опр="";
       СчД=СчДеб;
       СчК=СчКре;
      |True:
       Опр="ОПЕР";
       СчД=ЗаменаСч5(СчДеб,"ЗАБ.00",ДатаДок);
       СчК=ЗаменаСч5(СчКре,"ЗАБ.КР",ДатаДок);
    fi;
    if Опр="ОПЕР" or ver=0:
       : СуммаП  $СчД $СчК {$Призн_ЛС $Призн $Призн_БО $Опр}  --Заявка на получение денежных средств на карту №$Номер от $ДатаДок
    fi;
    if (КакБО or КакДО) and ТипБК="10" and ДатаДок>=НачТекГод:
       ВД=SubStr(СчКре,Length(СчКре)-11,1);
       if Pos(".",БК)=0:
          БК1=SubStr(БК,1,3)+"."+SubStr(БК,4,4)+"."+SubStr(БК,8,7)+"."+SubStr(БК,15,3);
          КОСГУ=SubStr(БК,18,3);
         |True:
          БК1=SubStr(БК,1,19);
          КОСГУ=SubStr(БК,21,3);
       fi;
       if ВД="1":
          if ТипРасх=1: СчД=БК1+".1.503.13."+КОСГУ;
            |True     : СчД=БК1+".1.501.13."+КОСГУ;
          fi;
          СчК=БК1+".1.502.11."+КОСГУ;
          if КакБО:
             :СуммаП $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --Заявка на получение денежных средств на карту №$Номер от $ДатаДок
          fi;
          if КакДО:
             СчД=СчК;
             СчК=БК1+".1.502.12."+КОСГУ;
             :СуммаП $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --Заявка на получение денежных средств на карту №$Номер от $ДатаДок
          fi;
         |not ВД="3":
          СчД=БК1+"."+ВД+".506.10."+КОСГУ;
          СчК=БК1+"."+ВД+".502.11."+КОСГУ;
          if КакБО:
             :СуммаП $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --Заявка на получение денежных средств на карту №$Номер от $ДатаДок
          fi;
          if КакДО:
             СчД=СчК;
             СчК=БК1+".1.502.12."+КОСГУ;
             :СуммаП $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --Заявка на получение денежных средств на карту №$Номер от $ДатаДок
          fi;
       fi;
    fi;
   РЕПО;
   ОПЕР РасшифрНеиспДенСр="Расшифровка сумм, неиспользованных денежных средств"
    (ДатаДок   :D;
     Номер     :I;
     Призн     :S;
     СуммаП    :N;
     СчДеб     :S;
     СчКре     :S;
     ТипБК     :S;
     БК        :S;
     Назначение:S;
     КакБО     :L;
     КакДО     :L;
     Примечание:S)
    var БК1   :S;
    var КОСГУ :S;
    var ВД    :S;
    var СчД   :S;
    var СчК   :S;

     :   СуммаП   $СчДеб $СчКре {$Призн}   --Расшифровка сумм неиспользованных №$Номер от $ДатаДок $Назначение $Примечание
     if (КакБО or КакДО)  and ТипБК="10" and ДатаДок>=НачТекГод:
        ВД=SubStr(СчКре,Length(СчКре)-11,1);
        if Pos(".",БК)=0:
           БК1=SubStr(БК,1,3)+"."+SubStr(БК,4,4)+"."+SubStr(БК,8,7)+"."+SubStr(БК,15,3);
           КОСГУ=SubStr(БК,18,3);
          |True:
           БК1=SubStr(БК,1,19);
           КОСГУ=SubStr(БК,21,3);
        fi;
        if ВД="1":
           СчД=БК1+".1.501.13."+КОСГУ;
           СчК=БК1+".1.502.11."+КОСГУ;
           if КакБО:-- and ЕстьСправочник_Наборе("БО.000",Призн):
              :-СуммаП $СчД $СчК {$Призн} --Расшифровка сумм неиспользованных №$Номер от $ДатаДок
           fi;
           if КакДО:-- and ЕстьСправочник_Наборе("ДО.000",Призн):
              СчД=СчК;
              СчК=БК1+".1.502.12."+КОСГУ;
              :-СуммаП $СчД $СчК {$Призн} --Расшифровка сумм неиспользованных №$Номер от $ДатаДок
           fi;
          |not ВД="3":
           СчД=БК1+"."+ВД+".506.10."+КОСГУ;
           СчК=БК1+"."+ВД+".502.11."+КОСГУ;
           if КакБО:-- and ЕстьСправочник_Наборе("БО.000",Призн):
              :-СуммаП $СчД $СчК {$Призн} --Расшифровка сумм неиспользованных №$Номер от $ДатаДок
           fi;
           if КакДО:-- and ЕстьСправочник_Наборе("ДО.000",Призн):
              СчД=СчК;
              СчК=БК1+".1.502.12."+КОСГУ;
              :-СуммаП $СчД $СчК {$Призн} --Расшифровка сумм неиспользованных №$Номер от $ДатаДок
           fi;
        fi;
     fi;
   РЕПО;
   Опер ПлатПоручВх="Поступившие платежные поручения"
        (РПО_ДатаОпер :D;
         НомерБум     :S;
         ДатаДок      :D;
         РПО_Призн_К  :S;
         РПО_Призн_ЛС :S;
         РПО_Призн_ИКП:S;
         НазначПлат   :S;
         РПО_КакБО    :L;
         РПО_КакДО    :L;
         КБК          :S;
         ТипКБК       :S;
         Сум          :N;
         Призн        :S;
         ПризнДеб     :S;
         ПризнКре     :S;
         СчДеб        :S;
         СчКре        :S;
         Кмнт         :S)
         var Сч_   :S;
         var ВД_   :S;
         var БК_   :S;
         var КОСГУ_:S;
         var СчД   :S;
         var СчК   :S;
         var СчДО  :S;
         var l     :i;
         var Flag  :L;
       :Сум $СчДеб [$ПризнДеб] $СчКре [$ПризнКре] {$Призн $РПО_Призн_К $РПО_Призн_ЛС $РПО_Призн_ИКП} -- п.п. №$НомерБум от $ДатаДок $НазначПлат $Кмнт
       if Match(СчДеб,"*.201.??.???") and РПО_ДатаОпер>=НачТекГод:
          l=Length(СчДеб);
          if ЕстьСправочник_Наборе("ВД.@", Призн):
            ВД_="";
          |True:
            ВД_=SubStr(СчДеб,l-11,1);
            ВД_="ВД."+ВД_;
          fi;
          Сч_=SubStr(СчДеб,l-9,6);
          Сч_="СЧ."+Сч_;
          :Сум ЗАБ.17 ЗАБАЛАНС {$Призн $ПризнДеб $РПО_Призн_К $РПО_Призн_ЛС $РПО_Призн_ИКП $ВД_ $СЧ_} -- п.п. №$НомерБум от $ДатаДок $НазначПлат $Кмнт
       fi;
       if (РПО_КакБО or РПО_КакДО) and ТипКБК="10" and РПО_ДатаОпер>=НачТекГод:
          ВД_=ВзятьКодСчета(СчДеб,"ВД");
          БК_=SubStr(КБК,1,19);
          КОСГУ_=SubStr(КБК,21,3);
          Flag=True;
          if ВД_="1":
             СчД =БК_+".1.501.13."+КОСГУ_;
             СчК =БК_+".1.502.11."+КОСГУ_;
             СчДО=БК_+".1.502.12."+КОСГУ_;
            |not ВД_="3":
             СчД =БК_+"."+ВД_+".506.10."+КОСГУ_;
             СчК =БК_+"."+ВД_+".502.11."+КОСГУ_;
             СчДО=БК_+"."+ВД_+".502.12."+КОСГУ_;
            |True:
             Flag=False;
          fi;
          if Flag:
             if РПО_КакБО:
               :-Сум $СчД $СчК  {$Призн $ПризнДеб $РПО_Призн_К $РПО_Призн_ЛС} -- п.п. №$НомерБум от $ДатаДок $НазначПлат $Кмнт
             fi;
             if РПО_КакДО:
               :-Сум $СчК $СчДО {$Призн $ПризнДеб $РПО_Призн_К $РПО_Призн_ЛС} -- п.п. №$НомерБум от $ДатаДок $НазначПлат $Кмнт
             fi;
          fi;
       fi;
   Репо; --ПлатПоручВх="Поступившие платежные поручения"
   Опер ПлатПоруч_Опер="Оперативные платежные поручения"
        (Дата:D;
         Сум:N;
         СчДеб:S;
         СчКре:S;
         Признак:S;
         Кмнт:S;
         РПО_Призн_К:S;
         РПО_Призн_ЛС:S;
         РПО_Призн_БО:S;
         ver:I)
         var СчД:S;
         var СчК:S;
         var Опр:S;
         СчД=ЗаменаСч5(СчДеб,"ЗАБ.00",Дата);
         СчК=ЗаменаСч5(СчКре,"ЗАБ.КР",Дата);
         if not Name_S(СчД)=" " and not Name_S(СчК)=" ":
            Опр="ОПЕР";
            if ver=0:
            :Сум $СчД $СчК {$Признак $Опр} -- $Кмнт
            |True:
              :Сум $СчД $СчК {$Признак  $РПО_Призн_БО $РПО_Призн_ЛС $РПО_Призн_К $Опр} -- $Кмнт
            fi;
         fi;
   Репо; --ПлатПоруч_Опер="Оперативные платежные поручения"
   Опер ПлатПоруч="Платежные поручения"
        (Сум:N;
         СчДеб:S;
         СчКре:S;
         Признак:S;
         Кмнт:S;
         РПО_Призн_К:S;
         РПО_Призн_ЛС:S;
         РПО_Призн_БО:S;
         ver:I)
        var ВД_:S;
        var Сч_:S;
        var l:i;
        if Match(СчКре,"*.201.??.???"):
           l=Length(СчКре);
           if ЕстьСправочник_Наборе("ВД.@", Признак):
             ВД_="";
           |True:
             ВД_=SubStr(СчКре,l-11,1);
             ВД_="ВД."+ВД_;
           fi;
           Сч_=SubStr(СчКре,l-9,6);
           Сч_="СЧ."+Сч_;
        |True:
           Сч_="";
           ВД_="";
        fi;
         if ver=0:
           :Сум $СчДеб $СчКре {$Признак} -- $Кмнт
           if Match(СчКре,"*.201.??.???"):
              :Сум ЗАБ.18 ЗАБАЛАНС {$Признак $ВД_ $СЧ_} -- $Кмнт
           fi;
         |True:
           :Сум $СчДеб $СчКре {$Признак $РПО_Призн_БО $РПО_Призн_ЛС $РПО_Призн_К} -- $Кмнт
           if Match(СчКре,"*.201.??.???"):
              :Сум ЗАБ.18 ЗАБАЛАНС {$Признак $РПО_Призн_БО $РПО_Призн_ЛС $РПО_Призн_К $ВД_ $СЧ_} -- $Кмнт
           fi;
         fi;
   Репо; --ПлатПоруч="Платежные поручения"
   Опер ЗАБ_17_18="Операции по 17, 18 забалансовым счетам"
        (ЗабСум:N;
         ЗабДеб:S;
         ЗабКре:S;
         ПризнВД:S;
         ПризнКБК:S;
         Призн:S;
         Кмнт:S)
       :ЗабСум $ЗабДеб $ЗабКре {$ПризнВД $ПризнКБК $Призн} -- $Кмнт
   Репо; --ЗАБ_17_18="Операции по 17, 18 забалансовым счетам"
   Опер ЗАЯВКА_КР="Заявка на кассовый расход"
        (ДатаДок     :D;
         НомерДок    :S;
         Глава       :S;
         Призн_ЛС    :S;
         Призн_БО    :S;
         Призн_К     :S;
         Призн_ФАИП  :S;
         Док_НазнПл  :S;
         Ист         :S;
         ТипКБК      :S;
         КБК         :S;
         Призн       :S;
         Призн_ОснДок:S;
         Сум         :N;
         СчДеб       :S;
         СчКре       :S;
         Проводить   :L;
         КакБО       :L;
         КакДО       :L
         )
         var Сч   :S;
         var СчД  :S;
         var СчК  :S;
         var СчДО :S;
         var Опр  :S;
         var БК   :S;
         var КОСГУ:S;
         var ВД   :S;
         var Flag :L;
         Сч ="";
         СчД="";
         СчК="";
         if not Проводить:
            if not СчДеб=СчКре:
               Сч ="СЧ."+SubStr(СчДеб,Length(СчДеб)-9,6);
               СчД=ЗаменаСч5(СчДеб,"ЗАБ.00",ДатаДок);
            fi;
            СчК=ЗаменаСч5(СчКре,"ЗАБ.КР",ДатаДок);
            if СчДеб=СчКре:
               СчД=СчК;
            fi;
            if not Name_S(СчД)=" " and not Name_S(СчК)=" ":
               Опр="ОПЕР";
               :Сум $СчД $СчК {$Призн_ЛС $Призн_БО $Призн_К $Призн_ФАИП $Призн_ОснДок $Призн $Опр $Сч} --ЗКР №$НомерДок от $ДатаДок $Док_НазнПл
            fi;
         fi;
         if (КакБО or КакДО) and ТипКБК="10" and ДатаДок>=НачТекГод:
            Опр=if(Проводить,"","ОПЕР");
            ВД=SubStr(СчКре,Length(СчКре)-11,1);
            if Pos(".",КБК) = 0:
               БК=SubStr(КБК,1,3)+"."+SubStr(КБК,4,4)+"."+SubStr(КБК,8,7)+"."+SubStr(КБК,15,3);
               КОСГУ=SubStr(КБК,18,3);
              |True:
               БК=SubStr(КБК,1,19);
               КОСГУ=SubStr(КБК,21,3);
            fi;
            Flag=True;
            if ВД="1":
               СчД =БК+".1.501.13."+КОСГУ;
               СчК =БК+".1.502.11."+КОСГУ;
               СчДО=БК+".1.502.12."+КОСГУ;
              |not ВД="3":
               СчД =БК+"."+ВД+".506.10."+КОСГУ;
               СчК =БК+"."+ВД+".502.11."+КОСГУ;
               СчДО=БК+"."+ВД+".502.12."+КОСГУ;
              |True:
               Flag=False;
            fi;
            if Flag:
               if КакБО:
                 :Сум $СчД $СчК  {$Призн_ЛС $Призн_БО $Призн_К $Призн_ФАИП $Призн_ОснДок $Призн $Опр} --ЗКР №$НомерДок от $ДатаДок $Док_НазнПл
               fi;
               if КакДО:
                 :Сум $СчК $СчДО {$Призн_ЛС $Призн_БО $Призн_К $Призн_ФАИП $Призн_ОснДок $Призн $Опр} --ЗКР №$НомерДок от $ДатаДок $Док_НазнПл
               fi;
            fi;
         fi;
   Репо; --ЗАЯВКА_КР="Заявка на кассовый расход"
   Опер ЗАЯВКА_НАЛ_ОПЕР="Заявка на получение наличных денег оперативная"
        (ДатаДок  :D;
         НомерДок :S;
         Призн_ЛС :S;
         Призн_БО :S;
         Ист      :S;
         ТипКБК   :S;
         КБК      :S;
         Сум      :N;
         Призн    :S;
         СчДеб    :S;
         СчКре    :S;
         ТипРасх  :I;
         Проводить:L;
         КакБО    :L;
         КакДО    :L)
         var СчД:S;
         var СчК:S;
         var Опр:S;
         var БК   :S;
         var КОСГУ:S;
         var ВД   :S;
         if Проводить:
            Опр="";
           |True:
            Опр="ОПЕР";
            СчД=ЗаменаСч5(СчДеб,"ЗАБ.00",ДатаДок);
            СчК=ЗаменаСч5(СчКре,"ЗАБ.КР",ДатаДок);
            if not Name_S(СчД)=" " and not Name_S(СчК)=" ":
               :Сум $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --ЗНЛ №$НомерДок от $ДатаДок
            fi;
         fi;
         if (КакБО or КакДО) and ТипКБК="10"and ДатаДок>=НачТекГод:
            ВД=SubStr(СчКре,Length(СчКре)-11,1);
            if Pos(".",КБК)=0:
               БК=SubStr(КБК,1,3)+"."+SubStr(КБК,4,4)+"."+SubStr(КБК,8,7)+"."+SubStr(КБК,15,3);
               КОСГУ=SubStr(КБК,18,3);
              |True:
               БК=SubStr(КБК,1,19);
               КОСГУ=SubStr(КБК,21,3);
            fi;
            if ВД="1":
               if ТипРасх=1: СчД=БК+".1.503.13."+КОСГУ;
                 |True     : СчД=БК+".1.501.13."+КОСГУ;
               fi;
               СчК=БК+".1.502.11."+КОСГУ;
               if КакБО:
                  :Сум $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --ЗНЛ №$НомерДок от $ДатаДок
               fi;
               if КакДО:
                  СчД=СчК;
                  СчК=БК+".1.502.12."+КОСГУ;
                  :Сум $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --ЗНЛ №$НомерДок от $ДатаДок
               fi;
              |not ВД="3":
               СчД=БК+"."+ВД+".506.10."+КОСГУ;
               СчК=БК+"."+ВД+".502.11."+КОСГУ;
               if КакБО:
                  :Сум $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --ЗНЛ №$НомерДок от $ДатаДок
               fi;
               if КакДО:
                  СчД=СчК;
                  СчК=БК+"."+ВД+".502.12."+КОСГУ;
                  :Сум $СчД $СчК {$Призн_ЛС $Призн_БО $Призн $Опр} --ЗНЛ №$НомерДок от $ДатаДок
               fi;
            fi;
         fi;
   Репо; --ЗАЯВКА_НАЛ="Заявка на получение наличных денег"
   Опер ЗАЯВКА_НАЛ="Заявка на получение наличных денег"
        (ДатаДок  :D;
         НомерДок :S;
         Призн_ЛС :S;
         Призн_БО :S;
         Сум      :N;
         СчДеб    :S;
         СчКре    :S;
         Призн    :S)
       :Сум $СчДеб $СчКре {$Призн_ЛС $Призн_БО $Призн} --Заявка на получение наличных денег №$НомерДок от $ДатаДок
   Репо; --ЗАЯВКА_НАЛ="Заявка на получение наличных денег"
   Опер ЗАЯВКА_ВОЗВРАТ="Заявка на возврат"
        (ДатаДок   :D;
         НомерДок  :S;
         Призн_ЛС  :S;
         Призн_К   :S;
         Призн_ИКП :S;
         Сум       :N;
         СумРуб    :N;
         СчДеб     :S;
         СчКре     :S;
         Призн     :S;
         Док_НазнПл:S;
         ДокОперНом:S;
         Учитывать :L;
         Проводить :L)
         var СчД:S;
         var СчК:S;
         var Опр:S;
         СчД="";
         СчК="";
         if Учитывать and not Проводить:
            СчД=ЗаменаСч5(СчДеб,"ЗАБ.00",ДатаДок);
            СчК=ЗаменаСч5(СчКре,"ЗАБ.КР",ДатаДок);
            if not Name_S(СчД)=" " and not Name_S(СчК)=" ":
               Опр="ОПЕР";
               :СумРуб $СчД $СчК {$Призн_ЛС $Призн_К $Призн_ИКП $Призн $Опр} --Заявка на возврат №$НомерДок от $ДатаДок $Док_НазнПл
            fi;
         fi;
         if Проводить and ДокОперНом="":
            :СумРуб $СчДеб $СчКре {$Призн_ЛС $Призн_К $Призн_ИКП $Призн} --Заявка на возврат №$НомерДок от $ДатаДок $Док_НазнПл
         fi;
   Репо; --ЗАЯВКА_ВОЗВРАТ="Заявка на возврат"
   Опер УВЕДОМ_УТОЧ_ПЛАТ_СТОРНО="Уведомление об уточнении вида и принадлежности платежа (сторно)"
        (ДатаДок :D;
         НомерДок:S;
         СчДеб   :S;
         СчКре   :S;
         Призн   :S;
         Сум     :N;
         СумПров :N;
         Примеч  :S;
         Знак_Исх:I;
         Знак_Поз:I
         )
         var СумПро   :N;
         var Знак_Исх_:N;
         var СчДеб_   :S;
         var СчКре_   :S;
         if Знак_Исх =-1:
            Знак_Исх_=Знак_Поз;
           |True:
            Знак_Исх_=Знак_Исх;
         fi;
         if СумПров=0:
            if (Match(СчКре,"*.1.304.05.*") or Match(СчКре,"*.?.201.?1.*")) and Знак_Поз=0:
               СумПро=Сум;
              |(Match(СчДеб,"*.1.304.05.*") or Match(СчКре,"*.?.201.?1.*")) and Знак_Поз=0:
               СумПро=Сум;
              |True:
               СумПро=Сум*(Знак_Исх_ - 1);
            fi;
           |True:
            СумПро=СумПров;
         fi;
         if СумПро<>0:
            if (Match(СчКре,"*.1.304.05.*") or Match(СчКре,"*.?.201.?1.*")) and Знак_Поз=0:
               if Match(СчДеб,"*.56?") or Match(СчДеб,"*.83?"):
                  СчДеб_=ПереворотКосгу(СчДеб);
                  : СумПро $СчКре $СчДеб_ {$Призн} -- Уведомление №$НомерДок от $ДатаДок $Примеч
                 |True:
                  :-СумПро $СчДеб $СчКре {$Призн} -- Уведомление №$НомерДок от $ДатаДок $Примеч
               fi;
              |(Match(СчДеб,"*.1.304.05.*") or Match(СчКре,"*.?.201.?1.*")) and Знак_Поз=0:
               if Match(СчКре,"*.66?") or Match(СчКре,"*.73?"):
                  СчКре_=ПереворотКосгу(СчКре);
                  : СумПро $СчКре_ $СчДеб {$Призн} -- Уведомление №$НомерДок от $ДатаДок $Примеч
                 |True:
                  :-СумПро $СчДеб $СчКре {$Призн} -- Уведомление №$НомерДок от $ДатаДок $Примеч
               fi;
              |True:
               :СумПро $СчДеб $СчКре {$Призн} -- Уведомление №$НомерДок от $ДатаДок $Примеч
            fi;
         fi;
   Репо; --УВЕДОМ_УТОЧ_ПЛАТ="Уведомление об уточнении вида и принадлежности платежа"
   Опер УВЕДОМ_УТОЧ_ПЛАТ_ПОВТОРНО="Уведомление об уточнении вида и принадлежности платежа (повторно)"
        (ДатаДок :D;
         НомерДок:S;
         СчДеб   :S;
         СчКре   :S;
         Призн   :S;
         Сум     :N;
         СумПров :N;
         НазнПл  :S
         )
        :СумПров $СчДеб $СчКре {$Призн} -- Уведомление №$НомерДок от $ДатаДок $НазнПл
   Репо; --УВЕДОМ_УТОЧ_ПЛАТ="Уведомление об уточнении вида и принадлежности платежа"
  Аппург; --Банк="Банковские документы";
  Группа Касса="Кассовые документы";
   Опер ПрихОрд="Приходный ордер"
       (Де    :S;
        Счет  :S;
        По    :S;
        Призн :S;
        Цель  :S;
        Осн   :S;
        ФИО   :S;
        НомерБум:S;
        РПО_PacketMode:L)
    var ВД_:S;
    var l:i;
    var Cmnt:S;
    if РПО_PacketMode=False:
       if ЕстьСправочник_Наборе("ВД.@", Призн) or ЕстьСправочник_Наборе("ВД.@", Цель):
         ВД_="";
       |True:
         l=Length(Де);
         ВД_=SubStr(Де,l-11,1);
         ВД_="ВД."+ВД_;
       fi;
       Cmnt="ПКО "+НомерБум+" принято от: "+ФИО+" "+Осн;
       :Сумма^$Валюта $Де $Счет {$Призн $По $Цель} -- $Cmnt
       :Сумма^$Валюта ЗАБ.17 ЗАБАЛАНС {$Призн $По $Цель $ВД_ СЧ.201.34} -- $Cmnt
    fi;
   Репо; --ПрихОрд="Приходный ордер"
   Опер ПрихОрдПакетный="Пакетный приходный ордер"
       (ТДСчет   :S;
        ТСчет    :S;
        ТПризн   :S;
        ТПризнДеб:S;
        ТПризнКре:S;
        ТСумма   :N;
        ТПримеч  :S;
        Осн      :S;
        ФИО      :S;
        НомерБум :S;
        РПО_PacketMode:L;
        Т2       :L)
    var ВД_:S;
    var l:i;
    var Cmnt:S;
    if РПО_PacketMode:
       if not Т2:
          if ЕстьСправочник_Наборе("ВД.@", ТПризн):
             ВД_="";
           |True:
            l=Length(ТДСчет);
            ВД_=SubStr(ТДСчет,l-11,1);
            ВД_="ВД."+ВД_;
          fi;
       fi;
       Cmnt="ПКО "+НомерБум+" принято от: "+ФИО+" "+Осн+" "+ТПримеч;
       :ТСумма^$Валюта $ТДСчет [$ТПризнДеб] $ТСчет [$ТПризнКре] {$ТПризн} -- $Cmnt
       if not Т2:
          :ТСумма^$Валюта ЗАБ.17 ЗАБАЛАНС {$ТПризн $ВД_ $ТПризнДеб СЧ.201.34} -- $Cmnt
       fi;
    fi;
   Репо; --ПрихОрдПакетный="Пакетный приходный ордер"
   Опер РасхОрд="Расходный ордер"
       (Счет:S;
        Кр:S;
        По:S;
        Призн:S;
        Цель:S;
        Осн: S;
        ФИО   :S;
        НомерБум:S;
        РПО_PacketMode:L)
    var ВД_:S;
    var l:i;
    var Cmnt:S;
    if РПО_PacketMode=False:
       if ЕстьСправочник_Наборе("ВД.@", Призн) or ЕстьСправочник_Наборе("ВД.@", Цель):
         ВД_="";
       |True:
         l=Length(Кр);
         ВД_=SubStr(Кр,l-11,1);
         ВД_="ВД."+ВД_;
       fi;
       Cmnt="РКО "+НомерБум+" выдать "+ФИО+" "+Осн;
       :Сумма^$Валюта $Счет $Кр {$Призн $По $Цель} -- $Cmnt
       :Сумма^$Валюта ЗАБ.18 ЗАБАЛАНС {$Призн $По $Цель $ВД_ СЧ.201.34} -- $Cmnt
    fi;
   Репо; --РасхОрд="Расходный ордер"
   Опер РасхОрдПакетный="Пакетный расходный ордер"
       (ТСчет    :S;
        ТКСчет   :S;
        ТПризн   :S;
        ТПризнДеб:S;
        ТПризнКре:S;
        ТСумма   :N;
        ТПримеч  :S;
        Осн      :S;
        ФИО      :S;
        НомерБум :S;
        РПО_PacketMode:L;
        Т2       :L)
    var ВД_:S;
    var l:i;
    var Cmnt:S;
    if РПО_PacketMode:
       if not Т2:
          if ЕстьСправочник_Наборе("ВД.@", ТПризн):
             ВД_="";
            |True:
             l=Length(ТКСчет);
             ВД_=SubStr(ТКСчет,l-11,1);
             ВД_="ВД."+ВД_;
          fi;
       fi;
       Cmnt="РКО "+НомерБум+" выдать "+ФИО+" "+Осн+" "+ТПримеч;
       :ТСумма^$Валюта $ТСчет [$ТПризнДеб] $ТКСчет [$ТПризнКре] {$ТПризн} -- $Cmnt
       if not Т2:
          :ТСумма^$Валюта ЗАБ.18 ЗАБАЛАНС {$ТПризн $ВД_ $ТПризнКре СЧ.201.34} -- $Cmnt
       fi;
    fi;
   Репо; --РасхОрдПакетный="Пакетный расходный ордер"
   Опер ВедПодОтчет="Ведомость на выдачу денег из кассы подотчетным лицам"
       (СчДеб:S;
        ОбщСчКре:S;
        ПризнМОЛ:S;
        ПризнПодр:S;
        Призн:S;
        Примеч:S;
        НомерРКО:S;
        Искл:L)
    var ВД_:S;
    var l:i;
    var Cmnt:S;
    if Искл=False:
       if ЕстьСправочник_Наборе("ВД.@", Призн):
         ВД_="";
       |True:
         l=Length(ОбщСчКре);
         ВД_=SubStr(ОбщСчКре,l-11,1);
         ВД_="ВД."+ВД_;
       fi;
       Cmnt="РКО "+НомерРКО+" (Ведомость на выдачу денег из кассы подотчетным лицам) "+Примеч;
       :Сумма $СчДеб $ОбщСчКре {$ПризнМОЛ $ПризнПодр $Призн} -- $Cmnt
       :Сумма ЗАБ.18 ЗАБАЛАНС {$ПризнМОЛ $ПризнПодр $Призн $ВД_ СЧ.201.34} -- $Cmnt
    fi;
   Репо; --ВедПодОтчет="Ведомость на выдачу денег из кассы подотчетным лицам"
   Опер Заяв_Нал="Заявка на получение наличных денег"
       (СчДеб:S;
        СчКре:S;
        Призн:S;
        Примеч:S;
        НомерБум:S)
       :Сумма $СчДеб $СчКре {$Призн} -- Заявка N $НомерБум $Примеч
   Репо; --Заяв_Нал="Заявка на получение наличных денег"
   Опер Взнос_Нал="Объявление на взнос наличными"
       (ДатОпер :D;
        СчДеб    :S;
        СчКре    :S;
        Призн    :S;
        Примеч   :S;
        НомерБум :S;
        РПО_КакБО:L;
        РПО_КакДО:L)
       var БК     :S;
       var КОСГУ  :S;
       var ВД     :S;
       var СчБД   :S;
       var СчБК   :S;
       var СчДК   :S;
       var БО     :S;
       var existБО:S;
       var tmp    :S;
       var p:I;
       СчБД=""; СчБК=""; СчДК=""; БК=""; КОСГУ=""; ВД=""; БО=""; existБО="";
       if (РПО_КакБО or РПО_КакДО) and ДатОпер>=НачТекГод:
          if Match(СчДеб,"*.1.304.05.*"):
             ВД="1"; 
             БК=ВзятьКодСчета(СчДеб,"БК"); 
             КОСГУ=ВзятьКодСчета(СчДеб,"КОСГУ");
            |Match(СчДеб,"*.?.201.?1.*"):
             p=Pos("КР.",Призн);
             if p=0 or p>1:
                p=Pos(" КР.",Призн);
                if not p=0: p=p+1; fi;
             fi;
             if not p=0:
                tmp=SubStr(Призн,p,255);
                p=Pos(" ",tmp);
                if not p=0: tmp=SubStr(tmp,1,p-1); fi;
                БК=SubStr(tmp,4,19);
                p=Pos("КОСГУ.",Призн);
                if p=0 or p>1:
                   p=Pos(" КОСГУ.",Призн);
                   if not p=0: p=p+1; fi;
                fi;
                if not p=0:
                   tmp=SubStr(Призн,p,255);
                   p=Pos(" ",tmp);
                   if not p=0: tmp=SubStr(tmp,1,p-1); fi;
                   КОСГУ=SubStr(tmp,7,3);
                   ВД=ВзятьКодСчета(СчДеб,"ВД");
                fi;
             fi;
          fi;
          if not БК="" and not КОСГУ="" and not ВД="":
             if ВД="1"    : СчБД=БК+"."+ВД+".501.13."+КОСГУ; СчБК=БК+"."+ВД+".502.11."+КОСГУ;
               |not ВД="3": СчБД=БК+"."+ВД+".506.10."+КОСГУ; СчБК=БК+"."+ВД+".502.11."+КОСГУ;
             fi;
             СчДК=БК+"."+ВД+".502.12."+КОСГУ;
             tmp="";
             p=Pos("БО.",Призн);
             if p=0 or p>1:
                p=Pos(" БО.",Призн);
                if not p=0: p=p+1; fi;
                if not p=0: 
                   tmp=SubStr(Призн,p,255);
                   p=Pos(" ",tmp);
                   if not p=0: tmp=SubStr(tmp,1,p-1); fi;
                fi;
                existБО=tmp;
             fi;
             if existБО="": БО="БО.000"; fi;
          fi;
       fi;
       :Сумма $СчДеб $СчКре {$Призн $БО} -- Объявление на взнос N $НомерБум $Примеч
       if РПО_КакБО:
          if not СчБД="" and not СчБК="" and (БО="БО.000" or existБО="БО.000"):
             :-Сумма $СчБД $СчБК {$Призн $БО} -- Объявление на взнос N $НомерБум $Примеч
          fi;
       fi;
       if РПО_КакДО:
          if not СчБК="" and not СчДК="" and (not БО="" or not existБО=""):
             :-Сумма $СчБК $СчДК {$Призн $БО ДО.000} -- Объявление на взнос N $НомерБум $Примеч
          fi;
       fi;
   Репо; --Взнос="Объявление на взнос наличными"
   Опер Реестр_деп="Реестр депонированных сумм"
       (СчДеб:S;
        СчКре:S;
        Аналит:S;
        ПериодПр:S)
       :Сумма $СчДеб $СчКре {$Аналит $ПериодПр} -- Реестр депонированных сумм
    Репо; --Реестр_деп="Реестр депонированных сумм"
  Аппург; --Касса="Кассовые документы";
  Группа ДенДок="Денежные документы";
   ОПЕР Приход="Приход денежных документов"
        (Кол            :N;
         СчДеб          :Счета;
         СчКре          :Счета;
         ПризнПодр      :S;
         ОбщПризн       :S;
         Призн          :S;
         ПризнДеб       :S;
         ПризнКре       :S;
         ДенДокВид_Призн:S;
         ДенДокВид_Наим :S;
         НомерБум       :S;
         СерияБум       :S;
         НомерБум_Н     :S;
         НомерБум_К     :S;
         Коммент        :S;
         FlagКол        :L
        )
        var Cmnt       :S;
        var tmp        :S;
        var ДенДокПризн:S;
        var ПризнД1    :S;
        var ПризнД2    :S;
        var ПризнД3    :S;
        var ПризнК1    :S;
        var ПризнК2    :S;
        var ПризнК3    :S;
        var p          :i;
        if FlagКол: Cmnt="Фондовый ПКО N"+НомерБум+" "+ДенДокВид_Наим+" "+Коммент;
          |True   : Cmnt="Фондовый ПКО N"+НомерБум+" "+ДенДокВид_Наим+" Серия "+СерияБум+" N"+НомерБум_Н+"-"+НомерБум_К+" "+Коммент;
        fi;
        if Match(СчДеб,"*.?.105.??.???"): ДенДокПризн="НФА.105.06."+ДенДокВид_Призн;
          |True                         : ДенДокПризн=ДенДокВид_Призн;
        fi;
        ПризнД1=""; ПризнК1="";
        ПризнД2=""; ПризнК2="";
        ПризнД3=""; ПризнК3="";
        if not ПризнДеб="":
           p=Pos(" ",ПризнДеб);
           if p=0 : ПризнД1=ПризнДеб;
             |true: ПризнД1=SubStr(ПризнДеб,1,p-1);
                    tmp=SubStr(ПризнДеб,p+1,255);
                    if not tmp="":
                       p=Pos(" ",tmp);
                       if p=0 : ПризнД2=tmp;
                         |true: ПризнД2=SubStr(tmp,1,p-1);
                                tmp=SubStr(tmp,p+1,255);
                                if not tmp="":
                                   p=Pos(" ",tmp);
                                   if p=0 : ПризнД3=tmp;
                                     |true: ПризнД3=SubStr(tmp,1,p-1);
                                   fi;
                                fi;
                       fi;
                    fi;
           fi;
        fi;
        if not ПризнКре="":
           p=Pos(" ",ПризнКре);
           if p=0 : ПризнК1=ПризнКре;
             |true: ПризнК1=SubStr(ПризнКре,1,p-1);
                    tmp=SubStr(ПризнКре,p+1,255);
                    if not tmp="":
                       p=Pos(" ",tmp);
                       if p=0 : ПризнК2=tmp;
                         |true: ПризнК2=SubStr(tmp,1,p-1);
                                tmp=SubStr(tmp,p+1,255);
                                if not tmp="":
                                   p=Pos(" ",tmp);
                                   if p=0 : ПризнК3=tmp;
                                     |true: ПризнК3=SubStr(tmp,1,p-1);
                                   fi;
                                fi;
                       fi;
                    fi;
           fi;
        fi;
    :Сумма $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3] {$ПризнПодр $ОбщПризн $Призн $ДенДокПризн:Кол} --$Cmnt
   РЕПО; --ДенДок_Приход="Приход денежных документов"
   ОПЕР Расход="Расход денежных документов"
        (Кол            :N;
         СчДеб          :Счета;
         СчКре          :Счета;
         ПризнПодр      :S;
         ОбщПризн       :S;
         Призн          :S;
         ПризнДеб       :S;
         ПризнКре       :S;
         ДенДокВид_Призн:S;
         ДенДокВид_Наим :S;
         НомерБум       :S;
         СерияБум       :S;
         НомерБум_Н     :S;
         НомерБум_К     :S;
         Коммент        :S;
         FlagКол        :L
        )
        var Cmnt       :S;
        var tmp        :S;
        var ДенДокПризн:S;
        var ПризнД1    :S;
        var ПризнД2    :S;
        var ПризнД3    :S;
        var ПризнК1    :S;
        var ПризнК2    :S;
        var ПризнК3    :S;
        var p          :i;
        if FlagКол: Cmnt="Фондовый РКО N"+НомерБум+" "+ДенДокВид_Наим+" "+Коммент;
          |True   : Cmnt="Фондовый РКО N"+НомерБум+" "+ДенДокВид_Наим+" Серия "+СерияБум+" N"+НомерБум_Н+"-"+НомерБум_К+" "+Коммент;
        fi;
        if Match(СчКре,"*.?.105.??.???"): ДенДокПризн="НФА.105.06."+ДенДокВид_Призн;
          |True                         : ДенДокПризн=ДенДокВид_Призн;
        fi;
        ПризнД1=""; ПризнК1="";
        ПризнД2=""; ПризнК2="";
        ПризнД3=""; ПризнК3="";
        if not ПризнДеб="":
           p=Pos(" ",ПризнДеб);
           if p=0 : ПризнД1=ПризнДеб;
             |true: ПризнД1=SubStr(ПризнДеб,1,p-1);
                    tmp=SubStr(ПризнДеб,p+1,255);
                    if not tmp="":
                       p=Pos(" ",tmp);
                       if p=0 : ПризнД2=tmp;
                         |true: ПризнД2=SubStr(tmp,1,p-1);
                                tmp=SubStr(tmp,p+1,255);
                                if not tmp="":
                                   p=Pos(" ",tmp);
                                   if p=0 : ПризнД3=tmp;
                                     |true: ПризнД3=SubStr(tmp,1,p-1);
                                   fi;
                                fi;
                       fi;
                    fi;
           fi;
        fi;
        if not ПризнКре="":
           p=Pos(" ",ПризнКре);
           if p=0 : ПризнК1=ПризнКре;
             |true: ПризнК1=SubStr(ПризнКре,1,p-1);
                    tmp=SubStr(ПризнКре,p+1,255);
                    if not tmp="":
                       p=Pos(" ",tmp);
                       if p=0 : ПризнК2=tmp;
                         |true: ПризнК2=SubStr(tmp,1,p-1);
                                tmp=SubStr(tmp,p+1,255);
                                if not tmp="":
                                   p=Pos(" ",tmp);
                                   if p=0 : ПризнК3=tmp;
                                     |true: ПризнК3=SubStr(tmp,1,p-1);
                                   fi;
                                fi;
                       fi;
                    fi;
           fi;
        fi;
    :Сумма $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3] {$ПризнПодр $ОбщПризн $Призн $ДенДокПризн:Кол} --$Cmnt
   РЕПО; --ДенДок_Расход="Расход денежных документов"
  Аппург; -- ДенДок="Денежные документы";
  Группа ЦентрСнаб="Централизованное снабжение";
   ОПЕР Извещения_Исх="Исходящие извещения"
       (НомерБум     :S;
        ДатаИзв      :D;
        ОтправПризнак:S;
        ПолучПризнак :S;
        Подр         :S;
        НомОрд       :S;
        Содерж       :S;
        СчДеб        :S;
        СчКре        :S;
        Призн        :S;
        ПризнДеб     :S;
        ПризнКре     :S;
        Сум          :N;
        СумРуб       :N;
        Flag         :L;
        is69н        :L
       )
       var tmp:S;
       var СчД5:S;
       var СчК5:S;
       var ПризнД1:S;
       var ПризнД2:S;
       var ПризнД3:S;
       var ПризнД4:S;
       var ПризнД5:S;
       var ПризнК1:S;
       var ПризнК2:S;
       var ПризнК3:S;
       var ПризнК4:S;
       var ПризнК5:S;
       var Transit:L;
       var L:I;
       var p:i;
       var Подр_:S;
       Подр_="";
    if is69н:
       ПризнД1="";
       ПризнД2="";
       ПризнД3="";
       ПризнД4="";
       ПризнД5="";
       ПризнК1="";
       ПризнК2="";
       ПризнК3="";
       ПризнК4="";
       ПризнК5="";
       if not ПризнДеб="":
          p=Pos(" ",ПризнДеб);
          if p=0 : ПризнД1=ПризнДеб;
            |true: ПризнД1=SubStr(ПризнДеб,1,p-1);
                   tmp=SubStr(ПризнДеб,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнД2=tmp;
                        |true: ПризнД2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнД3=tmp;
                                    |true: ПризнД3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнД4=tmp;
                                                |true: ПризнД4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнД5=tmp;
                                                            |true: ПризнД5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if not ПризнКре="":
          p=Pos(" ",ПризнКре);
          if p=0 : ПризнК1=ПризнКре;
            |true: ПризнК1=SubStr(ПризнКре,1,p-1);
                   tmp=SubStr(ПризнКре,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнК2=tmp;
                        |true: ПризнК2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнК3=tmp;
                                    |true: ПризнК3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнК4=tmp;
                                                |true: ПризнК4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнК5=tmp;
                                                            |true: ПризнК5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       Transit=СчДеб=СчКре;
       if not Transit:
          L=Length(СчДеб);
          СчД5=SubStr(СчДеб,L-9,6);
          L=Length(СчКре);
          СчК5=SubStr(СчКре,L-9,6);
          Transit=СчД5=СчК5;
       fi;
       if Transit:
          if Валюта=BaseCurrency:
             :Сум^$Валюта $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5 $ПолучПризнак] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5 $ОтправПризнак] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
            |true:
             :Сум^$Валюта :СумРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5 $ПолучПризнак] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5 $ОтправПризнак] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
          fi;
         |True:
          if Валюта=BaseCurrency:
             :Сум^$Валюта $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             if Match(Призн,"*ДОГОВОР.*"):
--                :Сум^$Валюта ЗАБ.05 [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] ЗАБАЛАНС [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             fi;
            |true:
             :Сум^$Валюта :СумРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             if Match(Призн,"*ДОГОВОР.*"):
--                :Сум^$Валюта :СумРуб ЗАБ.05 [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] ЗАБАЛАНС [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             fi;
          fi;
       fi;
      |Flag:
       :Сум^$Валюта $СчДеб $СчКре {$Подр_ $Призн $НомОрд $ПризнДеб $ПризнКре} -- Извещение N $НомерБум от $ДатаИзв $Содерж
      |True:
       if Валюта=BaseCurrency:
          :Сум^$Валюта $СчДеб [$ПризнДеб] $СчКре [$ПризнКре] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
         |True:
          :Сум^$Валюта :СумРуб $СчДеб [$ПризнДеб] $СчКре [$ПризнКре] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
       fi;
    fi;
   РЕПО; --Извещ_Исх="Исходящие извещения"
   ОПЕР Извещения_Исх_Подтв="Исходящие извещения (подтверждение)"
       (НомерБум     :S;
        ДатаИзв      :D;
        ОтправПризнак:S;
        ПолучПризнак :S;
        Подр         :S;
        НомОрд       :S;
        Содерж       :S;
        СчДеб        :S;
        СчКре        :S;
        Призн        :S;
        ПризнДеб     :S;
        ПризнКре     :S;
        Сум          :N;
        СумРуб       :N;
        ПолучСум     :N;
        ПолучСумРуб  :N;
        Flag         :L;
        is69н        :L
       )
       var tmp:S;
       var СчД5:S;
       var СчК5:S;
       var ПризнД1:S;
       var ПризнД2:S;
       var ПризнД3:S;
       var ПризнД4:S;
       var ПризнД5:S;
       var ПризнК1:S;
       var ПризнК2:S;
       var ПризнК3:S;
       var ПризнК4:S;
       var ПризнК5:S;
       var Transit:L;
       var L:I;
       var p:i;
       var Подр_:S;
       Подр_="";
    if is69н:
       ПризнД1="";
       ПризнД2="";
       ПризнД3="";
       ПризнД4="";
       ПризнД5="";
       ПризнК1="";
       ПризнК2="";
       ПризнК3="";
       ПризнК4="";
       ПризнК5="";
       if not ПризнДеб="":
          p=Pos(" ",ПризнДеб);
          if p=0 : ПризнД1=ПризнДеб;
            |true: ПризнД1=SubStr(ПризнДеб,1,p-1);
                   tmp=SubStr(ПризнДеб,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнД2=tmp;
                        |true: ПризнД2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнД3=tmp;
                                    |true: ПризнД3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнД4=tmp;
                                                |true: ПризнД4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнД5=tmp;
                                                            |true: ПризнД5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if not ПризнКре="":
          p=Pos(" ",ПризнКре);
          if p=0 : ПризнК1=ПризнКре;
            |true: ПризнК1=SubStr(ПризнКре,1,p-1);
                   tmp=SubStr(ПризнКре,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнК2=tmp;
                        |true: ПризнК2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнК3=tmp;
                                    |true: ПризнК3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнК4=tmp;
                                                |true: ПризнК4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнК5=tmp;
                                                            |true: ПризнК5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       Transit=СчДеб=СчКре;
       if not Transit:
          L=Length(СчДеб);
          СчД5=SubStr(СчДеб,L-9,6);
          L=Length(СчКре);
          СчК5=SubStr(СчКре,L-9,6);
          Transit=СчД5=СчК5;
       fi;
       if Transit:
          if Валюта=BaseCurrency:
             :ПолучСум-Сум^$Валюта $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5 $ПолучПризнак] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5 $ОтправПризнак] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
            |true:
             :ПолучСум-Сум^$Валюта :ПолучСумРуб-СумРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5 $ПолучПризнак] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5 $ОтправПризнак] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
          fi;
         |True:
          if Валюта=BaseCurrency:
             :ПолучСум-Сум^$Валюта $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             if Match(Призн,"*ДОГОВОР.*"):
--                :ПолучСум^$Валюта ЗАБАЛАНС [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] ЗАБ.05 [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             fi;
            |true:
             :ПолучСум-Сум^$Валюта :ПолучСумРуб-СумРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             if Match(Призн,"*ДОГОВОР.*"):
--                :ПолучСум^$Валюта :ПолучСумРуб ЗАБАЛАНС [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] ЗАБ.05 [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Подр_ $ПолучПризнак $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
--             fi;
          fi;
       fi;
      |Flag:
       if Валюта=BaseCurrency:
          :ПолучСум-Сум^$Валюта $СчДеб $СчКре {$Подр_ $Призн $НомОрд $ПризнДеб $ПризнКре} -- Извещение N $НомерБум от $ДатаИзв $Содерж
         |true:
          :ПолучСум-Сум^$Валюта :ПолучСумРуб-СумРуб $СчДеб $СчКре {$Подр_ $Призн $НомОрд $ПризнДеб $ПризнКре} -- Извещение N $НомерБум от $ДатаИзв $Содерж
       fi;
      |True:
       if Валюта=BaseCurrency:
          :ПолучСум-Сум^$Валюта $СчДеб [$ПризнДеб] $СчКре [$ПризнКре] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
         |true:
          :ПолучСум-Сум^$Валюта :ПолучСумРуб-СумРуб $СчДеб [$ПризнДеб] $СчКре [$ПризнКре] {$Подр_ $Призн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
       fi;
    fi;
   РЕПО; --Извещ_Исх="Исходящие извещения"
   ОПЕР Извещения_Вх="Входящие извещения"
       (НомерБум      :S;
        ДатаИзв       :D;
        ОтправПризнак :S;
        ПолучПризнак  :S;
        НомОрд        :S;
        Содерж        :S;
        ПолучСчДеб    :S;
        ПолучСчКре    :S;
        ПолучПризн    :S;
        ПолучПризнДеб :S;
        ПолучПризнКре :S;
        ПолучСум      :N;
        ПолучСумРуб   :N;
        Flag          :L;
        is69н         :L
       )
       var tmp:S;
       var СчД5:S;
       var СчК5:S;
       var ПризнД1:S;
       var ПризнД2:S;
       var ПризнД3:S;
       var ПризнД4:S;
       var ПризнД5:S;
       var ПризнК1:S;
       var ПризнК2:S;
       var ПризнК3:S;
       var ПризнК4:S;
       var ПризнК5:S;
       var Transit:L;
       var L:I;
       var p:i;
    if is69н:
       ПризнД1="";
       ПризнД2="";
       ПризнД3="";
       ПризнД4="";
       ПризнД5="";
       ПризнК1="";
       ПризнК2="";
       ПризнК3="";
       ПризнК4="";
       ПризнК5="";
       if not ПолучПризнДеб="":
          p=Pos(" ",ПолучПризнДеб);
          if p=0 : ПризнД1=ПолучПризнДеб;
            |true: ПризнД1=SubStr(ПолучПризнДеб,1,p-1);
                   tmp=SubStr(ПолучПризнДеб,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнД2=tmp;
                        |true: ПризнД2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнД3=tmp;
                                    |true: ПризнД3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнД4=tmp;
                                                |true: ПризнД4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнД5=tmp;
                                                            |true: ПризнД5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if not ПолучПризнКре="":
          p=Pos(" ",ПолучПризнКре);
          if p=0 : ПризнК1=ПолучПризнКре;
            |true: ПризнК1=SubStr(ПолучПризнКре,1,p-1);
                   tmp=SubStr(ПолучПризнКре,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнК2=tmp;
                        |true: ПризнК2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнК3=tmp;
                                    |true: ПризнК3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнК4=tmp;
                                                |true: ПризнК4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнК5=tmp;
                                                            |true: ПризнК5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       Transit=ПолучСчДеб=ПолучСчКре;
       if not Transit:
          L=Length(ПолучСчДеб);
          СчД5=SubStr(ПолучСчДеб,L-9,6);
          L=Length(ПолучСчКре);
          СчК5=SubStr(ПолучСчКре,L-9,6);
          Transit=СчД5=СчК5;
       fi;
       if Transit:
          if Валюта=BaseCurrency:
             :ПолучСум^$Валюта $ПолучСчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5 $ПолучПризнак] $ПолучСчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5 $ОтправПризнак] {$ПолучПризн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
            |true:
             :ПолучСум^$Валюта :ПолучСумРуб $ПолучСчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5 $ПолучПризнак] $ПолучСчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5 $ОтправПризнак] {$ПолучПризн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
          fi;
         |True:
          if Валюта=BaseCurrency:
             :ПолучСум^$Валюта $ПолучСчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $ПолучСчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$ОтправПризнак $ПолучПризн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
            |true:
             :ПолучСум^$Валюта :ПолучСумРуб $ПолучСчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $ПолучСчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$ОтправПризнак $ПолучПризн $НомОрд} -- Извещение N $НомерБум от $ДатаИзв $Содерж
          fi;
       fi;
     |Flag:
      if Валюта=BaseCurrency:
         :ПолучСум^$Валюта $ПолучСчДеб $ПолучСчКре {$ПолучПризн $ПолучПризнДеб $ПолучПризнКре} -- Извещение N $НомерБум от $ДатаИзв $Содерж
        |true:
         :ПолучСум^$Валюта :ПолучСумРуб $ПолучСчДеб $ПолучСчКре {$ПолучПризн $ПолучПризнДеб $ПолучПризнКре} -- Извещение N $НомерБум от $ДатаИзв $Содерж
      fi;
     |True:
      if Валюта=BaseCurrency:
         :ПолучСум^$Валюта $ПолучСчДеб [$ПолучПризнДеб] $ПолучСчКре [$ПолучПризнКре] {$ПолучПризн} -- Извещение N $НомерБум от $ДатаИзв $Содерж
        |true:
         :ПолучСум^$Валюта :ПолучСумРуб $ПолучСчДеб [$ПолучПризнДеб] $ПолучСчКре [$ПолучПризнКре] {$ПолучПризн} -- Извещение N $НомерБум от $ДатаИзв $Содерж
      fi;
    fi;
   РЕПО; --Извещ_Вх="Входящие извещения"
  Аппург; --ЦентрСнаб="Централизованное снабжение";
  Группа Прочие="Прочие операции";
   ОПЕР ЗАГЛУШКА="Абстрактная операция"
   РЕПО; --ЗАГЛУШКА="Абстрактная операция"
   ОПЕР БухСправка="Бухгалтерская справка"
       (ПризнПодр:S;
        Содерж   :S;
        СчДеб    :Счета;
        СчКре    :Счета;
        Призн    :S;
        ПризнДеб :S;
        ПризнКре :S;
        ПризнКол :S;
        СуммаРуб :N;
        Кол      :N;
        Кмнт     :S;
        ver      :I
       )
       var ПризнД1:S;
       var ПризнД2:S;
       var ПризнД3:S;
       var ПризнД4:S;
       var ПризнД5:S;
       var ПризнК1:S;
       var ПризнК2:S;
       var ПризнК3:S;
       var ПризнК4:S;
       var ПризнК5:S;
       var p:i;
       var tmp:S;
       var Кмнт_:S;
       var ПризнПодр_:S;
       Кмнт_=if(Содерж="",Кмнт,Содерж);
       ПризнПодр_=if(ver>0,ПризнПодр,"");
       ПризнД1="";
       ПризнД2="";
       ПризнД3="";
       ПризнД4="";
       ПризнД5="";
       ПризнК1="";
       ПризнК2="";
       ПризнК3="";
       ПризнК4="";
       ПризнК5="";
       if not ПризнДеб="":
          p=Pos(" ",ПризнДеб);
          if p=0 : ПризнД1=ПризнДеб;
            |true: ПризнД1=SubStr(ПризнДеб,1,p-1);
                   tmp=SubStr(ПризнДеб,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнД2=tmp;
                        |true: ПризнД2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнД3=tmp;
                                    |true: ПризнД3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнД4=tmp;
                                                |true: ПризнД4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнД5=tmp;
                                                            |true: ПризнД5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if not ПризнКре="":
          p=Pos(" ",ПризнКре);
          if p=0 : ПризнК1=ПризнКре;
            |true: ПризнК1=SubStr(ПризнКре,1,p-1);
                   tmp=SubStr(ПризнКре,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнК2=tmp;
                        |true: ПризнК2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнК3=tmp;
                                    |true: ПризнК3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнК4=tmp;
                                                |true: ПризнК4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнК5=tmp;
                                                            |true: ПризнК5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if Валюта="" or Валюта=BaseCurrency:
          if Кол=0:
             :Сумма $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ПризнКол $ПризнПодр_} -- $Кмнт_
            |True:
             :Сумма $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ПризнКол:Кол $ПризнПодр_} -- $Кмнт_
          fi;
         |true:
          if СуммаРуб<>0: --TODO: полноценный переключатель для реализации проводк а-ля "курсовая разница"(рублевый эквивален при 0 валюты)
            if Кол=0:
               :Сумма^$Валюта :СуммаРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ПризнКол $ПризнПодр_} -- $Кмнт_
              |True:
               :Сумма^$Валюта :СуммаРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ПризнКол:Кол $ПризнПодр_} -- $Кмнт_
            fi;
          |True:
             if Кол=0:
                :Сумма^$Валюта  $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ПризнКол $ПризнПодр_} -- $Кмнт_
               |True:
                :Сумма^$Валюта  $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ПризнКол:Кол $ПризнПодр_} -- $Кмнт_
             fi;
          fi;
       fi;
   РЕПО; --БухСправка="Бухгалтерская справка"
   ОПЕР ЗаявлАванс="Заявление на выдачу аванс"
        (НомерДок    :S;
         ПризнПодр   :S;
         ПризнМОЛ    :S;
         НазначАванс :S;
         Признак     :S;
         Призн       :S;
         ОКДП_Призн  :S;
         Назнач      :S;
         СумРуб      :N;
         СумВал      :N;
         СчДеб       :S;
         СчДеб_БО    :S;
         СчКре_БО    :S;
         СчДеб_ДО    :S;
         СчКре_ДО    :S;
         ПризнБО     :S;
         ПризнДО     :S;
         УчетБО      :L;
         УчетДО      :L;
         Признак_Кмнт:S
        )
        var ПризнБО_:S;
        var ПризнДО_:S;
        var Признак_:S;
        if ПризнБО="": ПризнБО_="БО.000"; fi;
        if ПризнДО="": ПризнДО_="ДО.000"; fi;
        Признак_="АВ."+Признак;
        if УчетБО:
           if Валюта=BaseCurrency:
              :СумРуб $СчДеб_БО $СчКре_БО {$ПризнПодр $ПризнМол $Призн $ОКДП_Призн $ПризнБО_ $Признак_} -- $Признак_Кмнт
             |True:
              :СумВал^$Валюта :СумРуб $СчДеб_БО $СчКре_БО {$ПризнПодр $ПризнМол $Призн $ОКДП_Призн $ПризнДО_ $Признак_} -- $Признак_Кмнт
           fi;
        fi;
        if УчетДО:
           if Валюта=BaseCurrency:
              :СумРуб $СчДеб_ДО $СчКре_ДО {$ПризнПодр $ПризнМол $Призн $ОКДП_Призн $ПризнБО_ $ПризнДО_ $Признак_} -- $Признак_Кмнт
             |True:
              :СумВал^$Валюта :СумРуб $СчДеб_ДО $СчКре_ДО {$ПризнПодр $ПризнМол $Призн $ОКДП_Призн $ПризнБО_ $ПризнДО_ $Признак_} -- $Признак_Кмнт
           fi;
        fi;
   РЕПО; --ЗаявлАванс="Заявление на выдуачу аванс"
   ОПЕР АвансОтчет="Авансовый отчет"
        (ДатаОпер       :D;
         НомерБум       :S;
         ДатаДок        :D;
         Содерж         :S;
         ПризнАванс     :S;
         ПризнПодр      :S;
         ПризнМОЛ       :S;
         ОКДП_Призн     :S;
         Ав_Руб         :N;
         Ав_Вал         :N;
         Учт_Руб        :N;
         Учт_Вал        :N;
         СчДеб          :S;
         СчКре          :S;
         Призн          :S;
         ПризнБО        :S;
         ПризнДО        :S;
         НеПровДО       :L;
         Кол            :N;
         ДенДок         :L;
         ДенДокВид_Призн:S;
         RECCRD         :I;
         ДНФАID         :I;
         УчетБО         :L;
         ver            :I;
         Кре            :S;
         СрокПр         :S
        )
       var БК_        :S;
       var ВД_        :S;
       var АН_        :S;
       var КОСГУ_     :S;
       var СчДеб_БО_  :S;
       var СчКре_БО_  :S;
       var СчДеб_ДО_  :S;
       var СчКре_ДО_  :S;
       var ПризнБО_   :S;
       var ПризнДО_   :S;
       var ДенДокПризн:S;
       var СчДеб_     :S;
       var СчКре_     :S;
       var x          :I;
       var xx         :I;
       var СумРуб_    :N;
       var СумВал_    :N;
       var Кол_       :N;
       var Призн_     :S;
       СчДеб_БО_="";
       СчКре_БО_="";
       СчДеб_ДО_="";
       СчКре_ДО_="";
       ПризнБО_="";
       if Match(СчДеб,"*.?.105.??.???"): ДенДокПризн="НФА.105.06."+ДенДокВид_Призн;
         |True                         : ДенДокПризн=ДенДокВид_Призн;
       fi;
       if (УчетБО or not НеПровДО) and ДатаОпер>=НачТекГод and ver<3:
          БК_=SubStr(СчКре,1,19);
          ВД_=SubStr(СчКре,21,1);
          КОСГУ_=SubStr(СчКре,27,2);
          КОСГУ_=Ан2КОСГУ(КОСГУ_);
          if УчетБО:
             if ВД_="1"    : СчДеб_БО_=БК_+".1.501.13."+КОСГУ_;       СчКре_БО_=БК_+".1.502.11."+КОСГУ_;
               |not ВД_="3": СчДеб_БО_=БК_+"."+ВД_+".506.10."+КОСГУ_; СчКре_БО_=БК_+"."+ВД_+".502.11."+КОСГУ_;
               |true       : СчДеб_БО_="";                            СчКре_БО_="";
             fi;
          fi;
          if not НеПровДО:
             if ВД_="1"    : СчДеб_ДО_=БК_+".1.502.11."+КОСГУ_;       СчКре_ДО_=БК_+".1.502.12."+КОСГУ_;
               |not ВД_="3": СчДеб_ДО_=БК_+"."+ВД_+".502.11."+КОСГУ_; СчКре_ДО_=БК_+"."+ВД_+".502.12."+КОСГУ_;
               |true       : СчДеб_БО_="";                            СчКре_БО_="";
             fi;
          fi;
          if ПризнБО="":
             ПризнБО_="БО.000";
             if Pos("БО.",Призн)=1 or not Pos(" БО.",Призн)=0: ПризнБО_=""; fi;
            |True:
             ПризнБО_=ПризнБО;
          fi;
          if ПризнДО="":
             ПризнДО_="ДО.000";
             if Pos("ДО.",Призн)=1 or not Pos(" ДО.",Призн)=0: ПризнДО_=""; fi;
            |True:
             ПризнДО_=ПризнДО;
          fi;
       fi; --if (УчетБО or not НеПровДО) and ДатаОпер>=НачТекГод:
       if RECCRD <= 0 and ДНФАID <= 0 : --Делаем балансовые проводки только если документ не импортирован
          if Валюта=BaseCurrency:
             if not СчДеб="" and  not СчКре="":
                if not Match(СчДеб,"*.?.201.35.*"):
                   xx=if(ver>3 and Round(Ав_Руб-Учт_Руб,2)<0,2,1);
                   for x=1..xx do
                    if x=1 and xx=2: СумРуб_=Ав_Руб;         Кол_=Кол; Призн_=Призн;
                      |x=2         : СумРуб_=Учт_Руб-Ав_Руб; Кол_=0;   Призн_=УдалитьПризнакПоМаскеИзНабора_Опер("ДИ.*",Призн); Призн_=Призн_+" "+СрокПр;
                      |True        : СумРуб_=Учт_Руб;        Кол_=Кол; Призн_=Призн;
                    fi;
                    if not ДенДок or ДенДокПризн="":
                       :СумРуб_ $СчДеб $СчКре {$ПризнАванс $ПризнПодр $ПризнМол $Призн_ $ОКДП_Призн} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
                      |True:
                       :СумРуб_ $СчДеб $СчКре {$ПризнАванс $ПризнПодр $ПризнМол $Призн_ $ОКДП_Призн $ДенДокПризн:Кол_} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
                    fi;
                   od;
                fi;
                if Кре="206":
                   СчДеб_=ВзятьКодСчета(СчКре,"БК+СЧ8")+".837";
                   АН_=ВзятьКодСчета(СчКре,"АН");
                   СчКре_=ЗаменаСч5(СчКре,"206."+АН_,ДатаОпер);
                   СчКре_=ВзятьКодСчета(СчКре_,"БК+СЧ8")+".667";
                   :Учт_Руб $СчДеб_ $СчКре_ {$ПризнАванс $ПризнПодр $ПризнМол $Призн $ОКДП_Призн} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
                fi; --if Кре="206":
             fi; --if not СчДеб="" and  not СчКре="":
             if УчетБО and not СчДеб_БО_="" and not СчКре_БО_="":
                :Учт_Руб $СчДеб_БО_ $СчКре_БО_ {$ПризнАванс $ПризнПодр $ПризнМол $Призн $ПризнБО_} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
             fi;
             if not НеПровДО and not СчДеб_ДО_="" and not СчКре_ДО_="":
                :Учт_Руб $СчДеб_ДО_ $СчКре_ДО_ {$ПризнАванс $ПризнПодр $ПризнМол $Призн $ОКДП_Призн $ПризнБО_ $ПризнДО_} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
             fi;
            |True:
             if not СчДеб="" and  not СчКре="":
                if not Match(СчДеб,"*.?.201.35.*"):
                   xx=if(ver>3 and (Round(Ав_Вал-Учт_Вал,2)<0 or Round(Ав_Руб-Учт_Руб,2)<0),2,1);
                   for x=1..xx do
                    if x=1 and xx=2: СумВал_=Ав_Вал;         СумРуб_=Ав_Руб;         Кол_=Кол; Призн_=Призн;
                      |x=2         : СумВал_=Учт_Вал-Ав_Вал; СумРуб_=Учт_Руб-Ав_Руб; Кол_=0;   Призн_=УдалитьПризнакПоМаскеИзНабора_Опер("ДИ.*",Призн); Призн_=Призн_+" "+СрокПр;
                      |True        : СумВал_=Учт_Вал;        СумРуб_=Учт_Руб;        Кол_=Кол; Призн_=Призн;
                    fi;
                    if not ДенДок or ДенДокПризн="":
                       :СумВал_^$Валюта :СумРуб_ $СчДеб $СчКре {$ПризнАванс $ПризнПодр $ПризнМол $Призн_ $ОКДП_Призн} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
                      |True:
                       :СумВал_^$Валюта :СумРуб_ $СчДеб $СчКре {$ПризнАванс $ПризнПодр $ПризнМол $Призн_ $ОКДП_Призн $ДенДокПризн:Кол_} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
                    fi;
                   od;
                fi;
                if Кре="206":
                   СчДеб_=ВзятьКодСчета(СчКре,"БК+СЧ8")+".837";
                   АН_=ВзятьКодСчета(СчКре,"АН");
                   СчКре_=ЗаменаСч5(СчКре,"206."+АН_,ДатаОпер);
                   СчКре_=ВзятьКодСчета(СчКре_,"БК+СЧ8")+".667";
                   :Учт_Вал^$Валюта :Учт_Руб $СчДеб_ $СчКре_ {$ПризнАванс $ПризнПодр $ПризнМол $Призн $ОКДП_Призн} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
                fi; --if Кре="206":
             fi;  -- if not СчДеб="" and  not СчКре="":
             if УчетБО and not СчДеб_БО_="" and not СчКре_БО_="":
                :Учт_Вал^$Валюта :Учт_Руб $СчДеб_БО_ $СчКре_БО_ {$ПризнАванс $ПризнПодр $ПризнМол $Призн $ПризнБО_} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
             fi;
             if not НеПровДО and not СчДеб_ДО_="" and not СчКре_ДО_="":
                :Учт_Вал^$Валюта :Учт_Руб $СчДеб_ДО_ $СчКре_ДО_ {$ПризнАванс $ПризнПодр $ПризнМол $Призн $ОКДП_Призн $ПризнБО_ $ПризнДО_} --Авансовый отчет N$НомерБум от $ДатаДок $Содерж
             fi;
          fi;
       fi;
   РЕПО; --АвансОтчет="Авансовый отчет"
   ОПЕР АвансОтчет_БО_ДО="Авансовый отчет (БО, ДО)"
        (ДатаОпер       :D;
         НомерБум       :S;
         ДатаДок        :D;
         ПризнАванс     :S;
         ПризнМОЛ       :S;
         ПризнБО        :S;
         ПризнДО        :S;
         НеПровДО       :L;
         УчетБО         :L;
         ВД             :S;
         КБК            :S;
         Призн          :S;
         СумАв_Руб      :N;
         СумАв_Вал      :N;
         Расх_Учт_Руб   :N;
         Расх_Учт_Вал   :N;
         СумБО_Руб      :N;
         СумБО_Вал      :N;
         СумДО_Руб      :N;
         СумДО_Вал      :N;
         ver            :I;
         Кре            :S
        )
       var БК_      :S;
       var КОСГУ_   :S;
       var АН_      :S;
       var СчДеб_   :S;
       var СчКре_   :S;
       var СчДеб_БО_:S;
       var СчКре_БО_:S;
       var СчДеб_ДО_:S;
       var СчКре_ДО_:S;
       var ПризнБО_ :S;
       var ПризнДО_ :S;
       var СумРуб_  :N;
       var СумВал_  :N;
       СчДеб_БО_="";
       СчКре_БО_="";
       СчДеб_ДО_="";
       СчКре_ДО_="";
       ПризнБО_="";
       if Кре="206П":
          if ДатаОпер<1.1.2016:
             БК_=SubStr(КБК,1,20);
             КОСГУ_=SubStr(КБК,22,3);
            |True:
             БК_=SubStr(КБК,1,19);
             КОСГУ_=SubStr(КБК,21,3);
          fi;
          АН_=КОСГУ2АН(КОСГУ_);
          СчДеб_=БК_+"."+ВД+".302."+АН_+".837";
          СчКре_=БК_+"."+ВД+".206."+АН_+".667";
          if Round(СумАв_Руб,2)>0 and Round(Расх_Учт_Руб,2)>0:
             if Round(СумАв_Руб,2)<Round(Расх_Учт_Руб,2):
                СумРуб_=СумАв_Руб;
               |True:
                СумРуб_=Расх_Учт_Руб;
             fi;
            |True:
             СумРуб_=0;
          fi;
          if Валюта=BaseCurrency:
             :СумРуб_ $СчДеб_ $СчКре_ {$ПризнАванс $ПризнМол $Призн} --Авансовый отчет N$НомерБум от $ДатаДок
            |True:
             if Round(СумАв_Вал,2)>0 and Round(Расх_Учт_Вал,2)>0:
                if Round(СумАв_Вал,2)<Round(Расх_Учт_Вал,2):
                   СумВал_=СумАв_Вал;
                  |True:
                   СумВал_=Расх_Учт_Вал;
                fi;
               |True:
                СумВал_=0;
             fi;
             :СумВал_^$Валюта :СумРуб_ $СчДеб_ $СчКре_ {$ПризнАванс $ПризнМол $Призн} --Авансовый отчет N$НомерБум от $ДатаДок
          fi;
       fi; --if Кре="206":
       if (УчетБО or not НеПровДО) and ДатаОпер>=НачТекГод and ver>=3 and not ВД="3":
          if ДатаОпер<1.1.2016:
             БК_=SubStr(КБК,1,20);
             КОСГУ_=SubStr(КБК,22,3);
            |True:
             БК_=SubStr(КБК,1,19);
             КОСГУ_=SubStr(КБК,21,3);
          fi;
          if УчетБО:
             if ВД="1"    : СчДеб_БО_=БК_+".1.501.13."+КОСГУ_;      СчКре_БО_=БК_+".1.502.11."+КОСГУ_;
               |not ВД="3": СчДеб_БО_=БК_+"."+ВД+".506.10."+КОСГУ_; СчКре_БО_=БК_+"."+ВД+".502.11."+КОСГУ_;
               |true      : СчДеб_БО_="";                           СчКре_БО_="";
             fi;
          fi;
          if not НеПровДО:
             if ВД="1"    : СчДеб_ДО_=БК_+".1.502.11."+КОСГУ_;      СчКре_ДО_=БК_+".1.502.12."+КОСГУ_;
               |not ВД="3": СчДеб_ДО_=БК_+"."+ВД+".502.11."+КОСГУ_; СчКре_ДО_=БК_+"."+ВД+".502.12."+КОСГУ_;
               |true      : СчДеб_БО_="";                           СчКре_БО_="";
             fi;
          fi;
          if ПризнБО="":
             ПризнБО_="БО.000";
             if Pos("БО.",Призн)=1 or not Pos(" БО.",Призн)=0: ПризнБО_=""; fi;
            |True:
             ПризнБО_=ПризнБО;
          fi;
          if ПризнДО="":
             ПризнДО_="ДО.000";
             if Pos("ДО.",Призн)=1 or not Pos(" ДО.",Призн)=0: ПризнДО_=""; fi;
            |True:
             ПризнДО_=ПризнДО;
          fi;
          if Валюта=BaseCurrency:
             if УчетБО and not СчДеб_БО_="" and not СчКре_БО_="":
                :Расх_Учт_Руб-СумБО_Руб $СчДеб_БО_ $СчКре_БО_ {$ПризнАванс $ПризнМол $Призн $ПризнБО_} --Авансовый отчет N$НомерБум от $ДатаДок
             fi;
             if not НеПровДО and not СчДеб_ДО_="" and not СчКре_ДО_="":
                :Расх_Учт_Руб-СумДО_Руб $СчДеб_ДО_ $СчКре_ДО_ {$ПризнАванс $ПризнМол $Призн $ПризнБО_ $ПризнДО_} --Авансовый отчет N$НомерБум от $ДатаДок
             fi;
            |True:
             if УчетБО  and not СчДеб_БО_="" and not СчКре_БО_="":
                :Расх_Учт_Вал-СумБО_Вал^$Валюта :Расх_Учт_Руб-СумБО_Руб $СчДеб_БО_ $СчКре_БО_ {$ПризнАванс $ПризнМол $Призн $ПризнБО_} --Авансовый отчет N$НомерБум от $ДатаДок
             fi;
             if not НеПровДО and not СчДеб_ДО_="" and not СчКре_ДО_="":
                :Расх_Учт_Вал-СумДО_Вал^$Валюта :Расх_Учт_Руб-СумДО_Руб $СчДеб_ДО_ $СчКре_ДО_ {$ПризнАванс $ПризнМол $Призн $ПризнБО_ $ПризнДО_} --Авансовый отчет N$НомерБум от $ДатаДок
             fi;
          fi;
       fi;  --if (УчетБО or not НеПровДО) and ДатаОпер>=НачТекГод and ver>=3:
   РЕПО; --АвансОтчет="Авансовый отчет"
   ОПЕР ЗАКЛПР="Заключительные проводки"
       (Кмнт    :S;
        Период  :S;
        ПризнОбщ:S;
        Вал_База:S;
        Сум     :N;
        Сум_Вал :N;
        Вал     :S; 
        СчДеб   :Счета;
        СчКре   :Счета;
        Призн   :S
       )
      var Вал_:Currency;
      if Вал="":
         Вал_=Вал_База;
         :Сум $СчДеб $СчКре {$Период $ПризнОбщ $Призн ЗГ} -- $Кмнт
      fi;
      if not Вал="":
         Вал_=Вал;
         if not Сум=0:
           :Сум :Сум_Вал^$Вал_  $СчДеб $СчКре {$Период $ПризнОбщ $Призн ЗГ} -- $Кмнт
         fi;
         if Сум=0:
           :Сум_Вал^$Вал_  $СчДеб $СчКре {$Период $ПризнОбщ $Призн ЗГ} -- $Кмнт
         fi;
      fi;
    РЕПО; --ЗКП="Заключительные проводки"
    ОПЕР Расходы106="Списание расходов"
       (Код_Сч_Осн:S; СчетОсн:S;
        Код_Сч_Расх:S;
        КД:S;
        КОСГУ:         S;
        ФКР:         S;
        Кмнт:S;
        Признак:S; Счет:S
       )
      var Сч_Деб_Р:S;
      var Сч_Кре_Р:S;
      if СчетОсн='':Сч_Деб_Р=КД+'.'+Код_Сч_Осн+'.'+КОСГУ;
        |True: Сч_Деб_Р=СчетОсн;
      fi;
      if Счет='':Сч_Кре_Р=ФКР+'.'+Код_Сч_Расх;
        |True:   Сч_Кре_Р=Счет;
      fi;

      if not СУММА=0:
         :СУММА $Сч_Деб_Р  $Сч_Кре_Р {$ПРИЗНАК} --$Кмнт
      fi;

   РЕПО; --ОПЕР Расходы106="Списание расходов"
   ОПЕР Расходы106_НП="Налог на прибыль"
       (Код_Сч_Осн:S; СчетОсн:S;
        Код_Сч_Нал:S;
        КД:S;
        КОСГУ:         S;
        Кмнт:S;
        Налог:N; СчетНал:S;
        Аналит:S
       )
      var Сч_Деб_Р:S;
      var Сч_Кре_Р:S;
      if СчетОсн='':Сч_Деб_Р=КД+'.'+Код_Сч_Осн+'.'+КОСГУ;
        |True: Сч_Деб_Р=СчетОсн;
      fi;
      if СчетНал='':Сч_Кре_Р=КД+'.'+Код_Сч_Нал;
        |True: Сч_Кре_Р=СчетНал;
      fi;

     if not Налог=0:
        :Налог $Сч_Деб_Р  $Сч_Кре_Р {$АНАЛИТ} --$Кмнт
     fi;
   РЕПО; --   ОПЕР Расходы106_НП="Налог на прибыль"
   ОПЕР ДО="Денежное обязательство"
       (ДатаРег        :D;
        Вид            :S;
        Период         :S;
        НомерДок       :S;
        ДатаДок        :D;
        НаимДок_       :S;
        Признак        :S;
        Признак_ДО     :S;
        ОКВ            :S;
        Контр_Призн    :S;
        ГП_Призн       :S;
        Общ_Призн1     :S;
        Общ_Призн2     :S;
        Пре_Контр_Призн:S;
        Пре_ГП_Призн   :S;
        Пре_Общ_Призн1 :S;
        Пре_Общ_Призн2 :S;
        БО_Призн       :S;
        ДО_Призн       :S;
        Содерж         :S;
        Коммент        :S;
        Вал            :Валюта;
        КБК            :S;
        ВД             :S;
        Призн          :S;
        ПризнДоп       :S;
        ОКДП_Призн     :S;
        Сум            :N;
        СумРуб         :N;
        СумСНДС        :N;
        СумРубСНДС     :N;
        ВыделятьНДС    :L;
        ВидОпер        :S;
        СчДеб          :S;
        СчКре          :S;
        СчКорр_Аннул   :S;
        ЗА_СчДеб       :S;
        ЗА_СчКре       :S;
        ТекГодПоз      :S;
        ЦЗ             :L;
        НеПров         :L;
        НеПровДО       :L;
        Расш_Кол       :L;
        ПризнКол       :S;
        Кол            :N;
        УчКол          :N;
        ТипИзм         :I;
        Пре_Сум        :N;
        Пре_СумРуб     :N;
        Пре_СумСНДС    :N;
        Пре_СумРубСНДС :N;
        Пре_Кол        :N;
        Пре_УчКол      :N;
        УчетДО_ФК      :L;
        РегФК          :L;
        КОО            :I;
        Аванс          :L;
        СИ             :D;
        ver            :I
       )
      var Признак_   :S;
      var Признак_ДО_:S;
      var БО_Призн_  :S;
      var ГП_Призн_  :S;
      var ПериодОпл_ :S;
      var Сум_       :N;
      var СумЗач_    :N;
      var СумРуб_    :N;
      var СчДО_Д     :S;
      var СчДО_К     :S;
      var Сч         :S;
      var БК_        :S;
      var КОСГУ_     :S;
      var Пер_       :S;
      var Кол_       :N;
      var ВидОпер_   :S;
      var Опл_       :S;
      var l          :I;
      var p          :I;
      var Опер_      :S;
      var x          :I;
      var xx         :I;
      var СчДеб_     :S;
      var СчКре_     :S;
      var Призн_     :S;
      var val        :S;
      var dd         :i;
      var mm         :i;
      var yyyy       :i;
      if not НеПров:
         Признак_="ДОГОВОР."+Признак;
         if Признак_ДО="" or (КОО=-1 and ДО_Призн=""):
            Признак_ДО_="ДО.000";
           |True:
            if КОО=-1:
               Признак_ДО_=ДО_Призн;
              |True:
               Признак_ДО_="ДО."+Признак_ДО;
            fi;
            if Match(Признак_ДО_,"*."):
               Признак_ДО_="ДО.000";
            fi;
         fi;
         if БО_Призн="":
            БО_Призн_="БО.000";
           |True:
            БО_Призн_=БО_Призн;
         fi;
         if ЦЗ:
            ГП_Призн_=ГП_Призн;
           |True:
            ГП_Призн_="";
         fi;
         --Бухгалтерская запись по балансовым счетам
         p=Pos("#",ВидОпер);
         ВидОпер_=if(p=0,ВидОпер,SubStr(ВидОпер,p+1,255));
         if not ВидОпер_="206" and not ВидОпер_="502.x2" and not ВидОпер_="502.99":
	        xx=if(ВидОпер_="401.60" and (ДатаРег<1.1.2024 or (ДатаРег>=1.1.2024 and (ТипИзм=-1 or Вид="ДО/ОО"))),2,1);
            for x=1..xx do
             if ВыделятьНДС:
                if ТипИзм=0 or (ТипИзм=-1 and x=1):-- or ТипИзм=4:
                   Сум_   =Сум;
                   СумРуб_=СумРуб;
                   СумЗач_=СумСНДС;
                  |True:
                   Сум_   =Сум-Пре_Сум;
                   СумРуб_=СумРуб-Пре_СумРуб;
                   СумЗач_=СумСНДС-Пре_СумСНДС;
                fi;
               |True:
                if ТипИзм=0 or (ТипИзм=-1 and x=1):-- or ТипИзм=4:
                   Сум_   =СумСНДС;
                   СумРуб_=СумРубСНДС;
                  |True:
                   Сум_   =СумСНДС-Пре_СумСНДС;
                   СумРуб_=СумРубСНДС-Пре_СумРубСНДС;
                fi;
                СумЗач_=Сум_;
             fi;
             if Расш_Кол: --  or (ТипИзм=-1 and x=1) для количества не делаем
                if ТипИзм=0:-- or ТипИзм=4:
                   Кол_=УчКол;
                  |True:
                   Кол_=УчКол-Пре_УчКол;
                fi;
               |True:
                if ТипИзм=0:-- or ТипИзм=4:
                   Кол_=Кол;
                  |True:
                   Кол_=Кол-Пре_Кол;
                fi;
             fi;
             if x=2:
                if Вид="ДО/ОО":
                   СчДеб_ =СчКорр_Аннул;
                   СчКре_ =СчДеб;
                   Сум_   =Сум_;
                   СумРуб_=СумРуб_;
                   Кол_   =Кол_;
                  |True:
                   СчДеб_ =СчДеб;
                   СчКре_ =СчКорр_Аннул;
                   Сум_   =-Сум_;
                   СумРуб_=-СумРуб_;
                   Кол_   =-Кол_;
                fi;
               |True:
                СчДеб_=СчДеб;
                СчКре_=СчКре;
             fi;
             if not СчКре_="":
                if ОКВ="643":
                   if ПризнКол<>"":
                      :Сум_ $СчДеб_ $СчКре_ {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период $ПризнКол:Кол_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                     |True:
                      :Сум_ $СчДеб_ $СчКре_ {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                   fi;
                  |True:
                   if ПризнКол<>"":
                      :Сум_^$Вал :СумРуб_ $СчДеб_ $СчКре_ {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период $ПризнКол:Кол_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                     |True:
                      :Сум_^$Вал :СумРуб_ $СчДеб_ $СчКре_ {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                   fi;
                fi;
             fi;
            od; --for x=1..xx do
            if Pos("ЗА_АВТО",ВидОпер)=1:
              :СумЗач_ $ЗА_СчДеб $ЗА_СчКре {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент зачет аванса
            fi;
         fi; --if not ВидОпер_="206" and not ВидОпер_="502.x2" and not ВидОпер_="502.99":
         --Лимиты (500)
         if Pos("ЗА#" ,ВидОпер)=1     : Опл_="ЗА";
           |Pos("ЗА_АВТО#" ,ВидОпер)=1: Опл_="ЗА";
           |Pos("КОО#",ВидОпер)=1     : Опл_="КОО";
           |true                      : Опл_="ОПЛ";
         fi;
         if not НеПровДО and not ВД="3" and ДатаРег>=НачТекГод and not ((Опл_="ОПЛ" or Опл_="КОО") and Int(ТекГодПоз)<Year(ДатаРег)) and not Pos("ЗА_АВТО",ВидОпер)=1:
            l=Length(КБК);
            БК_=SubStr(КБК,1,l-4);
            КОСГУ_=SubStr(КБК,l-2,3);
            if Вид="ОО":
               if ВД="1":
                  СчДО_Д=БК_+"."+ВД+".501.93."+КОСГУ_;
                 |True:
                  СчДО_Д=БК_+"."+ВД+".506.90."+КОСГУ_;
               fi;
               СчДО_К=БК_+"."+ВД+".502.99."+КОСГУ_;
              |True:
               Пер_=if(Int(ТекГодПоз)-Year(ДатаРег)>0,Str(Min(3,Int(ТекГодПоз)-Year(ДатаРег)+1)),"1");
               СчДО_Д=БК_+"."+ВД+".502."+Пер_+"1."+КОСГУ_;
               СчДО_К=БК_+"."+ВД+".502."+Пер_+"2."+КОСГУ_;
            fi;
            ПериодОпл_="ПЕРИОД."+ТекГодПоз;
            Опер_=""; --if(УчетДО_ФК and not РегФК,"ОПЕР",""); учитываем по нашей дате
            if ТипИзм=0 or ТипИзм=-1 or ТипИзм=4:
               Сум_   =СумСНДС;
               СумРуб_=СумРубСНДС;
              |True:
               Сум_   =СумСНДС-Пре_СумСНДС;
               СумРуб_=СумРубСНДС-Пре_СумРубСНДС;
            fi;
            if Аванс and ver>1 and not СИ=1.1.100:
               dd=Day(СИ);
               mm=Mon(СИ);
               yyyy=Year(СИ);
               val=Str(yyyy);
               val=val+"."+if(mm<10,"0","")+Str(mm);
               val=val+"."+if(dd<10,"0","")+Str(dd);
               Призн_=УдалитьПризнакПоМаскеИзНабора_Опер("ДИ.*",Призн+" "+ПризнДоп);
               Призн_=Призн_+" ДИ."+val;
              |True:
               Призн_=Призн+" "+ПризнДоп;
            fi;
            if ОКВ="643":
               :Сум_ $СчДО_Д $СчДО_К {$Признак_ $БО_Призн_ $Признак_ДО_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн_ $ОКДП_Призн $ПериодОпл_ $Опл_ $Опер_} --$НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
              |True:
               :Сум_^$Вал :СумРуб_ $СчДО_Д $СчДО_К {$Признак_ $БО_Призн_ $Признак_ДО_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн_ $ОКДП_Призн $ПериодОпл_ $Опл_ $Опер_} --$НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
            fi;
            if ТипИзм=-1:
               Сум_   =Пре_СумСНДС;
               СумРуб_=Пре_СумРубСНДС;
               if ВД="1":
                  СчДО_Д=БК_+"."+ВД+".501.93."+КОСГУ_;
                 |True:
                  СчДО_Д=БК_+"."+ВД+".506.90."+КОСГУ_;
               fi;
               СчДО_К=БК_+"."+ВД+".502.99."+КОСГУ_;
               if ОКВ="643":
                  :-Сум_ $СчДО_Д $СчДО_К {$Признак_ $БО_Призн_ $Признак_ДО_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $ПериодОпл_ $Опл_ $Опер_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                 |True:
                  :-Сум_^$Вал :-СумРуб_ $СчДО_Д $СчДО_К {$Признак_ $БО_Призн_ $Признак_ДО_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $ПериодОпл_ $Опл_ $Опер_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
               fi;
            fi; --if ТипИзм=-1:
         fi; --if not НеПровДО and not ВД="3" and ДатаРег>=НачТекГод and not (Опл_="ОПЛ" and Int(ТекГодПоз)<Year(ДатаРег)):
      fi; --if not НеПров:
   РЕПО; --ДО="Денежное обязательство"
   ОПЕР ДО_НДС="НДС денежного обязательства"
       (СчФНом       :S;
        СчФДат       :D;
        Признак      :S;
        ОКВ          :S;
        Контр_Призн  :S;
        Общ_Призн1   :S;
        Общ_Призн2   :S;
        Вал          :Валюта;
        Призн        :S;
        Сум          :N;
        СумРуб       :N;
        СумСНДС      :N;
        СумРубСНДС   :N;
        СчДеб        :S;
        СчКре        :S;
        НеПров       :L
       )
      var Признак_:S;
      if not СчДеб="" and not СчКре="" and not НеПров:
         Признак_="ДОГОВОР."+Признак;
         if ОКВ="643":
            :(СумСНДС-Сум) $СчДеб $СчКре {$Признак_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $Призн} -- Сч.ф. №$СчФНом от $СчФДат
           |True:
            :(СумСНДС-Сум)^$Вал :(СумРубСНДС-СумРуб) $СчДеб $СчКре {$Признак_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $Призн} -- Сч.ф. №$СчФНом от $СчФДат
         fi;
      fi;
   РЕПО; --ДО_НДС="Денежное обязательство НДС"
   ОПЕР ДО_ПровДоп="Дополнительные проводки денежного обязательства"
       (НомерДок         :S;
        ДатаДок          :D;
        НаимДок_         :S;
        Период           :S;
        Признак          :S;
        Признак_ДО       :S;
        ОКВ              :S;
        Контр_Призн      :S;
        Удж_Контр_Призн  :S;
        Общ_Призн1       :S;
        Общ_Призн2       :S;
        ГП_Призн         :S;
        БО_Призн         :S;
        ДО_Призн         :S;
        Вал              :Валюта;
        Призн            :S;
        ПризнД           :S;
        ПризнК           :S;
        Сум              :N;
        СумРуб           :N;
        СчДеб            :S;
        СчКре            :S;
        Предм1           :S;
        КОО              :I
       )
      var Признак_   :S;
      var Признак_ДО_:S;
      var БО_Призн_  :S;
      var Период_    :S;
      var ПериодД_   :S;
      var ПериодК_   :S;
      var ПризнД1    :S;
      var ПризнД2    :S;
      var ПризнД3    :S;
      var ПризнК1    :S;
      var ПризнК2    :S;
      var ПризнК3    :S;
      var p          :i;
      var tmp        :S;
      Признак_="ДОГОВОР."+Признак;
      if Признак_ДО="" or (КОО=-1 and ДО_Призн=""):
         Признак_ДО_="ДО.000";
        |True:
         if КОО=-1:
            Признак_ДО_=ДО_Призн;
           |True:
            Признак_ДО_="ДО."+Признак_ДО;
         fi;
         if Match(Признак_ДО_,"*."):
            Признак_ДО_="ДО.000";
         fi;
      fi;
      if БО_Призн=" ":
         БО_Призн_="БО.000";
        |True:
         БО_Призн_=БО_Призн;
      fi;
      ПризнД1=""; ПризнК1="";
      ПризнД2=""; ПризнК2="";
      ПризнД3=""; ПризнК3="";
      if not ПризнД="":
         p=Pos(" ",ПризнД);
         if p=0 : ПризнД1=ПризнД;
           |true: ПризнД1=SubStr(ПризнД,1,p-1);
                  tmp=SubStr(ПризнД,p+1,255);
                  if not tmp="":
                     p=Pos(" ",tmp);
                     if p=0 : ПризнД2=tmp;
                       |true: ПризнД2=SubStr(tmp,1,p-1);
                              tmp=SubStr(tmp,p+1,255);
                              if not tmp="":
                                 p=Pos(" ",tmp);
                                 if p=0 : ПризнД3=tmp;
                                   |true: ПризнД3=SubStr(tmp,1,p-1);
                                 fi;
                              fi;
                     fi;
                  fi;
         fi;
      fi;
      if not ПризнК="":
         p=Pos(" ",ПризнК);
         if p=0 : ПризнК1=ПризнК;
           |true: ПризнК1=SubStr(ПризнК,1,p-1);
                  tmp=SubStr(ПризнК,p+1,255);
                  if not tmp="":
                     p=Pos(" ",tmp);
                     if p=0 : ПризнК2=tmp;
                       |true: ПризнК2=SubStr(tmp,1,p-1);
                              tmp=SubStr(tmp,p+1,255);
                              if not tmp="":
                                 p=Pos(" ",tmp);
                                 if p=0 : ПризнК3=tmp;
                                   |true: ПризнК3=SubStr(tmp,1,p-1);
                                 fi;
                              fi;
                     fi;
                  fi;
         fi;
      fi;
      Период_ ="";
      ПериодД_="";
      ПериодК_="";
      if ПризнД="" and ПризнК="":
         if Pos("ПЕРИОД.",Призн)=0:
            Период_ =Период;
         fi;
        |True:
         if Pos("ПЕРИОД.",ПризнД)=0:
            ПериодД_ =Период;
         fi;
         if Pos("ПЕРИОД.",ПризнК)=0:
            ПериодК_ =Период;
         fi;
      fi;
      if Удж_Контр_Призн = '':
         if ОКВ="643":
            :Сум $СчДеб [$ПериодД_ $ПризнД1 $ПризнД2 $ПризнД3] $СчКре [$ПериодК_ $ПризнК1 $ПризнК2 $ПризнК3] {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
           |True:
            :Сум^$Вал :СумРуб $СчДеб [$ПериодД_ $ПризнД1 $ПризнД2 $ПризнД3] $СчКре [$ПериодК_ $ПризнК1 $ПризнК2 $ПризнК3] {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
         fi;
      |True:
         if ОКВ="643":
                :Сум $СчДеб [$Контр_Призн $ПериодД_ $ПризнД1 $ПризнД2 $ПризнД3 ] $СчКре [$Удж_Контр_Призн $ПериодК_ $ПризнК1 $ПризнК2 $ПризнК3] {$Признак_ $Признак_ДО_ $БО_Призн_ $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
           |True:
                :Сум^$Вал :СумРуб $СчДеб [$Контр_Призн $ПериодД_ $ПризнД1 $ПризнД2 $ПризнД3] $СчКре [$Удж_Контр_Призн $ПериодК_ $ПризнК1 $ПризнК2 $ПризнК3] {$Признак_ $Признак_ДО_ $БО_Призн_ $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
         fi;
      fi;
   РЕПО; --ДО_ПровДоп="Дополнительные проводки денежного обязательства"
   ОПЕР ДО_Аннул="Аннулированное денежное обязательство"
       (ДатаРег        :D;
        Период         :S;
        НомерДок       :S;
        ДатаДок        :D;
        НаимДок_       :S;
        Признак        :S;
        Признак_ДО     :S;
        ОКВ            :S;
        Контр_Призн    :S;
        ГП_Призн       :S;
        Общ_Призн1     :S;
        Общ_Призн2     :S;
        БО_Призн       :S;
        ДО_Призн       :S;
        Содерж         :S;
        Коммент        :S;
        Вал            :Валюта;
        КБК            :S;
        ВД             :S;
        Призн          :S;
        ПризнДоп       :S;
        ОКДП_Призн     :S;
        Сум            :N;
        СумРуб         :N;
        СумСНДС        :N;
        СумРубСНДС     :N;
        ВыделятьНДС    :L;
        ВидОпер        :S;
        СчДеб          :S;
        СчКре          :S;
        ТекГодПоз      :S;
        ЦЗ             :L;
        НеПров         :L;
        НеПровДО       :L;
        Расш_Кол       :L;
        ПризнКол       :S;
        Кол            :N;
        УчКол          :N;
        Аванс          :L;
        Аннул_Кмнт     :S;
        Аннул_Дата     :D;
        Аннул_Часть    :L;
        СчКорр_Аннул   :S;
        Сум_Аннул      :N;
        СумРуб_Аннул   :N;
        Кол_Аннул      :N;
        УчетДО_ФК      :L;
        РегФК          :L;
        КОО            :I
       )
      var Признак_   :S;
      var Признак_ДО_:S;
      var БО_Призн_  :S;
      var ГП_Призн_  :S;
      var ПериодОпл_ :S;
      var Сум_       :N;
      var СумРуб_    :N;
      var СчДеб_     :S;
      var СчКре_     :S;
      var СчДО_Д     :S;
      var СчДО_К     :S;
      var Сч         :S;
      var БК_        :S;
      var КОСГУ_     :S;
      var Пер_       :S;
      var Кол_       :N;
      var ВидОпер_   :S;
      var Опл_       :S;
      var l          :I;
      var p          :I;
      var Опер_      :S;
      if not НеПров:
         Признак_="ДОГОВОР."+Признак;
         if Признак_ДО="" or (КОО=-1 and ДО_Призн=""):
            Признак_ДО_="ДО.000";
           |True:
            if КОО=-1:
               Признак_ДО_=ДО_Призн;
              |True:
               Признак_ДО_="ДО."+Признак_ДО;
            fi;
            if Match(Признак_ДО_,"*."):
               Признак_ДО_="ДО.000";
            fi;
         fi;
         if БО_Призн="":
            БО_Призн_="БО.000";
           |True:
            БО_Призн_=БО_Призн;
         fi;
         if ЦЗ:
            ГП_Призн_=ГП_Призн;
           |True:
            ГП_Призн_="";
         fi;
         p=Pos("#",ВидОпер);
         ВидОпер_=if(p=0,ВидОпер,SubStr(ВидОпер,p+1,255));
         if ((not ВидОпер_="206" and not ВидОпер_="502.x2") or not СчКорр_Аннул=""):
            СчДеб_=СчДеб;
            СчКре_=СчКре;
            if Year(Аннул_Дата)>Year(ДатаРег) and not ВидОпер_="00" and not ВидОпер_="206": --это для кредиторки
               СчДеб_="00";
            fi;
            if not СчКорр_Аннул="":
               if Аванс: 
                  СчКре_=СчКорр_Аннул;
                 |True: 
                  СчДеб_=СчКорр_Аннул;
               fi;
            fi;
            if ВыделятьНДС and not Аннул_Часть: 
               Сум_=-Сум;
               СумРуб_=-СумРуб;
              |ВыделятьНДС and Аннул_Часть:     
               Сум_=-Сум_Аннул;
               СумРуб_=-СумРуб_Аннул; --Чего с делать с НДС?
              |Аннул_Часть:                     
               Сум_=-Сум_Аннул;
               СумРуб_=-СумРуб_Аннул;
              |True:                            
               Сум_=-СумСНДС;
               СумРуб_=-СумРубСНДС;
            fi;
            if Расш_Кол:
               if Аннул_Часть:
                  Кол_=-УчКол;
                 |True:
                  Кол_=-УчКол;
               fi;
              |True    :
               if Аннул_Часть:
                  Кол_=-Кол_Аннул;
                 |True:
                  Кол_=-Кол;
               fi;
            fi;
            if ОКВ="643":
               if ПризнКол<>"":
                  :Сум_ $СчДеб $СчКре {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период $ПризнКол:Кол_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                 |True:
                  :Сум_ $СчДеб $СчКре {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
               fi;
              |True:
               if ПризнКол<>"":
                  :Сум_^$Вал :СумРуб_ $СчДеб $СчКре {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период $ПризнКол:Кол_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
                 |True:
                  :Сум_^$Вал :СумРуб_ $СчДеб $СчКре {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $Период} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
               fi;
            fi;
         fi;
         --Лимиты (500)
         if Pos("ЗА#" ,ВидОпер)=1:Опл_="ЗА";
           |Pos("КОО#",ВидОпер)=1:Опл_="КОО";
           |true:                 Опл_="ОПЛ";
         fi;
         if not НеПровДО and not ВД="3" and ДатаРег>=НачТекГод and not ((Опл_="ОПЛ" or Опл_="КОО") and Int(ТекГодПоз)<Year(ДатаРег)):
            l=Length(КБК);
            БК_=SubStr(КБК,1,l-4);
            КОСГУ_=SubStr(КБК,l-2,3);
            Пер_=if(Int(ТекГодПоз)-Year(Аннул_Дата)>0,Str(Min(3,Int(ТекГодПоз)-Year(Аннул_Дата)+1)),"1");
            СчДО_Д=БК_+"."+ВД+".502."+Пер_+"1."+КОСГУ_;
            СчДО_К=БК_+"."+ВД+".502."+Пер_+"2."+КОСГУ_;
            ПериодОпл_="ПЕРИОД."+ТекГодПоз;
            Опер_=""; --if(УчетДО_ФК and not РегФК,"ОПЕР",""); учитываем по нашей дате
            if Аннул_Часть:
               Сум_=-Сум_Аннул;
               СумРуб_=-СумРуб_Аннул;
              |True:
               Сум_=-СумСНДС;
               СумРуб_=-СумРубСНДС;
            fi;
            if ОКВ="643":
               :Сум_ $СчДО_Д $СчДО_К {$Признак_ $БО_Призн_ $Признак_ДО_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $ПериодОпл_ $Опл_ $Опер_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
              |True:
               :Сум_^$Вал :СумРуб_ $СчДО_Д $СчДО_К {$Признак_ $БО_Призн_ $Признак_ДО_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $ГП_Призн_ $Призн $ПризнДоп $ОКДП_Призн $ПериодОпл_ $Опл_ $Опер_} -- $НаимДок_ №$НомерДок от $ДатаДок $Содерж $Коммент
            fi;
         fi; --if not НеПровДО and not ВД="3" and ДатаРег>=НачТекГод and not (Опл_="ОПЛ" and Int(ТекГодПоз)<Year(ДатаРег)):

      fi;--if not НеПров:
   РЕПО; --ДО_Аннул="Аннулированное денежное обязательство"
   ОПЕР ДО_НДС_Аннул="Аннулированное НДС денежного обязательства"
       (СчФНом       :S;
        СчФДат       :D;
        Признак      :S;
        ОКВ          :S;
        Контр_Призн  :S;
        Общ_Призн1   :S;
        Общ_Призн2   :S;
        Вал          :Валюта;
        Призн        :S;
        Сум          :N;
        СумРуб       :N;
        СумСНДС      :N;
        СумРубСНДС   :N;
        СчДеб        :S;
        СчКре        :S;
        НеПров       :L
       )
      var Признак_:S;
      var k:i;
      if not СчДеб="" and not СчКре="" and not НеПров:
         Признак_="ДОГОВОР."+Признак;
         if ОКВ="643":
            :-(СумСНДС-Сум) $СчДеб $СчКре {$Признак_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $Призн} -- Сч.ф. №$СчФНом от $СчФДат
           |True:
            :-(СумСНДС-Сум)^$Вал :-(СумРубСНДС-СумРуб) $СчДеб $СчКре {$Признак_ $Контр_Призн $Общ_Призн1 $Общ_Призн2 $Призн} -- Сч.ф. №$СчФНом от $СчФДат
         fi;
      fi;
   РЕПО; --ДО_НДС_Аннул="Аннулированное НДС денежного обязательства"
   ОПЕР ДО_ПровДоп_Аннул="Аннулированные дополнительные проводки денежного обязательства"
       (НомерДок        :S;
        ДатаДок         :D;
        НаимДок_        :S;
        Период          :S;
        Признак         :S;
        Признак_ДО      :S;
        ОКВ             :S;
        Контр_Призн     :S;
        Удж_Контр_Призн :S;
        Общ_Призн1      :S;
        Общ_Призн2      :S;
        ГП_Призн        :S;
        БО_Призн        :S;
        Вал             :Валюта;
        Призн           :S;
        ПризнК          :S;
        Сум             :N;
        СумРуб          :N;
        СчДеб           :S;
        СчКре           :S;
        Предм1          :S
       )
      var Признак_   :S;
      var Признак_ДО_:S;
      var БО_Призн_  :S;
      var Период_    :S;
      var ПериодД_   :S;
      var ПериодК_   :S;
      Признак_="ДОГОВОР."+Признак;
      if Признак_ДО="":
         Признак_ДО_="ДО.000";
        |True:
         Признак_ДО_="ДО."+Признак_ДО;
         if Match(Признак_ДО_,"*."):
            Признак_ДО_="ДО.000";
         fi;
      fi;
      if БО_Призн=" ":
         БО_Призн_="БО.000";
        |True:
         БО_Призн_=БО_Призн;
      fi;
      if ПризнК="":
         Период_ =Период;
         ПериодД_="";
         ПериодК_="";
        |True:
         Период_ ="";
         ПериодД_=Период;
         ПериодК_=ПризнК;
      fi;
      if Удж_Контр_Призн = '':
         if ОКВ="643":
            :-Сум $СчДеб [$ПериодД_] $СчКре [$ПериодК_] {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
           |True:
            :-Сум^$Вал :СумРуб $СчДеб [$ПериодД_] $СчКре [$ПериодК_] {$Признак_ $Признак_ДО_ $БО_Призн_ $Контр_Призн $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
         fi;
      |True:
         if ОКВ="643":
            :-Сум $СчДеб [$Контр_Призн $ПериодД_] $СчКре [$Удж_Контр_Призн $ПериодК_] {$Признак_ $Признак_ДО_ $БО_Призн_ $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
           |True:
            :-Сум^$Вал :СумРуб $СчДеб [$Контр_Призн $ПериодД_] $СчКре [$Удж_Контр_Призн $ПериодК_] {$Признак_ $Признак_ДО_ $БО_Призн_ $ГП_Призн $Общ_Призн1 $Общ_Призн2 $Призн $Период_} -- $НаимДок_ №$НомерДок от $ДатаДок $Предм1
         fi;
      fi;
   РЕПО; --ДО_ПровДоп_Аннул="Аннулированные дополнительные проводки денежного обязательства"
   ОПЕР ДО_Зачет_Аванса="Денежное обязательство, зачет аванса"
       (ДатаРег       :D;
        Аванс_Призн   :S;
        Аванс_БО_Призн:S;
        Аванс_ДО_Призн:S;
        Аванс_ТекГод  :S;
        Контр_Призн   :S;
        Общ_Призн1    :S;
        Общ_Призн2    :S;
        Осн           :S;
        Вал           :Валюта;
        ВД            :S;
        КБК           :S;
        Призн         :S;
        ДО_Призн      :S;
        ДО_ТекГод     :S;
        ДО_БО_Призн   :S;
        ДО_ДО_Призн   :S;
        ДО_Контр_Призн:S;
        Сум           :N;
        СумРуб        :N;
        ОснДоп        :S;
        СчДеб         :S;
        СчКре         :S;
        Призн_Общ     :S;
        Призн_Деб     :S;
        Призн_Кре     :S;
        НеПровДО      :L;
        ПровБО        :L;
        КБК_Ав        :S
       )
       var БО_Призн_:S;
       var ДО_Призн_:S;
       var tmp      :S;
       var ПризнД1  :S;
       var ПризнД2  :S;
       var ПризнД3  :S;
       var ПризнК1  :S;
       var ПризнК2  :S;
       var ПризнК3  :S;
       var p        :I;
       var БК_      :S;
       var КОСГУ_   :S;
       var СчДО_Д   :S;
       var СчДО_К   :S;
       var СчБО_Д   :S;
       var СчБО_К   :S;
       var Призн_   :S;
       var ПериодД  :S;
       var ПериодК  :S;
       var КонтрД_  :S;
       var КонтрК_  :S;
       ПризнД1="";
       ПризнД2="";
       ПризнД3="";
       ПризнК1="";
       ПризнК2="";
       ПризнК3="";
       Призн_=if(КБК_Ав="",Призн,"");
       ПериодК=if(Аванс_ТекГод="","","ПЕРИОД."+Аванс_ТекГод);
       ПериодД=if(ДО_ТекГод="",ПериодК,"ПЕРИОД."+ДО_ТекГод);
       if ДО_Контр_Призн="":
          КонтрД_=Контр_Призн;
          КонтрК_=Контр_Призн;
         |True:
          КонтрД_=ДО_Контр_Призн;
          КонтрК_=Контр_Призн;
       fi;
       if not Призн_Деб="":
          p=Pos(" ",Призн_Деб);
          if p=0 : ПризнД1=Призн_Деб;
            |true: ПризнД1=SubStr(Призн_Деб,1,p-1);
                   tmp=SubStr(Призн_Деб,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнД2=tmp;
                        |true: ПризнД2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнД3=tmp;
                                    |true: ПризнД3=SubStr(tmp,1,p-1);
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if not Призн_Кре="":
          p=Pos(" ",Призн_Кре);
          if p=0 : ПризнК1=Призн_Кре;
            |true: ПризнК1=SubStr(Призн_Кре,1,p-1);
                   tmp=SubStr(Призн_Кре,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнК2=tmp;
                        |true: ПризнК2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнК3=tmp;
                                    |true: ПризнК3=SubStr(tmp,1,p-1);
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if Вал=BaseCurrency:
          :Сум $СчДеб [$ДО_Призн $ДО_ДО_Призн $ПризнД1 $ПризнД2 $ПризнД3 $ПериодД $КонтрД_] $СчКре [$Аванс_Призн $Аванс_ДО_Призн $ПризнК1 $ПризнК2 $ПризнК3 $ПериодК $КонтрК_] {$Общ_Призн1 $Общ_Призн2 $Призн_ $Призн_Общ} -- Зачет аванса. $Осн $ОснДоп
         |True:
          :Сум^$Вал :СумРуб $СчДеб [$ДО_Призн $ДО_ДО_Призн $ПризнД1 $ПризнД2 $ПризнД3 $ПериодД $КонтрД_] $СчКре [$Аванс_Призн $Аванс_ДО_Призн $ПризнК1 $ПризнК2 $ПризнК3 $ПериодК $КонтрК_] {$Общ_Призн1 $Общ_Призн2 $Призн_ $Призн_Общ} -- Зачет аванса. $Осн $ОснДоп
       fi;
       if (not НеПровДО or ПровБО) and not ВД="3" and ДатаРег>=НачТекГод:
          БО_Призн_=if(ДО_БО_Призн="","БО.000",ДО_БО_Призн);
          ДО_Призн_=if(ДО_ДО_Призн="","ДО.000",ДО_ДО_Призн);
          p=Length(КБК);
          БК_=SubStr(КБК,1,p-4);
          КОСГУ_=SubStr(КБК,p-2,3);
          СчДО_Д=БК_+"."+ВД+".502.11."+КОСГУ_;
          СчДО_К=БК_+"."+ВД+".502.12."+КОСГУ_;
          if ВД="1":
             СчБО_Д=БК_+"."+ВД+".501.13."+КОСГУ_;
             СчБО_К=БК_+"."+ВД+".502.11."+КОСГУ_;
            |True:
             СчБО_Д=БК_+"."+ВД+".506.10."+КОСГУ_;
             СчБО_К=БК_+"."+ВД+".502.11."+КОСГУ_;
          fi;
       fi;
       if not ВД="3" and ДатаРег>=НачТекГод:
          if not НеПровДО:
             if Вал=BaseCurrency:
                :-Сум $СчДО_Д $СчДО_К {$КонтрД_ $Общ_Призн1 $Общ_Призн2 $Призн_ $Призн_Общ $ДО_Призн $ДО_Призн_ $Призн_Деб $БО_Призн_ $ПериодД ЗА} -- Зачет аванса. $Осн $ОснДоп
               |True:
                :-Сум^$Вал :-СумРуб $СчДО_Д $СчДО_К {$КонтрД_ $Общ_Призн1 $Общ_Призн2 $Призн_ $Призн_Общ $ДО_Призн $ДО_Призн_ $Призн_Деб $БО_Призн_ $ПериодД ЗА} -- Зачет аванса. $Осн $ОснДоп
             fi;
          fi;
          if ПровБО:
             if Вал=BaseCurrency:
                :-Сум $СчБО_Д $СчБО_К {$КонтрД_ $Общ_Призн1 $Общ_Призн2 $Призн_ $Призн_Общ $ДО_Призн $ДО_Призн_ $Призн_Деб $БО_Призн_ $ПериодД ЗА} -- Зачет аванса. $Осн $ОснДоп
               |True:
                :-Сум^$Вал :-СумРуб $СчБО_Д $СчБО_К {$КонтрД_ $Общ_Призн1 $Общ_Призн2 $Призн_ $Призн_Общ $ДО_Призн $ДО_Призн_ $Призн_Деб $БО_Призн_ $ПериодД ЗА} -- Зачет аванса. $Осн $ОснДоп
             fi;
          fi;
       fi;
   РЕПО; --ДО_ЗАЧЕТ_АВАНСА="Денежное обязательство, зачет аванса"
   ОПЕР ДО_ЗП_БУХ="Проводки денежного обязательства по зарплате (бухгалтерские)"
        (
        СчДеб   :S;
        СчКре   :S;
        Призн   :S;
        ПризнД  :S;
        ПризнК  :S;
        ДопАнДок:S;
        КБКАн   :S;
        Период  :S;
        Коммент :S;
        Содерж  :S;
        СумРуб  :N
        )
       var ПризнД1:S;
       var ПризнД2:S;
       var ПризнД3:S;
       var ПризнД4:S;
       var ПризнД5:S;
       var ПризнК1:S;
       var ПризнК2:S;
       var ПризнК3:S;
       var ПризнК4:S;
       var ПризнК5:S;
       var p:i;
       var tmp:S;
       ПризнД1="";
       ПризнД2="";
       ПризнД3="";
       ПризнД4="";
       ПризнД5="";
       ПризнК1="";
       ПризнК2="";
       ПризнК3="";
       ПризнК4="";
       ПризнК5="";
       if not ПризнД="":
          p=Pos(" ",ПризнД);
          if p=0 : ПризнД1=ПризнД;
            |true: ПризнД1=SubStr(ПризнД,1,p-1);
                   tmp=SubStr(ПризнД,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнД2=tmp;
                        |true: ПризнД2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнД3=tmp;
                                    |true: ПризнД3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнД4=tmp;
                                                |true: ПризнД4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнД5=tmp;
                                                            |true: ПризнД5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;
       if not ПризнК="":
          p=Pos(" ",ПризнК);
          if p=0 : ПризнК1=ПризнК;
            |true: ПризнК1=SubStr(ПризнК,1,p-1);
                   tmp=SubStr(ПризнК,p+1,255);
                   if not tmp="":
                      p=Pos(" ",tmp);
                      if p=0 : ПризнК2=tmp;
                        |true: ПризнК2=SubStr(tmp,1,p-1);
                               tmp=SubStr(tmp,p+1,255);
                               if not tmp="":
                                  p=Pos(" ",tmp);
                                  if p=0 : ПризнК3=tmp;
                                    |true: ПризнК3=SubStr(tmp,1,p-1);
                                           tmp=SubStr(tmp,p+1,255);
                                           if not tmp="":
                                              p=Pos(" ",tmp);
                                              if p=0 : ПризнК4=tmp;
                                                |true: ПризнК4=SubStr(tmp,1,p-1);
                                                       tmp=SubStr(tmp,p+1,255);
                                                       if not tmp="":
                                                          p=Pos(" ",tmp);
                                                          if p=0 : ПризнК5=tmp;
                                                            |true: ПризнК5=SubStr(tmp,1,p-1);
                                                          fi;
                                                       fi;
                                              fi;
                                           fi;
                                  fi;
                               fi;
                      fi;
                   fi;
          fi;
       fi;

       :СумРуб $СчДеб [$ПризнД1 $ПризнД2 $ПризнД3 $ПризнД4 $ПризнД5] $СчКре [$ПризнК1 $ПризнК2 $ПризнК3 $ПризнК4 $ПризнК5] {$Призн $ДопАнДок $Период $КБКАн} --$Содерж $Коммент

   РЕПО; --   ОПЕР ДО_ЗП_БУХ="Проводки денежного обязательства по зарплате (бухгалтерские)"
   ОПЕР ДО_ЗП_ДО="Проводки денежного обязательства по зарплате (бухгалтерские)"
        (
        ДатаРег :D;
        СчДебДО :S;
        СчКреДО :S;
        КБКАн   :S;
        Призн   :S;
        ДопАнДок:S;
        Период  :S;
        --Коммент :S;
        Содерж  :S;
        УчетБО  :L;
        СумРуб  :N
        )
        var БК      :S;
        var КОСГУ   :S;
        var Ист     :S;
        var СчДебБО :S;
        var СчКреБО :S;
        var ПризнБО_:S;
        if СчДебДО<>"" and СчКреДО<>"" and ДатаРег>=НачТекГод:
           if Pos("БО.",ДопАнДок)=1 or not Pos(" БО.",ДопАнДок)=0:
              ПризнБО_="";
             |True:
              ПризнБО_="БО.000";
           fi;
           :СумРуб $СчДебДО $СчКреДО {$ПризнБО_ $ДопАнДок $Период $КБКАн $Призн} --$Содерж
           if УчетБО and ДАТАРег>=НачТекГод:
              if ДатаРег<1.1.2016:
                 БК   =Substr(СчДебДО,1 ,20);
                 Ист  =Substr(СчДебДО,22,1);
                 КОСГУ=Substr(СчДебДО,31,3);
                |True:
                 БК   =Substr(СчДебДО,1 ,19);
                 Ист  =Substr(СчДебДО,21,1);
                 КОСГУ=Substr(СчДебДО,30,3);
              fi;
              if Ист="1":
                 СчДебБО =БК+".1.501.13."+КОСГУ;
                |True:
                 СчДебБО =БК+"."+Ист+".506.10."+КОСГУ;
              fi;
              СчКреБО =БК+"."+Ист+".502.11."+КОСГУ;
             :СумРуб $СчДебБО $СчКреБО {$ПризнБО_ $ДопАнДок $Период $КБКАн $Призн} --$Содерж
          fi;
        fi;
   РЕПО; --   ОПЕР ДО_ЗП_БУХ="Проводки денежного обязательства по зарплате (бухгалтерские)"

   ОПЕР Начдох="Начисление доходов"

       (Код_Сч_Осн:S;
        Код_Сч_Дох:S;
        Код_Сч_Нал:S;
        Код_Сч_НалАв:S;
        Код_Сч_НДСАв:S;
        Сч_Осн:S;
        Сч_Дох:S;
        Сч_Нал:S;
        Сч_НалАв:S;
        Сч_НДСАв:S;
        КД:S;
        ФКР:S;
        КР_НП:S;
        КД_НП:S;
        КОСГУ: S;
        АНАЛИТ:S;
        НДССум:N;
        НДСЗач:N;
        Кмнт:S;
        ДОХОД:N;
        СТАВКА_НП:N;
        PacketMode:L;
        ПровПрибыль:L;
        КурсФ:L;
        ВалКурс:N
       )
    var Сч_Деб_Р:S;
    var Сч_Кре_Р:S;
    var Сч_Нал_:S;
    var Призн:S;
    var mustCur:N;
    var СчКурсР:S;
    var СчНалД:S;
    var Value1:S;
    var КОСГУ_ :S;
    var ВД_:S;
    var КД_:S;
    var НП_Ств :N;
    var НП_Сум :N;
    var НП_ДСЧ :S;
    var НП_КСЧ :S;

        if Сч_Дох="": Сч_Деб_Р = КД+"."+Код_Сч_Дох;           |True: Сч_Деб_Р=Сч_Дох; fi;
        if Сч_Осн="": Сч_Кре_Р = КД+"."+Код_Сч_Осн+"."+КОСГУ; |True: Сч_Кре_Р=Сч_Осн; fi;
        if Сч_Нал="": Сч_Нал_  = КД+"."+Код_Сч_Нал;           |True: Сч_Нал_ =Сч_Нал; fi;
        ВД_ = SubStr(Сч_Нал_, Length(Сч_Нал_)-11, 1);
        Призн = УдалитьПризнакПоМаскеИзНабора_Опер("КОСГУ.*", Аналит);

        if not PacketMode:
           КОСГУ_="КОСГУ."+КОСГУ;
           if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
              mustCur=Com_Var("Курс."+Валюта);
              :Доход*ВалКурс^РУБ :Доход^$Валюта $Сч_Деб_Р $Сч_Кре_Р {$КОСГУ_ $Призн} --$Кмнт
              Value1=SubStr(Сч_Деб_Р, Length(Сч_Деб_Р)-11, 1)+"_205_КР";
              СчКурсР=Com_Var_S(Value1);
              if СчКурсР<>"":
                 :Доход*(mustCur-ВалКурс)^РУБ :0^$Валюта $Сч_Деб_Р $СчКурсР {$КОСГУ_ $Призн} --$Кмнт
              fi;
           |True:
              :Доход^$Валюта $Сч_Деб_Р $Сч_Кре_Р {$КОСГУ_ $Призн} --$Кмнт
           fi;
           if НДССум<>0 :
              if ВД_="1":
                 СчНалД = ФКР+".1.401.20.291";
                 КОСГУ_="КОСГУ.291";
              |True:
                 СчНалД = Сч_Кре_Р;
                 КОСГУ_="КОСГУ."+КОСГУ;
              fi;
              if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
                 :НДССум*ВалКурс^РУБ :НДССум^$Валюта $СчНалД $Сч_Нал_ {$КОСГУ_ $Призн} --НДС $Кмнт
              |True:
                 :НДССум^$Валюта                     $СчНалД $Сч_Нал_ {$КОСГУ_ $Призн} --НДС $Кмнт
              fi;
           fi;
           if ПровПрибыль:
             if not КР_НП="":
               if not СТАВКА_НП=0.00: НП_Ств=СТАВКА_НП/100; |True: НП_Ств=0.2; fi;
               НП_Сум = Round((Доход-НДССум)*НП_Ств, 2);
               if not НП_Сум=0.00:
                 if ВД_="1":
                    НП_ДСЧ = КР_НП+".1.401.20.291";
                    НП_КСЧ = КР_НП+".1.303.03.731";
                    КОСГУ_="КОСГУ.291";
                 |True:
                    if not КД_НП="": КД_=КД_НП; |True: КД_="0000.0000000000.180"; fi;
                    НП_ДСЧ = КД_+"."+ВД_+ ".401.10.189";
                    НП_КСЧ = КД_+"."+ВД_+ ".303.03.731";
                    КОСГУ_="КОСГУ.189";
                 fi;
                 if not Name_S(НП_ДСЧ)=" " and not Name_S(НП_КСЧ)=" ":
                   if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
                      :НП_Сум*ВалКурс^РУБ :НП_Сум^$Валюта $НП_ДСЧ $НП_КСЧ {$КОСГУ_ $Призн} --Налог на прибыль $Кмнт
                   |True:
                      :НП_Сум^$Валюта                     $НП_ДСЧ $НП_КСЧ {$КОСГУ_ $Призн} --Налог на прибыль $Кмнт
                   fi;
                 fi;
               fi;
             fi;
           fi;
        fi;

        if НДСЗач<>0:
           КОСГУ_="КОСГУ."+КОСГУ;
           if Сч_НалАв="": Сч_Деб_Р = ФКР+"."+Код_Сч_НалАв; |True: Сч_Деб_Р=Сч_НалАв; fi;
           if Сч_НДСАв="": Сч_Кре_Р = ФКР+"."+Код_Сч_НДСАв; |True: Сч_Кре_Р=Сч_НДСАв; fi;
           if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
              :НДСЗач*ВалКурс^РУБ :НДСЗач^$Валюта $Сч_Деб_Р $Сч_Кре_Р {$КОСГУ_ $Призн} --Зачет аванса $Кмнт
             |true:
              :НДСЗач^$Валюта                     $Сч_Деб_Р $Сч_Кре_Р {$КОСГУ_ $Призн} --Зачет аванса $Кмнт
           fi;
        fi;

   РЕПО; --Начдох="Начисление доходов"

   ОПЕР Начдох_Packet="Начисление доходов"

       (Код_Сч_Осн:S;
        Код_Сч_Дох:S;
        Код_Сч_Нал:S;
        Код_Сч_НалАв:S;
        Код_Сч_НДСАв:S;
        Сч_Осн:S;
        Сч_Дох:S;
        Сч_Нал:S;
        Сч_НалАв:S;
        Сч_НДСАв:S;
        КД:S;
        ФКР:S;
        КР_НП:S;
        КД_НП:S;
        КОСГУ: S;
        АНАЛИТ:S;
        АНАЛИТИКА:S;
--        НДССум:N;
--        НДСЗач:N;
        Кмнт:S;
        Текст:S;
        ДОХОД:N;
        СумНДС:N;
        --Сумма:N;
        СТАВКА_НП:N;
        PacketMode:L;
        ПровПрибыль:L;
        КурсФ:L;
        ВалКурс:N
       )

    var Сч_Деб_Р:S;
    var Сч_Кре_Р:S;
    var Сч_Нал_:S;
    var Призн:S;
    var Призн2:S;
    var НДССум_:N;
    var mustCur:N;
    var СчКурсР:S;
    var Value1 :S;
    var КОСГУ_ :S;
    var ВД_:S;
    var КД_:S;
    var НП_Ств :N;
    var НП_Сум :N;
    var НП_ДСЧ :S;
    var НП_КСЧ :S;
        if PacketMode:
           КОСГУ_="КОСГУ."+КОСГУ;
           if Сч_Дох="": Сч_Деб_Р = КД+"."+Код_Сч_Дох;           |True: Сч_Деб_Р=Сч_Дох; fi;
           if Сч_Осн="": Сч_Кре_Р = КД+"."+Код_Сч_Осн+"."+КОСГУ; |True: Сч_Кре_Р=Сч_Осн; fi;
           if Сч_Нал="": Сч_Нал_  = КД+"."+Код_Сч_Нал;           |True: Сч_Нал_ =Сч_Нал; fi;
           ВД_ = SubStr(Сч_Нал_, Length(Сч_Нал_)-11, 1);
           Призн = УдалитьПризнакПоМаскеИзНабора_Опер("КОСГУ.*", Аналит);
           Призн2= УдалитьПризнакПоМаскеИзНабора_Опер("КОСГУ.*", АНАЛИТИКА);
           if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
              mustCur=Com_Var("Курс."+Валюта);
              :СумНДС*ВалКурс^РУБ :СумНДС^$Валюта $Сч_Деб_Р $Сч_Кре_Р {$КОСГУ_ $Призн $Призн2} --Начисление дохода $Текст $Кмнт
              Value1=SubStr(Сч_Деб_Р, Length(Сч_Деб_Р)-11, 1)+"_205_КР";
              СчКурсР=Com_Var_S(Value1);
              if СчКурсР<>"":
                 :СумНДС*(mustCur-ВалКурс)^РУБ :0^$Валюта $Сч_Деб_Р $СчКурсР {$КОСГУ_ $Призн $Призн2} --Начисление дохода $Текст $Кмнт
              fi;
           |True:
              :СумНДС^$Валюта $Сч_Деб_Р   $Сч_Кре_Р {$КОСГУ_ $Призн $Призн2} --$Текст $Кмнт
           fi;
           НДССум_=Round(СумНДС-Сумма, 2);
           if not НДССум_=0.00 :
              if ВД_="1":
                 КОСГУ_="КОСГУ.291";
              |True:
                 КОСГУ_="КОСГУ."+КОСГУ;
              fi;
              if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
                 :НДССум_*ВалКурс^РУБ :НДССум_^$Валюта $Сч_Кре_Р $Сч_Нал_ {$КОСГУ_ $Призн $Призн2} --НДС $Текст $Кмнт
              |True:
                 :НДССум_^$Валюта                      $Сч_Кре_Р $Сч_Нал_ {$КОСГУ_ $Призн $Призн2} --НДС $Текст $Кмнт
              fi;
           fi;
           if ПровПрибыль:
             if not КР_НП="":
               if not СТАВКА_НП=0.00: НП_Ств=СТАВКА_НП/100; |True: НП_Ств=0.2; fi;
               НП_Сум = Round(Сумма*НП_Ств, 2);
               if not НП_Сум=0.00:
                 if ВД_="1":
                    НП_ДСЧ = КР_НП+".1.401.20.291";
                    НП_КСЧ = КР_НП+".1.303.03.731";
                    КОСГУ_="КОСГУ.291";
                 |True:
                    if not КД_НП="": КД_=КД_НП; |True: КД_="0000.0000000000.180"; fi;
                    НП_ДСЧ = КД_+"."+ВД_+".401.10.189";
                    НП_КСЧ = КД_+"."+ВД_+".303.03.731";
                    КОСГУ_="КОСГУ.189";
                 fi;
                 if not Name_S(НП_ДСЧ)=" " and not Name_S(НП_КСЧ)=" ":
                   if Валюта<>"РУБ" and КурсФ and ВалКурс<>0:
                      :НП_Сум*ВалКурс^РУБ :НП_Сум^$Валюта $НП_ДСЧ $НП_КСЧ {$КОСГУ_ $Призн} --Налог на прибыль $Текст $Кмнт
                   |True:
                      :НП_Сум^$Валюта                     $НП_ДСЧ $НП_КСЧ {$КОСГУ_ $Призн} --Налог на прибыль $Текст $Кмнт
                   fi;
                 fi;
               fi;
             fi;
           fi;
        fi;
   РЕПО; --Начдох="Начисление доходов"

   ОПЕР НАЧДОХ_УО="Начисление доходов - учет обязательств"
    (ДАТАОПЕР    :D;
     СЧ_НАЛ      :S;
     КР_НП       :S;
     АНАЛИТ      :S;
     ДОХОД       :N;
     НДССУМ      :N;
     ПРОВОДИТЬ   :L;
     КАКБО       :L; -- Формирование проводки БО
     КАКДО       :L; -- Формирование проводки ДО
     ПровПрибыль :L;
     СТАВКА_НП   :N;
     КМНТ        :S
    )
    var AccD_BO    :S;
    var AccC_BO    :S;
    var AccC_DO    :S;
    var ВД         :S;
    var БК         :S;
    var КОСГУ_П    :S;
    var КОСГУ_А    :S;
    var Аналит_П   :S;
    var TryWork    :L;
    var НП_Ств     :N;
    var НП_Сум     :N;

      if ПРОВОДИТЬ:
        if not Name_S(СЧ_НАЛ)=" ":
          if (КакБО or КакДО) and ДатаОпер>=1.1.2016:
            TryWork=False;
            ВД = SubStr(СЧ_НАЛ, Length(СЧ_НАЛ)-11, 1);
            БК = "";
            КОСГУ_П = "291";
            КОСГУ_А = "КОСГУ."+КОСГУ_П;
            Аналит_П = УдалитьПризнакПоМаскеИзНабора_Опер("КОСГУ.*", Аналит);
            --0310.1010390059.244.1.401.20.291
            --1234567890123456789012345678901234567890
            --0        11        22        33
            if not Round(НДССУМ, 2)=0.00:
              БК = SubStr(СЧ_НАЛ, 1, Length(СЧ_НАЛ)-13);
              if БК<>"" and ВД<>"" and КОСГУ_П<>"":
                if ВД="1":
                  AccD_BO = БК + ".1.501.13." + КОСГУ_П;
                  AccC_BO = БК + ".1.502.11." + КОСГУ_П;
                  AccC_DO = БК + ".1.502.12." + КОСГУ_П;
                  TryWork=True;
--                Закомментировано, так как БО и ДО платится с расходов, а НДС и налог на прибыль для АУ БУ платится с доходов
--                | not ВД="3":
--                  AccD_BO = БК + "." + ВД + ".506.10." + КОСГУ_П;
--                  AccC_BO = БК + "." + ВД + ".502.11." + КОСГУ_П;
--                  AccC_DO = БК + "." + ВД + ".502.12." + КОСГУ_П;
--                  TryWork=True;
                fi;
              fi;
            fi;
            if TryWork:
              if КакБО:
                :   НДССУМ   $AccD_BO $AccC_BO {БО.000 $КОСГУ_А $Аналит_П} --БО для НДС от начисления дохода от $ДатаОпер $Кмнт
              fi;
              if КакДО:
                :   НДССУМ   $AccC_BO $AccC_DO [ДО.000] { БО.000 $КОСГУ_А $Аналит_П} --ДО для НДС от начисления дохода от $ДатаОпер $Кмнт
              fi;
            fi;

            TryWork=False;
            БК = "";
            if ПровПрибыль:
              if not СТАВКА_НП=0.00: НП_Ств=СТАВКА_НП/100; |True: НП_Ств=0.2; fi;
              НП_Сум = Round((Доход-НДССум)*НП_Ств, 2);
              if not НП_Сум=0.00:
                if not КР_НП="": БК=КР_НП; fi;
                if БК<>"" and ВД<>"" and КОСГУ_П<>"":
                  if ВД="1":
                    AccD_BO = БК + ".1.501.13." + КОСГУ_П;
                    AccC_BO = БК + ".1.502.11." + КОСГУ_П;
                    AccC_DO = БК + ".1.502.12." + КОСГУ_П;
                    TryWork=True;
--                  Закомментировано, так как БО и ДО платится с расходов, а НДС и налог на прибыль для АУ БУ платится с доходов
--                  | not ВД="3":
--                    AccD_BO = БК + "." + ВД + ".506.10." + КОСГУ_П;
--                    AccC_BO = БК + "." + ВД + ".502.11." + КОСГУ_П;
--                    AccC_DO = БК + "." + ВД + ".502.12." + КОСГУ_П;
--                    TryWork=True;
                  fi;
                fi;
              fi;
              if TryWork:
                if КакБО:
                  :   НП_Сум   $AccD_BO $AccC_BO {БО.000 $КОСГУ_А $Аналит_П} --БО для налога на прибыль от $ДатаОпер $Кмнт
                fi;
                if КакДО:
                  :   НП_Сум   $AccC_BO $AccC_DO [ДО.000] { БО.000 $КОСГУ_А $Аналит_П} --ДО для налога на прибыль от $ДатаОпер $Кмнт
                fi;
              fi;
            fi; --if ПровПрибыль:

          fi; --if (КакБО or КакДО) and ДатаОпер>=1.1.2016:
        fi; --if not Name_S(СЧ_НАЛ)=" ":
      fi;
   РЕПО; --РАБ.РПО.ПРОЧИЕ.НАЧДОХ_УО="Начисление доходов - учет обязательств"

   ОПЕР СПИ="Суммы принудительного изъятия"
       (Признак      :S;
        Контр_Призн  :S;
        Призн        :S;
        Сум          :N;
        СчДеб        :S;
        СчКре        :S;
        Содерж       :S;
        Кмнт         :S
       )
      var Признак_:S;
      Признак_="СПИ."+Признак;
      :Сум $СчДеб $СчКре {$Признак_ $Контр_Призн $Призн} -- $Содерж $Кмнт
   РЕПО; --СПИ="Суммы принудительного изъятия"

  Аппург; --Прочие="Прочие операции";
 Аппург; --РПО="Типовые операции РПО 'Бюджет'";
Аппург; --РАБ="Обработчики картотек";