<?xml version="1.0" encoding="windows-1251"?>
<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by ASD (ASD) -->
<Модуль rg_version="1.0">
  <интерфейс>
    <отчет>
      <наименование>Форма 0503775-33н_ред183н_2023</наименование>
      <код_раздела>Reports5n</код_раздела>
      <номер_код>f0503775_183n_2023</номер_код>
      <шаблон>
        <тип>MSE</тип>
        <мнемокод>ar_form0503775_183n_2023</мнемокод>
        <файл>Форма0503775_33н_ред183н_2023.xlt</файл>
      </шаблон>
      <!--Отчет формируется по хозяйственным операциям за период-->
    </отчет>
  </интерфейс>
  <отчет>
    <реализует>f0503775_183n_2023</реализует>
      <дополнительно>
      <запомнить_переменные>
        <список_переменных>dBalOpen;dSelDate;cOrg;cBalUnits;nAccType;cTxt18B1;cTxt18B2;cTxt18B3;cTxt18B4;cTxt18B5;cTxt18B6;cTxt18B7;cTxt18B8;cTxt18B9;cTxt18B10;nChk50222;nSumLimit1;nSumLimit2;cAccIDO;nChkFormZabal;nAnLevelDD;nAnLevel4;cRN_MarkVPL;cRN_MarkNOO;cUnlPath;cIST;cDicIsp;cIspName;cIspTel</список_переменных>
        <мемофайл>ar_form0503775_33n_183n_2023;ar_form0503775_33n_78n_2022;ar_form0503775_33n_292n_2020;ar_form0503775_33n_11n_2020;ar_form0503775_33n_166n_2019</мемофайл>
      </запомнить_переменные>
      </дополнительно>
    <переменные>
      <переменная>
        <имя>dBalOpen</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата расчета показателей вступительного баланса-->
      </переменная>
      <переменная>
        <имя>dSelDate</имя>
        <начальное_значение>oSystem.Date</начальное_значение>
        <!--Отчетный период-->
      </переменная>
      <переменная>
        <имя>dDateBegin</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата С-->
      </переменная>
      <переменная>
        <имя>dDateEnd</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата По-->
      </переменная>
      <переменная>
        <имя>cOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учреждение-->
      </переменная>
      <переменная>
        <имя>cWhereOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по контрагентам-->
      </переменная>
      <переменная>
        <имя>cBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Балансовая единица-->
      </переменная>
      <переменная>
        <имя>cWhereBal</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по балансовым единицам-->
      </переменная>  
      <переменная>
        <имя>nAccType</имя>
        <начальное_значение>1</начальное_значение>
        <!--Тип счёта-->
      </переменная>
      <переменная>
        <имя>CTxt18B1</имя>
        <начальное_значение>"2"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B2</имя>
        <начальное_значение>"4"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B3</имя>
        <начальное_значение>"5"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B4</имя>
        <начальное_значение>"6"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B5</имя>
        <начальное_значение>"7"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B6</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B7</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B8</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B9</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B10</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>litogzag</имя>
        <начальное_значение>.F.</начальное_значение>
        <!--верхний итог-->
      </переменная>
      <переменная>
        <имя>cUsl18</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие для 18 знака счета-->
      </переменная>
      <переменная>
        <имя>nChk50222</имя>
        <начальное_значение>0</начальное_значение>
        <!--Учитывать кредитовые остатки по счетам 50222 для расчета показателей по принятым бюджетным обязательствам-->
      </переменная>
      <переменная>
        <имя>nSumLimit1</имя>
        <начальное_значение>10000000</начальное_значение>
        <!--Предельный размер неисполненных обязательств (раздел 1)-->
      </переменная>
      <переменная>
        <имя>nSumLimit2</имя>
        <начальное_значение>10000000</начальное_значение>
        <!--Предельный размер неисполненных денежных обязательств (раздел 2)-->
      </переменная>
      <переменная>
        <имя>cAccIDO</имя>
        <начальное_значение>"|??????????????????з18*"</начальное_значение>
        <!--Счета: Исполнение денежных обязательств -->
      </переменная>
      <переменная>
        <имя>cWhereAccIDO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по счетам исполнения денежных обязательств-->
      </переменная>  
      <переменная>
        <имя>nChkFormZabal</имя>
        <начальное_значение>0</начальное_значение>
        <!--Формировать исполнение по забалансовым счетам-->
      </переменная>
      <переменная>
        <имя>nAnLevelDD</имя>
        <начальное_значение>0</начальное_значение>
        <!--Уровень доп. аналитики классификации расходов для счетов денежных средств-->
      </переменная>
      <переменная>
        <имя>nAnLevel4</имя>
        <начальное_значение>4</начальное_значение>
        <!--Уровень аналитики кодов поступлений (выбытий) для счетов денежных средств-->
      </переменная>
      <переменная>
        <имя>cRN_MarkVPL</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Возвраты прошлых лет)-->
      </переменная>
      <переменная>
        <имя>cRN_MarkNOO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Не отражать в отчете)-->
      </переменная>
      <переменная>
        <имя>cUnlPath</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки-->
      </переменная>
      <переменная>
        <имя>cFileName</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки-->
      </переменная>
      <переменная>
        <имя>cFormCode</имя>
        <начальное_значение>""</начальное_значение>
        <!--Код формы-->
      </переменная>
      <переменная>
        <имя>cIST</имя>
        <начальное_значение>""</начальное_значение>
        <!--ИСП-->
      </переменная>
      <переменная>
        <имя>cDicIsp</имя>
        <начальное_значение>""</начальное_значение>
        <!--Исполнитель-->
      </переменная>
      <переменная>
        <имя>cIspName</имя>
        <начальное_значение>""</начальное_значение>
        <!--ФИО исполнителя-->
      </переменная>
      <переменная>
        <имя>cIspTel</имя>
        <начальное_значение>""</начальное_значение>
        <!--Телефон исполнителя-->
      </переменная>
      <переменная>
        <имя>RepG151</имя>
        <начальное_значение>CreateObject("form0503buxrepd")</начальное_значение>
      </переменная>
      <переменная>
        <имя>dReportDate</имя>
        <начальное_значение>Date(2023,06,30)</начальное_значение>
      </переменная>
      <переменная>
        <имя>lNoError</имя>
        <начальное_значение>.T.</начальное_значение>
      </переменная>            
    </переменные>
    <запуск_формы>
      <ид>f_0503775_33n_183n_2023</ид>
    </запуск_формы>
    <вычисление>
      <сообщение>Ждите, идет выборка данных ...</сообщение>
      <FPC_><![CDATA[*[VFP]
 dDateEnd   = DOX(m.dSelDate, 4)
 dDateBegin = Iif(Empty(m.dBalOpen), DOX(m.dDateEnd, 1), m.dBalOpen)
   ]]></FPC_>
    </вычисление>
    <печать>
      <!--Печать отчета--><MSE>
        <!--Печать в MS Excel-->
        <FPC_><![CDATA[*[VFP]
*ON ERROR
Private lOrgPO, nInitPos, cAnLevel4, cWhereMark
Local cStr302, cStr208, cStrKOSGU

* Аналитические счета для учреждений
lOrgPO = !Empty(m.cWhereOrg)

* Длинный или короткий план счетов
nInitPos = Iif(m.nAccType = 1, 19, 2)

* Уровень аналитики кодов поступлений (выбытий) для счетов денежных средств
cAnLevel4 = Str(m.nAnLevel4, 1)

* Особая отметка
cWhereMark = Iif(Empty(m.cRN_MarkVPL), "", " And B.RN_MARK # '" + m.cRN_MarkVPL + "'") ;
           + Iif(Empty(m.cRN_MarkNOO), "", " And B.RN_MARK # '" + m.cRN_MarkNOO + "'")

* КОСГУ для счетов 302 и 208
Private ALL Like arrStr*
Dimension arrStr302[1], arrStr208[1], arrStrKOSGU[1]
cStr302   = "11;12;13;14;21;22;23;24;25;26;27;28;29;91;93;95;96;97;98;99;31;32;33;34;36;61;62;63;64;65;66;67;72;73;75;  "
cStr208   = "  ;12;13;14;21;22;23;24;25;26;27;28;29;91;93;95;96;97;98;99;31;32;  ;34;36;61;62;63;64;65;66;67"
cStrKOSGU = "211;212;213;214;221;222;223;224;225;226;227;228;229;290;293;295;296;297;298;299;310;320;330;340;360;261;262;263;264;265;266;267;520;530;550;   "
ALines(arrStr302,   m.cStr302,   ";")
ALines(arrStr208,   m.cStr208,   ";")
ALines(arrStrKOSGU, m.cStrKOSGU, ";")

* Исполнено обязательств
Create CURSOR curIDO (KBK C(17), VFO C(1), KOSGU C(3), Sum N (18,2))
Index On KBK + VFO + KOSGU Tag UNI

If m.nChkFormZabal = 1
  If !Empty(m.cWhereAccIDO)
    oSystem.ShowMessage("Подсчёт сумм: Исполнение расходов по забалансовым счетам...")
    GetTurnsFormZBal()
  EndIf
Else
  oSystem.ShowMessage("Подсчёт сумм: Исполнение расходов по балансовым счетам...")
  GetTurnsFormBal201()
  GetTurnsFormBal208()
EndIf

oSystem.ShowMessage("Подсчёт сумм: Некассовые операции...")
GetTurnsNKO()

* Принято обязательств
Create CURSOR curOblig (KBK C(17), VFO C(1), KOSGU C(3), C34 C(1), Sum N (18,2))
Index On KBK + VFO + KOSGU + C34 Tag UNI

oSystem.ShowMessage("Подсчёт сумм: Принято обязательств...")
GetTurnsOblig("50211", "curOblig")
If m.nChk50222 = 1
  GetTurnsOblig("50222", "curOblig", .T.)
EndIf

* 1. Аналитическая информация о неисполненных обязательствах
Select KBK, VFO, KosGu, Sum(Sum) As Sum ;
  From curOblig ;
  Group By 1, 2, 3 ;
  Into CURSOR curOblig1

Select a.KBK, a.VFO, a.KOSGU, a.Sum - Nvl(b.Sum, 000000000000000.00) As Sum ;
  From curOblig1 a ;
    Left Join curIDO b On a.KBK + a.VFO + a.KosGu = b.KBK + b.VFO + b.KosGu ;
  Into CURSOR curSpec1 READWRITE

Delete For Sum = 0 Or Sum < m.nSumLimit1

Index On VFO + KosGu + KBK Tag UNI

Use In curOblig1

* Принято денежных обязательств
Create CURSOR curMObl (KBK C(17), VFO C(1), KOSGU C(3), Sum N (18,2))
Index On KBK + VFO + KOSGU Tag UNI

oSystem.ShowMessage("Подсчёт сумм: Принято денежных обязательств...")
GetTurnsOblig("50212", "curMObl")

* 2. Аналитическая информация о неисполненных денежных обязательствах
Select a.KBK, a.VFO, a.KOSGU, a.Sum - Nvl(b.Sum, 000000000000000.00) As Sum ;
  From curMObl a ;
    Left Join curIDO b On a.KBK + a.VFO + a.KosGu = b.KBK + b.VFO + b.KosGu ;
  Into CURSOR curSpec2 READWRITE

Delete For Sum = 0 Or Sum < m.nSumLimit2

Index On VFO + KosGu + KBK Tag UNI

* Утверждено плановых назначений
Create CURSOR curUtv (KBK C(17), VFO C(1), KOSGU C(3), C34 C(1), Sum N (18,2))
Index On KBK + VFO + KOSGU + C34 Tag UNI

oSystem.ShowMessage("Подсчёт сумм: Утверждено плановых назначений...")
GetTurnsUtv()

* 3. Аналитическая информация о расходных обязательствах, принятых сверх утвержденного плана финансово-хозяйственной деятельности
Select a.KBK, a.VFO, a.KosGu, a.C34, a.Sum - Nvl(b.Sum, 000000000000000.00) As Sum ;
  From curOblig a ;
    Left Join curUtv b On a.KBK + a.VFO + a.KosGu + a.C34= b.KBK + b.VFO + b.KosGu + b.C34 ;
  Into CURSOR curSpec31

Select KBK, VFO, KosGu, Sum, ;
       Iif(C34 = "3", Sum, 000000000000000.00) As Sum3, ;
       Iif(C34 = "4", Sum, 000000000000000.00) As Sum4  ;
  From curSpec31 ;
  Into CURSOR curSpec32

Use In curSpec31

Select KBK, VFO, KosGu, Sum(Sum) As Sum2, Sum(Sum3) As Sum3, Sum(Sum4) As Sum4 ;
  From curSpec32 ;
  Group By 1, 2, 3 ;
  Into CURSOR curSpec3 READWRITE

Delete For Sum2 <= 0

Index On VFO + KosGu + KBK Tag UNI

Use In curSpec32

* 4. Аналитическая информация об экономии при заключении договоров с применением конкурентных способов
Create CURSOR curSpec4 (KBK C(17), ACC C(6), KOSGU C(3), Sum2 N (18,2), Sum3 N (18,2), Sum4 N (18,2))
Index On ACC + KOSGU + KBK Tag UNI

oSystem.ShowMessage("Подсчёт сумм: Принимаемые обязательства...")
GetTurnsEconom()

CurClose("curSbfTotal;curKldRN;curIDO;curOblig;curMObl;curUtv")

* Имя файла для выгрузки в МинФин
If !Empty(m.cUnlPath)
  Local Array aFiles(1)
  Local nNum, cNum, nN, i
  cUnlPath  = AllTrim(m.cUnlPath)
  cFormCode = "375"
  cFileName = m.cFormCode
  Do Case
    Case Month(m.dDateEnd + 1) = 1            && год
      cFileName = m.cFileName + "Y"
    Case InList(Month(m.dDateEnd + 1), 4, 7, 10) && квартал
      cFileName = m.cFileName + "Q"
    Otherwise                                  && месячная форма не существует, поэтому ставим реорганизацию
      cFileName = m.cFileName + "R"
  EndCase
  nNum = 0
  If ADir(aFiles, m.cUnlPath + m.cFileName + "??.txt") # 0
    For m.i = 1 To ALen(aFiles) / 5
      nN = At(".", aFiles(m.i, 1))
      cNum = SubStr(aFiles(m.i, 1), 5, m.nN - 5)
      If m.nNum < Val(m.cNum)
        nNum = Val(m.cNum)
      EndIf 
      If m.nNum = 99
        nNum = 0
      EndIf
    EndFor
  EndIf
  cFileName = m.cUnlPath + m.cFileName + PadL(Int(m.nNum) + 1, 2, "0") + ".txt"
EndIf

oSystem.ShowMessage("Печать ...")

* Печать отчета
Local oPrint, nSheet, cVFO, i, s, cSumm
oPrint = objCaller.objExcelRep

* Заголовок
oPrint.PrintRange("Header")

For m.i = 1 To 4
  s = Str(m.i, 1)
  Local Array aRepParts[2]
  aRepParts[ 1 ] = "Spec" + m.s
  aRepParts[ 2 ] = "SpecItog" + m.s
  oPrint.ReportPrepare( @aRepParts)

  If m.i <= 2
    cSumm = "Sum(Sum) As Sum"
    cVFO  = "VFO"
  Else
    cSumm = "Sum(Sum2) As Sum2, Sum(Sum3) As Sum3, Sum(Sum4) As Sum4"
    cVFO  = Iif(m.i = 3, "VFO", "Acc")
  EndIf

  Select &cVFO, KosGu, &cSumm ;
    From curSpec&s ;
    Group By 1, 2 ;
    Order By 1, 2 ;
    Into CURSOR curItog&s

  Scan
    Select curSpec&s
    Seek curItog&s..&cVFO + curItog&s..KosGu
    Scan While &cVFO + KosGu = curItog&s..&cVFO + curItog&s..KosGu
      oPrint.PrintReportPart("Spec" + m.s)
    EndScan
    oPrint.PrintReportPart("SpecItog" + m.s)
  EndScan

  oPrint.ReportFinal()
Next

* Подвал
oPrint.PrintRange("Footer")

CurClose("curSpec1;curItog1;curSpec2;curItog2;curSpec3;curItog3;curSpec4;curItog4")

* Удаление листа со сценарием выгрузки
If Empty(m.cFileName)
  nSheet = oPrint.GetSheetNum("Выгрузка в МинФин")
  If m.nSheet > 0 
     oPrint.Book.Sheet = m.nSheet
     oPrint.Book.EditDeleteSheets()
  EndIf
  oPrint.Book.Sheet = 1
EndIf

oPrint = NULL      

Return

             
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Подсчёт сумм: Исполнение расходов по балансовым счетам   *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsFormZBal

Local i, s, cJoinAnD, cJoinAnK, cLevel, cWhereKosGU
Store "" To cJoinAnD, cJoinAnK

* Выборка счетов
MakeCurAcc("", m.cWhereAccIDO + " And AT('8', AccBase.SMETA_AN) # 0", "curAccIDO")

* Аналитика для БУ
If !GetAnOrg("curAccIDO")
  Return
EndIf

* Отбор проводок по КОСГУ
cWhereKosGU = " And !(Like('51*', AllTrim(GU.SAccount)) Or Like('61*', AllTrim(GU.SAccount)))"

Select curAccIDO
Scan For Seek(RN, "AccBase", "RN")
  * Аналитика для БУ
  If m.lOrgPO
    cJoinAnD = "Inner Join crsAnOrg AO On S.RN_DB_A" + Str(curAccIDO.Org_Level, 1) + " = AO.RN "
    cJoinAnK = StrTran(m.cJoinAnD, "_DB_", "_KR_")
  EndIf

  * КОСГУ
  cLevel = Str(curAccIDO.KOSGU_Level, 1)
  
  * Отбираем нужные обороты
  Select S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_KR_A&cLevel = GU.RN ;
      &cJoinAnK ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark And S.RN_KR = ?curAccIDO.RN &cWhereKosGU ;
  UNION ALL ;
  Select S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, -S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_DB_A&cLevel = GU.RN ;
      &cJoinAnD ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark And S.RN_DB = ?curAccIDO.RN &cWhereKosGU ;
    Into CURSOR curTurns1

  * Группируем и заполняем КБК, добавляем суммы в курсор curIDO (Исполнено обязательств)
  FillKBKandPutSumm2("curIDO")
EndScan

USE In curAccIDO

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*  Подсчёт сумм: Исполнение расходов по балансовым счетам 201* *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsFormBal201

Local cWhereKnt, cWhereKosGU, cWhereCorr, cWhereCorrAnDb, cWhereCorrAnKr, cJoinAnD, cJoinAnK, cAnLevelDD, cUnitExpKind, i, s, cKBK, cRN, cVFO
Local ARRAY arrSbFCode[1], arrVidR[1]
Store "" To cWhereKnt, cJoinAnD, cJoinAnK, cWhereKosGU, cWhereCorrAnDb, cWhereCorrAnKr
cAnLevelDD   = Str(m.nAnLevelDD, 1)
cUnitExpKind = UnitRN("ExpenseKinds")

* Выборка счетов
= MakeCurAcc("20111")
= MakeCurAcc("2012")
= MakeCurAcc("20134")

Select * From curAcc20111 ;
  UNION ALL Select * From curAcc2012 ;
  UNION ALL Select * From curAcc20134 ;
  Into CURSOR curAcc201

CurClose("curAcc20111;curAcc2012;curAcc20134")

* Аналитика для БУ
If !GetAnOrg("curAcc201")
  Return
EndIf

* Исключение проводок по корреспонденции
cWhereCorr = " And SubStr(C.Account, ?m.nInitPos, 3) # '201'" ;
           + " And !InList(SubStr(C.Account, ?m.nInitPos, 5), '21003', '21005')"

Select S.RN ;
  From AccBase A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where SubStr(A.Account, ?m.nInitPos, 4) = '4011' ;
    And S.Level = AT('8', A.SMETA_AN) ;
    And Like('171*', AllTrim(S.SAccount)) ;
  Into CURSOR cur4011_171

If _Tally # 0
  For m.i = 1 To 5
    s = Str(m.i, 1)
    cWhereCorrAnDb = m.cWhereCorrAnDb + " Or S.RN_DB_A" + m.s + " In (Select RN From cur4011_171)"
  Next
  cWhereCorrAnDb = " And !(SubStr(C.Account, ?m.nInitPos, 4) = '4011' And (" + SubStr(m.cWhereCorrAnDb, 5) + "))"
  cWhereCorrAnKr = StrTran(m.cWhereCorrAnDb, "_DB_", "_KR_")
EndIf

* Отбор проводок по КОСГУ
cWhereKosGU = " And (Like('2*', AllTrim(GU.SAccount)) Or Like('3*', AllTrim(GU.SAccount)) Or Like('53*', AllTrim(GU.SAccount)) Or Like('55*', AllTrim(GU.SAccount)))"

* Цикл по счетам
Select curAcc201
Scan For Seek(RN, "AccBase", "RN")
  * Вид финансового обеспечения
  cVFO = SubStr(AccBase.Account, m.nInitPos - 1, 1)

  * Аналитика для БУ
  If m.lOrgPO
    cJoinAnD = "Inner Join crsAnOrg AO On S.RN_DB_A" + Str(curAcc201.Org_Level, 1) + " = AO.RN "
    cJoinAnK = StrTran(m.cJoinAnD, "_DB_", "_KR_")
  EndIf

  * Отбираем нужные обороты
  Select S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_KR_A&cAnLevel4 = GU.RN ;
      Inner Join AccBase C  On S.RN_DB = C.RN ;
      &cJoinAnK ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark And S.RN_KR = ?curAcc201.RN &cWhereKosGU &cWhereCorr &cWhereCorrAnDb ;
  UNION ALL ;
  Select S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, -S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_DB_A&cAnLevel4 = GU.RN ;
      Inner Join AccBase C  On S.RN_KR = C.RN ;
      &cJoinAnD ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark And S.RN_DB = ?curAcc201.RN &cWhereKosGU &cWhereCorr &cWhereCorrAnKr ;
    Into CURSOR curTurns1

  * Формируем КБК
  Scan
    If m.nAnLevelDD = 0
      cKBK = GetOtherKBK("curTurns1")
    Else
      cKBK = ""
      cRN  = curTurns1.RN_AN&cAnLevelDD
      If !Empty(m.cRN) And Seek(m.cRN, "AccSpec", "RN")
        Do Case
          Case AccBase.TFin_Type = 2 And AT('9', AccBase.SMETA_AN) = m.nAnLevelDD   && ШФ
            If !Empty(AccSpec.RN_TFIN) And Seek(AccSpec.RN_TFIN, "curSbfTotal", "RN")
              cKBK = curSbfTotal.BcrCode
            EndIf

          Case AccBase.SLOVAN&cAnLevelDD._RN = m.cUnitExpKind   && Виды расходов
            If !Empty(AccBase.RN_TFIN) And !Empty(AccSpec.RN_COMMON)
              Select PadR(Iif(F.RASP_INCL = 1, AllTrim(F.RASP_CODE), "") + ;
                     AllTrim(Nvl(PR.CODE, Nvl(R.CODE, Space(6)))) + ;
                     AllTrim(Nvl(bC.CODE, Space(10))) + ;
                     AllTrim(F.PRG_CODE), 25) As BcrCode ;
                From fSbfBase F ;
                  Left Join fFuncCl  R  ON F.FKRR_RN  = R.RN  ;
                  Left Join fFuncCl  PR ON F.FKRPR_RN = PR.RN ;
                  Left Join bCeleSta bC ON F.RN_CSR   = bC.RN ;
                Where F.RN = ?AccBase.RN_TFIN ;
                Into ARRAY arrSbFCode

              If _Tally # 0
                cKBK = AllTrim(arrSbFCode[1])
              EndIf

              Select Code From bExpKind Where RN = ?AccSpec.RN_COMMON Into ARRAY arrVidR
              
              If _Tally # 0
                cKBK = m.cKBK + AllTrim(arrVidR[1])
              EndIf
            EndIf
        EndCase
      EndIf
    EndIf

    * Добавляем сумму в курсор curIDO (Исполнено обязательств)
    cKBK = PadR(m.cKBK, 17)
    If !Seek(m.cKBK + m.cVFO + curTurns1.KOSGU, "curIDO", "UNI")
      Insert Into curIDO (KBK, VFO, KOSGU) VALUES (m.cKBK, m.cVFO, curTurns1.KOSGU)
    EndIf
    Replace Sum With Sum + curTurns1.Summ In curIDO
  EndScan

  USE In curTurns1
EndScan

CurClose("curAcc201;crsAnOrg;cur4011_171")

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*  Подсчёт сумм: Исполнение расходов по балансовым счетам 208* *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsFormBal208

Local cJoinAnD, cJoinAnK, cWhereKnt, i, s
Store "" To cJoinAnD, cJoinAnK, cWhereKnt

* Выборка счетов
*= MakeCurAcc("208", "AScan(arrStr208, SubStr(AccBase.Account, " + LTrim(Str(m.nInitPos + 3)) + ", 2)) # 0")
= MakeCurAcc("208")

* Аналитика для БУ
If !GetAnOrg("curAcc208")
  Return
EndIf

Select curAcc208
Index On RN Tag RN

* Аналитика для БУ
If m.lOrgPO
  For m.i = 1 To 5
    s = Str(m.i, 1)
    cJoinAnD = m.cJoinAnD + "Left Join crsAnOrg A" + m.s + " On S.RN_DB_A" + m.s + " = A" + m.s + ".RN "
  Next
  cJoinAnK  = StrTran(m.cJoinAnD, "_DB_", "_KR_")
  cWhereKnt = " And (!IsNull(A1.RN) Or !IsNull(A2.RN) Or !IsNull(A3.RN) Or !IsNull(A4.RN) Or !IsNull(A5.RN))"
EndIf

* Отбираем нужные обороты
Select A.RN, A.Account, S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
       PadR(LTrim(Nvl(GU.SAccount, Iif(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)) = 0, "", arrStrKOSGU(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)))))), 3) As KOSGU, ;
       S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec   S On B.RN = S.Master_RN ;
    Inner Join curAcc208 A On S.RN_DB = A.RN ;
    Inner Join AccBase   C On S.RN_KR = C.RN ;
    Left  Join AccSpec  GU On S.RN_DB_A&cAnLevel4 = GU.RN ;
    &cJoinAnD ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And SubStr(C.Account, ?m.nInitPos, 5) = '21003' ;
UNION ALL ;
Select A.RN, A.Account, S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
       PadR(LTrim(Nvl(GU.SAccount, Iif(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)) = 0, "", arrStrKOSGU(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)))))), 3) As KOSGU, ;
       -S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec   S On B.RN = S.Master_RN ;
    Inner Join curAcc208 A On S.RN_KR = A.RN ;
    Inner Join AccBase   C On S.RN_DB = C.RN ;
    Left  Join AccSpec  GU On S.RN_KR_A&cAnLevel4 = GU.RN ;
    &cJoinAnK ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And SubStr(C.Account, ?m.nInitPos, 5) = '21003' ;
  Into CURSOR curTurns1

CurClose("curAcc208;crsAnOrg")

* Группируем и заполняем КБК и добавляем суммы в курсор curIDO (Исполнено обязательств)
FillKBKandPutSumm3()

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Подсчёт сумм: Некассовые операции                        *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsNKO

Local cWhereKnt, cJoinAnD, cJoinAnK
Store "" To cWhereKnt, cJoinAnD, cJoinAnK

* Выборка счетов
*= MakeCurAcc("302", "AScan(arrStr302, SubStr(AccBase.Account, " + LTrim(Str(m.nInitPos + 3)) + ", 2)) # 0")
= MakeCurAcc("302")
= MakeCurAcc("30403")
*= MakeCurAcc("208", "AScan(arrStr208, SubStr(AccBase.Account, " + LTrim(Str(m.nInitPos + 3)) + ", 2)) # 0")
= MakeCurAcc("208")

* Аналитика для БУ
If m.lOrgPO
  Select S.RN, S.Master_RN ;
    From curAcc302 A ;
      Inner Join AccSpec S On A.RN = S.Master_RN ;
      Inner Join OrgBase   On S.RN_TOrg = OrgBase.RN ;
    Where &cWhereOrg And S.Level = A.Org_Level ;
  Union ALL ;
  Select S.RN, S.Master_RN ;
    From curAcc30403 A ;
      Inner Join AccSpec S On A.RN = S.Master_RN ;
      Inner Join OrgBase   On S.RN_TOrg = OrgBase.RN ;
    Where &cWhereOrg And S.Level = A.Org_Level ;
  Union ALL ;
  Select S.RN, S.Master_RN ;
    From curAcc208 A ;
      Inner Join AccSpec S On A.RN = S.Master_RN ;
      Inner Join OrgBase   On S.RN_TOrg = OrgBase.RN ;
    Where &cWhereOrg And S.Level = A.Org_Level ;
    Into CURSOR crsAnOrg

  If _Tally = 0
    CurClose("curAcc302;curAcc30403;curAcc208;crsAnOrg")
    Return
  EndIf

  Select * From curAcc302   Where RN In (Select Master_RN From crsAnOrg) Into CURSOR curAcc302
  Select * From curAcc30403 Where RN In (Select Master_RN From crsAnOrg) Into CURSOR curAcc30403
  Select * From curAcc208   Where RN In (Select Master_RN From crsAnOrg) Into CURSOR curAcc208

  Select RN From crsAnOrg Into CURSOR crsAnOrg
  Index On RN Tag RN

  cJoinAnD  = "Left Join crsAnOrg A1 On S.RN_DB_A1 = A1.RN " ;
            + "Left Join crsAnOrg A2 On S.RN_DB_A2 = A2.RN " ;
            + "Left Join crsAnOrg A3 On S.RN_DB_A3 = A3.RN " ;
            + "Left Join crsAnOrg A4 On S.RN_DB_A4 = A4.RN " ;
            + "Left Join crsAnOrg A5 On S.RN_DB_A5 = A5.RN "
  cJoinAnK  = StrTran(m.cJoinAnD, "_DB_", "_KR_")
  cWhereKnt = "And (!IsNull(A1.RN) Or !IsNull(A2.RN) Or !IsNull(A3.RN) Or !IsNull(A4.RN) Or !IsNull(A5.RN)) "
EndIf

Select curAcc302
Index On RN Tag RN

Select curAcc30403
Index On RN Tag RN

Select curAcc208
Index On RN Tag RN

* Отбираем нужные обороты
Select A.RN, A.Account, S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
       PadR(LTrim(Nvl(GU.SAccount, Iif(AScan(arrStr302, SubStr(A.Account, ?m.nInitPos + 3, 2)) = 0, "", arrStrKOSGU(AScan(arrStr302, SubStr(A.Account, ?m.nInitPos + 3, 2)))))), 3) As KOSGU, ;
       S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec   S On B.RN = S.Master_RN ;
    Inner Join curAcc302 A On S.RN_DB = A.RN ;
    Inner Join AccBase   C On S.RN_KR = C.RN ;
    Left  Join AccSpec  GU On S.RN_DB_A&cAnLevel4 = GU.RN ;
    &cJoinAnD ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And (InList(SubStr(C.Account, ?m.nInitPos, 4), '2052', '2053', '2054', '2055', '2056', '2057', '2058', '2094') Or InList(SubStr(C.Account, ?m.nInitPos, 5), '30406', '21005')) ;
UNION ALL ;
Select A.RN, A.Account, S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
       PadR(LTrim(Nvl(GU.SAccount, Iif(AScan(arrStr302, SubStr(A.Account, ?m.nInitPos + 3, 2)) = 0, "", arrStrKOSGU(AScan(arrStr302, SubStr(A.Account, ?m.nInitPos + 3, 2)))))), 3) As KOSGU, ;
       -S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec   S On B.RN = S.Master_RN ;
    Inner Join curAcc302 A On S.RN_KR = A.RN ;
    Inner Join AccBase   C On S.RN_DB = C.RN ;
    Left  Join AccSpec  GU On S.RN_KR_A&cAnLevel4 = GU.RN ;
    &cJoinAnK ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And (InList(SubStr(C.Account, ?m.nInitPos, 4), '2052', '2053', '2054', '2055', '2056', '2057', '2058', '2094') Or InList(SubStr(C.Account, ?m.nInitPos, 5), '30406', '21005')) ;
UNION ALL ;
Select A.RN, A.Account, S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
       "211" As KOSGU, S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec     S On B.RN = S.Master_RN ;
    Inner Join curAcc30403 A On S.RN_DB = A.RN ;
    Inner Join AccBase     C On S.RN_KR = C.RN ;
    &cJoinAnD ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And (InList(SubStr(C.Account, ?m.nInitPos, 3), '208', '209') Or SubStr(C.Account, ?m.nInitPos, 5) = '30406') ;
UNION ALL ;
Select A.RN, A.Account, S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
       "211" As KOSGU, -S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec     S On B.RN = S.Master_RN ;
    Inner Join curAcc30403 A On S.RN_KR = A.RN ;
    Inner Join AccBase     C On S.RN_DB = C.RN ;
    &cJoinAnK ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And (InList(SubStr(C.Account, ?m.nInitPos, 3), '208', '209') Or SubStr(C.Account, ?m.nInitPos, 5) = '30406') ;
UNION ALL ;
Select A.RN, A.Account, S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
       PadR(LTrim(Nvl(GU.SAccount, Iif(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)) = 0, "", arrStrKOSGU(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)))))), 3) As KOSGU, ;
       S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec   S On B.RN = S.Master_RN ;
    Inner Join curAcc208 A On S.RN_DB = A.RN ;
    Inner Join AccBase   C On S.RN_KR = C.RN ;
    Left  Join AccSpec  GU On S.RN_DB_A&cAnLevel4 = GU.RN ;
    &cJoinAnD ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And SubStr(C.Account, ?m.nInitPos, 5) = '30403' ;
UNION ALL ;
Select A.RN, A.Account, S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
       PadR(LTrim(Nvl(GU.SAccount, Iif(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)) = 0, "", arrStrKOSGU(AScan(arrStr208, SubStr(A.Account, ?m.nInitPos + 3, 2)))))), 3) As KOSGU, ;
       -S.SUM_EQUAL As Summ ;
  From EopBase B ;
    Inner Join EopSpec   S On B.RN = S.Master_RN ;
    Inner Join curAcc208 A On S.RN_KR = A.RN ;
    Inner Join AccBase   C On S.RN_DB = C.RN ;
    Left  Join AccSpec  GU On S.RN_KR_A&cAnLevel4 = GU.RN ;
    &cJoinAnK ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark &cWhereKnt ;
    And SubStr(C.Account, ?m.nInitPos, 5) = '30403' ;
  Into CURSOR curTurns1

CurClose("curAcc302;curAcc30403;curAcc208;crsAnOrg")

* Группируем и заполняем КБК и добавляем суммы в курсор curIDO (Исполнено обязательств)
FillKBKandPutSumm3()

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Подсчёт сумм: Принято обязательств                       *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsOblig(cSubs, cCursor, lRest)

Local cJoinAnK, cJoinAnD, cJoinAn, cLevel, dDate1, dDate2
Store "" To cJoinAnK, cJoinAnD, cJoinAn

* Выборка счетов
= MakeCurAcc(m.cSubs, "AT('8', AccBase.SMETA_AN) # 0", "curAccOblig")

* Аналитика для БУ
If !GetAnOrg("curAccOblig")
  Return
EndIf

Select curAccOblig
Scan For Seek(RN, "AccBase", "RN")
  * Аналитика для БУ
  If m.lOrgPO
    cJoinAnK = "Inner Join crsAnOrg AO On S.RN_KR_A" + Str(curAccOblig.Org_Level, 1) + " = AO.RN "
  EndIf

  * КОСГУ
  cLevel = Str(curAccOblig.KOSGU_Level, 1)
  
  If m.lRest
    * Остатки на начало
    cJoinAnD = StrTran(m.cJoinAnK, "_KR_", "_DB_")
    cJoinAn  = StrTran(m.cJoinAnK, "_KR_", "_AC_")
    dDate1   = DOX(m.dDateBegin, 3)
    dDate2   = m.dDateBegin - 1

    Select S.RN_AC_A1 As RN_AN1, S.RN_AC_A2 As RN_AN2, S.RN_AC_A3 As RN_AN3, S.RN_AC_A4 As RN_AN4, S.RN_AC_A5 As RN_AN5, ;
           PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUMM_KR_EQUAL - S.SUMM_DB_EQUAL As Summ ;
      From AcRest B ;
        Inner Join AcAnRest S On B.RN = S.Master_RN ;
        Inner Join AccSpec GU On S.RN_AC_A&cLevel = GU.RN ;
        &cJoinAn ;
      Where B.Date_Rest = ?m.dDate1 And B.RN_ACCOUNT = ?curAccOblig.RN ;
      Into CURSOR curTurns1

    If m.dDate1 # m.dDateBegin
      Select * From curTurns1 ;
      UNION ALL ;
      Select S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
             PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
        From EopBase B ;
          Inner Join EopSpec S  On B.RN = S.Master_RN ;
          Inner Join AccSpec GU On S.RN_KR_A&cLevel = GU.RN ;
          &cJoinAnK ;
        Where Between(B.Date_EOP, ?m.dDate1, ?m.dDate2) And S.RN_KR = ?curAccOblig.RN ;
      UNION ALL ;
      Select S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
             PadR(LTrim(GU.SAccount), 3) As KOSGU, -S.SUM_EQUAL As Summ ;
        From EopBase B ;
          Inner Join EopSpec S  On B.RN = S.Master_RN ;
          Inner Join AccSpec GU On S.RN_DB_A&cLevel = GU.RN ;
          &cJoinAnK ;
        Where Between(B.Date_EOP, ?m.dDate1, ?m.dDate2) And S.RN_DB = ?curAccOblig.RN ;
        Into CURSOR curTurns1
    EndIf
  Else
    * Отбираем нужные обороты
    Select S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
           PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
      From EopBase B ;
        Inner Join EopSpec S  On B.RN = S.Master_RN ;
        Inner Join AccSpec GU On S.RN_KR_A&cLevel = GU.RN ;
        &cJoinAnK ;
      Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) And S.RN_KR = ?curAccOblig.RN ;
      Into CURSOR curTurns1
  EndIf

  * Группируем и заполняем КБК, добавляем суммы в рабочий курсор
  FillKBKandPutSumm2(m.cCursor)
EndScan

USE In curAccOblig

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Подсчёт сумм: Утверждено плановых назначений             *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsUtv

Local cJoinAnD, cJoinAnK, cLevel, cWhereKosGU
Store "" To cJoinAnD, cJoinAnK

* Выборка счетов
= MakeCurAcc("5041", "AT('8', AccBase.SMETA_AN) # 0")

* Аналитика для БУ
If !GetAnOrg("curAcc5041")
  Return
EndIf

* Отбор проводок по КОСГУ
cWhereKosGU = " And (Like('2*', AllTrim(GU.SAccount)) Or Like('3*', AllTrim(GU.SAccount)) Or Like('5*', AllTrim(GU.SAccount)) Or Like('8*', AllTrim(GU.SAccount)))"

Select curAcc5041
Scan For Seek(RN, "AccBase", "RN")
  * Аналитика для БУ
  If m.lOrgPO
    cJoinAnD = "Inner Join crsAnOrg AO On S.RN_DB_A" + Str(curAcc5041.Org_Level, 1) + " = AO.RN "
    cJoinAnK = StrTran(m.cJoinAnD, "_DB_", "_KR_")
  EndIf

  * КОСГУ
  cLevel = Str(curAcc5041.KOSGU_Level, 1)
  
  * Отбираем нужные обороты
  Select S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_DB_A&cLevel = GU.RN ;
      &cJoinAnD ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark And S.RN_DB = ?curAcc5041.RN &cWhereKosGU ;
  UNION ALL ;
  Select S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, -S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_KR_A&cLevel = GU.RN ;
      &cJoinAnK ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereMark And S.RN_KR = ?curAcc5041.RN &cWhereKosGU ;
    Into CURSOR curTurns1

  * Группируем и заполняем КБК, добавляем суммы в рабочий курсор
  FillKBKandPutSumm2("curUtv")
EndScan

USE In curAcc5041

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Подсчёт сумм: Принимаемые обязательства                  *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetTurnsEconom

Local cJoinAnD, cJoinAnK, cLevel
Store "" To cJoinAnD, cJoinAnK

* Выборка счетов
= MakeCurAcc("502?7", "AT('8', AccBase.SMETA_AN) # 0", "curAcc502x7")

* Аналитика для БУ
If !GetAnOrg("curAcc502x7")
  Return
EndIf

Select curAcc502x7
Scan For Seek(RN, "AccBase", "RN")
  * Аналитика для БУ
  If m.lOrgPO
    cJoinAnD = "Inner Join crsAnOrg AO On S.RN_DB_A" + Str(curAcc502x7.Org_Level, 1) + " = AO.RN "
    cJoinAnK = StrTran(m.cJoinAnD, "_DB_", "_KR_")
  EndIf

  * КОСГУ
  cLevel = Str(curAcc502x7.KOSGU_Level, 1)
  
  * Отбираем обороты - Колонка 2
  Select S.RN_KR_A1 As RN_AN1, S.RN_KR_A2 As RN_AN2, S.RN_KR_A3 As RN_AN3, S.RN_KR_A4 As RN_AN4, S.RN_KR_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_KR_A&cLevel = GU.RN ;
      &cJoinAnK ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) And S.RN_KR = ?curAcc502x7.RN ;
    Into CURSOR curTurns1

  * Группируем и заполняем КБК, добавляем суммы в рабочий курсор
  FillKBKandPutSumm2("curSpec4", 2)

  * Отбираем обороты - Колонка 3
  Select S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_DB_A&cLevel = GU.RN ;
      Inner Join AccBase C  On S.RN_KR = C.RN ;
      &cJoinAnD ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) And S.RN_DB = ?curAcc502x7.RN ;
      And Like("502?1", SubStr(C.Account, ?m.nInitPos, 5)) ;
    Into CURSOR curTurns1

  * Группируем и заполняем КБК, добавляем суммы в рабочий курсор
  FillKBKandPutSumm2("curSpec4", 3)

  * Отбираем обороты - Колонка 4
  Select S.RN_DB_A1 As RN_AN1, S.RN_DB_A2 As RN_AN2, S.RN_DB_A3 As RN_AN3, S.RN_DB_A4 As RN_AN4, S.RN_DB_A5 As RN_AN5, ;
         PadR(LTrim(GU.SAccount), 3) As KOSGU, S.SUM_EQUAL As Summ ;
    From EopBase B ;
      Inner Join EopSpec S  On B.RN = S.Master_RN ;
      Inner Join AccSpec GU On S.RN_DB_A&cLevel = GU.RN ;
      Inner Join AccBase C  On S.RN_KR = C.RN ;
      &cJoinAnD ;
    Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dDateEnd) And S.RN_DB = ?curAcc502x7.RN ;
      And SubStr(C.Account, ?m.nInitPos, 3) = "506" ;
    Into CURSOR curTurns1

  * Группируем и заполняем КБК, добавляем суммы в рабочий курсор
  FillKBKandPutSumm2("curSpec4", 4)
EndScan

USE In curAcc502x7

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Выборка счетов                                           *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure MakeCurAcc(cAcc, cFilter, cCursor)

Local cWhereTmp

* Фильтр для счетов
cWhereTmp = m.cUsl18 + m.cWhereBal
If !Empty(m.cAcc)
  cWhereTmp = m.cWhereTmp + "Like('" + Replicate("?", m.nInitPos - 1) + m.cAcc + "*', AccBase.Account)"
EndIf
If !Empty(m.cFilter)
  cWhereTmp = m.cWhereTmp + Iif(Empty(m.cAcc), "", " And ") + m.cFilter
EndIf
RepG151.GetComRepPrm151("0503775", @lNoError, m.cWhereTmp)
cWhereTmp = m.cWhereTmp + " And m.lNoError"

* Курсор для отобранных счетов
If Empty(m.cCursor)
  cCursor = "curAcc" + m.cAcc
EndIf

Select AccBase.RN, AccBase.Account, ;
       AT("1", AccBase.Org_An)   As Org_Level, ;
       AT("8", AccBase.SMETA_AN) As KOSGU_Level ;
  From AccBase ;
    Left Join BalUnit On AccBase.RN_BalUnit = BalUnit.RN ;
  Where &cWhereTmp ;
  Into CURSOR (m.cCursor)

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Аналитика для БУ                                         *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetAnOrg(cCursor)

If m.lOrgPO
  Select S.RN, S.Master_RN ;
    From &cCursor A ;
      Inner Join AccSpec S On A.RN = S.Master_RN ;
      Inner Join OrgBase   On S.RN_TOrg = OrgBase.RN ;
    Where &cWhereOrg And S.Level = A.Org_Level ;
    Into CURSOR crsAnOrg

  If _Tally = 0
    CurClose(m.cCursor + ";crsAnOrg")
    Return .F.
  EndIf

  Select * From (cCursor) Where RN In (Select Master_RN From crsAnOrg) Into CURSOR (cCursor)

  Select RN From crsAnOrg Into CURSOR crsAnOrg
  Index On RN Tag RN
EndIf

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Заполнение КБК и перенос сумм в рабочий курсор           *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure FillKBKandPutSumm2(cCursor, nCol)

Local cVFO, cSbF, cKBK, cFld, cCol, cExp, lC34, cC34
lC34 = Type(m.cCursor + ".C34") = "C"

* Вид финансового обеспечения / Счёт
If Empty(m.nCol)
  cVFO = SubStr(AccBase.Account, m.nInitPos - 1, 1)
  cFld = "VFO"
  cCol = ""
  cExp = "curTurns3.KBK + m.cVFO + curTurns3.KOSGU" + Iif(m.lC34, " + curTurns3.C34", "")
Else
  cVFO = SubStr(AccBase.Account, m.nInitPos - 1, 6)
  cFld = "ACC"
  cCol = Str(m.nCol, 1)
  cExp = "m.cVFO + curTurns3.KOSGU + curTurns3.KBK"
EndIf

* Группируем и заполняем КБК
If m.nAccType = 1  && Размерность плана счетов - 26 символов
  cKBK = Left(AccBase.Account, 17)
  cC34 = Space(1)

  If m.lC34 And AccBase.TFin_Type = 1 And !Empty(AccBase.RN_TFIN) And Seek(AccBase.RN_TFIN, "curSbfTotal", "RN") And InList(Left(AllTrim(curSbfTotal.VidR), 2), "85", "83")
    cC34 = Iif(Left(AllTrim(curSbfTotal.VidR), 2) = "85", "3", "4")
  EndIf

  Select ?m.cKBK As KBK, KOSGU, m.cC34 As C34, Sum(Summ) As Summ ;
    From curTurns1 ;
    Group By 1, 2, 3 ;
    Into CURSOR curTurns3
Else                && Размерность плана счетов - 9 символов
  Select RN_AN1, RN_AN2, RN_AN3, RN_AN4, RN_AN5, KOSGU, ;
         Space(17) As KBK, Space(1) As C34, Sum(Summ) As Summ ;
    From curTurns1 ;
    Group By 1, 2, 3, 4, 5, 6 ;
    Into CURSOR curTurns2 READWRITE

  Scan
    cSbF = ""
    cKBK = GetOtherKBK("curTurns2", @cSbF)
    Replace KBK With m.cKBK In curTurns2
    If m.lC34 And !Empty(m.cSbF) And Seek(m.cSbF, "curSbfTotal", "RN") And InList(Left(AllTrim(curSbfTotal.VidR), 2), "85", "83")
      Replace C34 With Iif(Left(AllTrim(curSbfTotal.VidR), 2) = "85", "3", "4") In curTurns2
    EndIf
  EndScan

  Select KBK, KOSGU, C34, Sum(Summ) As Summ ;
    From curTurns2 ;
    Group By 1, 2, 3 ;
   Into CURSOR curTurns3
EndIf

CurClose("curTurns1;curTurns2")

* Добавляем суммы в курсор (cCursor)
Select curTurns3
Scan
  If !Seek(Evaluate(m.cExp), m.cCursor, "UNI")
    Insert Into (m.cCursor) (KBK, &cFld, KOSGU) VALUES (curTurns3.KBK, m.cVFO, curTurns3.KOSGU)
    If m.lC34
      Replace C34 With curTurns3.C34 In (m.cCursor)
    EndIf
  EndIf
  Replace Sum&cCol With Sum&cCol + curTurns3.Summ In (m.cCursor)
EndScan

USE In curTurns3

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Заполнение КБК и перенос сумм в рабочий курсор           *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure FillKBKandPutSumm3

* Группируем и заполняем КБК
If m.nAccType = 1   && Размерность плана счетов - 26 символов
  Select Left(Account, 17) As KBK, SubStr(Account, 18, 1) As VFO, KOSGU, Sum(Summ) As Summ ;
    From curTurns1 ;
    Group By 1, 2, 3 ;
    Into CURSOR curTurns3
Else                && Размерность плана счетов - 9 символов
  Select RN, RN_AN1, RN_AN2, RN_AN3, RN_AN4, RN_AN5, KOSGU, ;
         Space(17) As KBK, Left(Account, 1) As VFO, Sum(Summ) As Summ ;
    From curTurns1 ;
    Group By 1, 2, 3, 4, 5, 6, 7, 9 ;
    Into CURSOR curTurns2 READWRITE

  Replace ALL For Seek(RN, "AccBase", "RN") KBK With GetOtherKBK("curTurns2")

  Select KBK, VFO, KOSGU, Sum(Summ) As Summ ;
    From curTurns2 ;
    Group By 1, 2, 3 ;
    Into CURSOR curTurns3
EndIf

CurClose("curTurns1;curTurns2")

* Добавляем суммы в курсор curIDO (Исполнено обязательств)
Select curTurns3
Scan
  If !Seek(curTurns3.KBK + curTurns3.VFO + curTurns3.KOSGU, "curIDO", "UNI")
    Insert Into curIDO (KBK, VFO, KOSGU) VALUES (curTurns3.KBK, curTurns3.VFO, curTurns3.KOSGU)
  EndIf
  Replace Sum With Sum + curTurns3.Summ In curIDO
EndScan

USE In curTurns3

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Формирование показателя КБК для прочих счетов            *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetOtherKBK(cAlias, cSbF)

Local cKBK, cLev, cRN
cKBK = ""

If m.nAccType = 1   && Размерность плана счетов - 26 символов
  Return Left(AccBase.Account, 17)
Else              && Размерность плана счетов - 9 символов
  If AccBase.TFin_Type = 2 And AT('9', AccBase.SMETA_AN) # 0   && ШФ
    cLev = Str(AT('9', AccBase.SMETA_AN), 1)
    cRN  = Evaluate(m.cAlias + ".RN_AN" + m.cLev)
    If !Empty(m.cRN) And Seek(m.cRN, "AccSpec", "RN") And !Empty(AccSpec.RN_TFIN) And Seek(AccSpec.RN_TFIN, "curSbfTotal", "RN")
      cSbF = curSbfTotal.RN
      cKBK = curSbfTotal.BcrCode
    EndIf
  EndIf

  If Empty(m.cKBK) And AT("3", AccBase.ORG_AN) # 0             && КБК
    cLev = Str(AT("3", AccBase.ORG_AN), 1)
    cRN  = Evaluate(m.cAlias + ".RN_AN" + m.cLev)
    If !Empty(m.cRN) And Seek(m.cRN, "AccSpec", "RN") And !Empty(AccSpec.RN_KLSDOH) And Seek(AccSpec.RN_KLSDOH, "curKldRN", "RN")
      cKBK = curKldRN.Code
    EndIf
  EndIf
EndIf

Return PadR(m.cKBK, 17)

EndProc

]]></FPC_></MSE>
      <FPC_><![CDATA[*[VFP]
RepG151.GetOutS(.T.)
]]></FPC_>
    </печать>
  </отчет>
  <форма>
    <ид>f_0503775_33n_183n_2023</ид>
    <тип>XML</тип>
    <описание>
      <дополнительно>
        <desc_version>1.0</desc_version>
      </дополнительно>
      <VFP_свойство имя="Name">f_0503775</VFP_свойство>
      <VFP_свойство имя="Caption">Форма 0503775-33н_ред183н_2023</VFP_свойство>
      <VFP_свойство имя="Height">375</VFP_свойство>
      <VFP_свойство имя="Width">470</VFP_свойство>
      <VFP_метод имя="Valid"><![CDATA[LParam oThis, oThisform
Local oPage, c18, cSymb, nSymbPos, i

oPage = oThisForm.TPageMain.Page1

dSelDate = oPage.cntSelDate.RestDate.Value

If DOX(m.dSelDate, 4) < oPage.cntBalOpen.Text.Value
   =ExclMes("Дата расчета показателей вступительного баланса должна предшествовать или принадлежать отчетному периоду!")
   oThisForm.TPageMain.ActivePage = 1
   oPage.cntBalOpen.Text.SetFocus()
   Return .F.
EndIf

If !Empty(oPage.cntBalOpen.Text.Value) And Year(oPage.cntBalOpen.Text.Value) # Year(m.dSelDate)
   =ExclMes("Дата расчета показателей вступительного баланса и отчетный период должны относиться к одному году!")
   oThisForm.TPageMain.ActivePage = 1
   oPage.cntBalOpen.Text.SetFocus()
   Return .F.
EndIf

c18 = oPage.Txt18B1.Value  + oPage.Txt18B2.Value  + oPage.Txt18B3.Value  + oPage.Txt18B4.Value + ;
      oPage.Txt18B5.Value  + oPage.Txt18B6.Value  + oPage.Txt18B7.Value  + oPage.Txt18B8.Value + ;
      oPage.Txt18B9.Value  + oPage.Txt18B10.Value 

c18 = StrTran(m.c18, " ", "")

cUsl18 = ""
For m.i = 1 To Len(m.c18)
  cSymb  = SubStr(m.c18, m.i, 1)
  cUsl18 = m.cUsl18 + IIF(!Empty(m.cUsl18), ",'", "'") + m.cSymb + "'"
EndFor

nSymbPos = Iif(m.nAccType = 1, "18", "1")

* cUsl18 - строка с условиями отбора по мнемокоду счёта по маске 18-го (1-го для короткого плана счетов) символа
If !Empty(m.cUsl18)
  cUsl18 = "InList(SubStr(AccBase.Account, " + m.nSymbPos + ", 1), " + m.cUsl18 + ") And "
EndIf

cWhereOrg = oPage.OrgFrom.GetCond()
cWhereBal = oPage.Balunits.GetCond()
If !Empty(m.cWhereBal)
  cWhereBal = m.cWhereBal + " AND "
EndIf

cOrg      = oPage.OrgFrom.GetSaveValue()
cBalUnits = oPage.Balunits.GetSaveValue()

oPage = oThisForm.TPageMain.Page2

* без этого не всегда сохраняет последнее выбранное значение
cAccIDO = oPage.DicAccountIDO.GetSaveValue()

* Условия отбора по счетам, заданным вручную
cWhereAccIDO = oPage.DicAccountIDO.GetCond()

If oPage.ChkFormZabal.Value = 0 And oPage.aLevelDD.Value = oPage.aLevel4.Value
   =ExclMes("Уровень доп. аналитики классификации расходов для счетов денежных средств не может совпадать с уровнем аналитики кодов поступлений (выбытий) для счетов денежных средств!")
   oThisForm.TPageMain.ActivePage = 2
   oPage.aLevel4.SetFocus()
   Return .F.
EndIf

oPage = oThisForm.TPageMain.Page3

* Каталог для выгрузки
cUnlPath = oPage.Catalog.Text.Value
If !Empty(m.cUnlPath) And !Directory(m.cUnlPath, 1)
   =ExclMes("Каталог " + AllTrim(m.cUnlPath) + Chr(13) + "не существует!")
   oThisForm.TPageMain.ActivePage = 3
   oPage.Catalog.SetFocus()
   Return .F.
EndIf

cDicIsp = oPage.DicIsp.GetSaveValue()

Select F.RN, ;
       Nvl(bE.CODE, Space(8)) As VidR, ;
       PadR(Iif(F.RASP_INCL = 1, AllTrim(F.RASP_CODE), "") + ;
       AllTrim(Nvl(PR.CODE, Nvl(R.CODE, Space(6)))) + ;
       AllTrim(Nvl(bC.CODE, Space(10))) + ;
       AllTrim(F.PRG_CODE) + ;
       AllTrim(Nvl(bE.CODE, Space(8))), 33) As BcrCode ;
   From fSbfBase F ;
     Left Join fFuncCl  R  ON F.FKRR_RN  = R.RN  ;
     Left Join fFuncCl  PR ON F.FKRPR_RN = PR.RN ;
     Left Join bCeleSta bC ON F.RN_CSR   = bC.RN ;
     Left Join bExpKind bE ON F.RN_VidR  = bE.RN ;
  Into Cursor curSbfTotal

Index On RN Tag RN

If m.nAccType # 1
  Select B.RN, ;
         PadR(Iif(B.ADMIN_INCL = 1, AllTrim(Nvl(D.CODE, Space(4))), "") + ;
         AllTrim(Nvl(K.MNEMO, Space(8))) + ;
         AllTrim(Nvl(E.MNEMO, Space(2))) + ;
         AllTrim(Nvl(P.MNEMO, Space(7))) + ;
         Iif(B.ADMIN_INCL = 1, "", AllTrim(Nvl(C.MNEMO, Space(3)))), 21) As Code ;
     From BKlsDoh B ;
       Left Join fDirRec  D On B.ADMIN_RN   = D.RN ;
       Left Join PRF_KIND K On B.KIND_RN    = K.RN ;
       Left Join PRF_ELEM E On B.ELEMENT_RN = E.RN ;
       Left Join PRF_PROG P On B.PROGRAM_RN = P.RN ;
       Left Join PRF_ECLS C On B.ECONCL_RN  = C.RN ;
    Into Cursor curKldRN

  Index On RN Tag RN
EndIf
   ]]></VFP_метод>
      <VFP_метод имя="PostInit"><![CDATA[LParam oThis, oThisform
Local oPage
oPage = oThisForm.TPageMain.Page1
    
oPage.cntSelDate.InitThis(m.dSelDate)
oPage.OrgFrom.SetSaveValue(m.cOrg)
oPage.BalUnits.SetSaveValue(m.cBalUnits)

oPage = oThisForm.TPageMain.Page2

* Без AddToHistory первоначальное значение чистится при попытке выбора из списка
oPage.DicAccountIDO. AddToHistory("??????????????????з18*")
oPage.DicAccountIDO. SetSaveValue(m.cAccIDO)
oPage.ChkFormZabal.ValueChanged()
oPage.CmbMarkVPL.SetSource(UnitRN("EconOp"))
oPage.CmbMarkNOO.SetSource(UnitRn("EconOp"))

oPage = oThisForm.TPageMain.Page3
oPage.Catalog.Text.Value = m.cUnlPath
oPage.DicIsp.SetSaveValue(m.cDicIsp)
oPage.fldIspName.Value = m.cIspName
   ]]></VFP_метод>
      <элемент>
        <VFP_имя>Tbtndialog1</VFP_имя>
        <VFP_свойство имя="Left">195</VFP_свойство>
        <VFP_свойство имя="Top">338</VFP_свойство>
      </элемент>
        <элемент>
          <VFP_класс>TPageFrame</VFP_класс>
          <VFP_свойство имя="Name">TPageMain</VFP_свойство>
          <VFP_свойство имя="Height">335</VFP_свойство>
          <VFP_свойство имя="Width">470</VFP_свойство>
          <VFP_свойство имя="PageCount">3</VFP_свойство>
          <элемент>
            <VFP_имя>Page1</VFP_имя>
            <VFP_свойство имя="Caption">Параметры формирования</VFP_свойство>
            <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
            <VFP_свойство имя="FontSize">8</VFP_свойство>            
            <элемент>
              <VFP_класс>T3dShape</VFP_класс>
              <VFP_свойство имя="Height">290</VFP_свойство>
              <VFP_свойство имя="Left">10</VFP_свойство>
              <VFP_свойство имя="Top">10</VFP_свойство>
              <VFP_свойство имя="Width">450</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Параметры</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">5</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Дата расчета показателей вступительного баланса:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">25</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TdicDate</VFP_класс>
              <VFP_свойство имя="Name">cntBalOpen</VFP_свойство>
              <VFP_свойство имя="Left">355</VFP_свойство>
              <VFP_свойство имя="Top">20</VFP_свойство>
              <элемент>
                <VFP_имя>Text</VFP_имя>
                <VFP_свойство имя="ControlSource">dBalOpen</VFP_свойство>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Отчетный период:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">55</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>Month_year_m</VFP_класс>
              <VFP_свойство имя="Name">cntSelDate</VFP_свойство>
              <VFP_свойство имя="ControlSource">dSelDate</VFP_свойство>
              <VFP_свойство имя="Left">175</VFP_свойство>
              <VFP_свойство имя="Top">50</VFP_свойство>
              <элемент>
                <VFP_имя>SelYear</VFP_имя>
                <VFP_свойство имя="Left">180</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_имя>lbllYear</VFP_имя>
                <VFP_свойство имя="Left">250</VFP_свойство>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">85</VFP_свойство>
              <VFP_свойство имя="Caption">Учреждение:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TDicHist</VFP_класс>
              <VFP_свойство имя="Name">OrgFrom</VFP_свойство>
              <VFP_свойство имя="Left">175</VFP_свойство>
              <VFP_свойство имя="Top">80</VFP_свойство>
              <VFP_свойство имя="Width">275</VFP_свойство>
              <VFP_свойство имя="AreaName" тип="C">OrgBase</VFP_свойство>
              <VFP_свойство имя="DictName" тип="C">Agnt_bms</VFP_свойство>
              <VFP_свойство имя="RetField" тип="C">rmnemo_org</VFP_свойство>
               <VFP_свойство имя="HistoryName" тип="C">H_AGENTS775_183N_2023</VFP_свойство>
              <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
              <VFP_свойство имя="condfield" тип="C">orgbase.rmnemo_org</VFP_свойство>
              <VFP_свойство имя="condfieldrn" тип="C">orgbase.rn</VFP_свойство>
              <VFP_свойство имя="enablewildcards" тип="L">.T.</VFP_свойство>
              <элемент>
                <VFP_имя>DicTable</VFP_имя>
                <дополнительно>
                  <отложенная_инициализация/>
                </дополнительно>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Балансовая единица:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">115</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>S_balunits</VFP_класс>
              <VFP_свойство имя="Name">Balunits</VFP_свойство>
              <VFP_свойство имя="Left">175</VFP_свойство>
              <VFP_свойство имя="Top">110</VFP_свойство>
              <VFP_свойство имя="Width">275</VFP_свойство>
              <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
              <VFP_свойство имя="condfield" тип="C">balunit.mnemo</VFP_свойство>
              <VFP_свойство имя="condfieldrn" тип="C">balunit.rn</VFP_свойство>
              <VFP_свойство имя="enablewildcards" тип="L">.T.</VFP_свойство>
              <элемент>
                <VFP_имя>DicTable</VFP_имя>
                <дополнительно>
                  <отложенная_инициализация/>
                </дополнительно>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">145</VFP_свойство>
              <VFP_свойство имя="Caption">Вид финансового обеспечения:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">241</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B1</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B1</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">262</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B2</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B2</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">283</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B3</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B3</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">304</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B4</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B4</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">325</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B5</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B5</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">346</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B6</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B6</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">367</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B7</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B7</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">388</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B8</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B8</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">409</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B9</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B9</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">430</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">16</VFP_свойство>
              <VFP_свойство имя="InputMask">N</VFP_свойство>
              <VFP_свойство имя="ControlSource">cTxt18B10</VFP_свойство>
              <VFP_свойство имя="Name">Txt18B10</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">175</VFP_свойство>
              <VFP_свойство имя="Caption">Размерность плана счетов:</VFP_свойство>
            </элемент>            
            <элемент>
              <VFP_класс>TComboBox</VFP_класс>
              <VFP_свойство имя="Left">330</VFP_свойство>
              <VFP_свойство имя="Name">Cmb_AccType</VFP_свойство>
              <VFP_свойство имя="Top">170</VFP_свойство>
              <VFP_свойство имя="Height">23</VFP_свойство>
              <VFP_свойство имя="Width">120</VFP_свойство>
              <VFP_свойство имя="BoundTo">2</VFP_свойство>
              <VFP_свойство имя="RowSourceType">1</VFP_свойство>
              <VFP_свойство имя="RowSource">26 символов,9 символов</VFP_свойство>
              <VFP_свойство имя="Style">2</VFP_свойство>
              <VFP_свойство имя="ControlSource">nAccType</VFP_свойство>
              <VFP_свойство имя="delenabled">.F.</VFP_свойство>
              <VFP_свойство имя="notempty">.T.</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TCheckBox</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">200</VFP_свойство>
              <VFP_свойство имя="WordWrap">.T.</VFP_свойство>
              <VFP_свойство имя="Width">430</VFP_свойство>
              <VFP_свойство имя="PicturePosition">0</VFP_свойство>
              <VFP_свойство имя="ControlSource">nChk50222</VFP_свойство>
              <VFP_свойство имя="Name">Chk50222</VFP_свойство>
              <VFP_свойство имя="Caption">Учитывать кредитовые остатки по счетам 50222 для расчета показателей по принятым бюджетным обязательствам</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">235</VFP_свойство>
              <VFP_свойство имя="Caption">Предельный размер неисполненных обязательств</VFP_свойство>
            </элемент>            
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">248</VFP_свойство>
              <VFP_свойство имя="Caption">(раздел 1):</VFP_свойство>
            </элемент>            
            <элемент>
              <VFP_класс>TTextSum</VFP_класс>
              <VFP_свойство имя="ControlSource">nSumLimit1</VFP_свойство>
              <VFP_свойство имя="Left">300</VFP_свойство>
              <VFP_свойство имя="Name">SumLimit1</VFP_свойство>
              <VFP_свойство имя="Top">235</VFP_свойство>
              <VFP_свойство имя="Width">150</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">265</VFP_свойство>
              <VFP_свойство имя="Caption">Предельный размер неисполненных денежных</VFP_свойство>
            </элемент>            
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">278</VFP_свойство>
              <VFP_свойство имя="Caption">обязательств (раздел 2):</VFP_свойство>
            </элемент>            
            <элемент>
              <VFP_класс>TTextSum</VFP_класс>
              <VFP_свойство имя="ControlSource">nSumLimit2</VFP_свойство>
              <VFP_свойство имя="Left">300</VFP_свойство>
              <VFP_свойство имя="Name">SumLimit2</VFP_свойство>
              <VFP_свойство имя="Top">265</VFP_свойство>
              <VFP_свойство имя="Width">150</VFP_свойство>
            </элемент>
          </элемент>
          <элемент>
            <VFP_имя>Page2</VFP_имя>
            <VFP_свойство имя="Caption">Счета</VFP_свойство>
            <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
            <VFP_свойство имя="FontSize">8</VFP_свойство>            
            <элемент>
              <VFP_класс>T3dShape</VFP_класс>
              <VFP_свойство имя="Height">130</VFP_свойство>
              <VFP_свойство имя="Left">10</VFP_свойство>
              <VFP_свойство имя="Top">10</VFP_свойство>
              <VFP_свойство имя="Width">450</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Параметры</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">5</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">25</VFP_свойство>
              <VFP_свойство имя="Caption">Исполнение денежных обязательств:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>S_Account</VFP_класс>
              <VFP_свойство имя="Left">220</VFP_свойство>
              <VFP_свойство имя="Width">230</VFP_свойство>
              <VFP_свойство имя="Name">DicAccountIDO</VFP_свойство>
              <VFP_свойство имя="Top">20</VFP_свойство>
              <VFP_свойство имя="HistoryName" тип="C">H_ACCIDO_775_183N_2023</VFP_свойство>
              <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
              <VFP_свойство имя="condfield" тип="C">AccBase.Account</VFP_свойство>
              <VFP_свойство имя="condfieldrn" тип="C">AccBase.RN</VFP_свойство>
              <VFP_свойство имя="enablewildcards" тип="L">.T.</VFP_свойство>
              <VFP_свойство имя="runfromexe" тип="L">.T.</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TCheckBox</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">50</VFP_свойство>
              <VFP_свойство имя="ControlSource">nChkFormZabal</VFP_свойство>
              <VFP_свойство имя="Name">ChkFormZabal</VFP_свойство>
              <VFP_свойство имя="Caption">Формировать исполнение по забалансовым счетам</VFP_свойство>
              <VFP_метод имя="ValueChanged"><![CDATA[LParam oThis, oThisform
oThis.Parent.DicAccountIDO.ReceiveMessage(oThisForm, Iif(oThis.Value = 0, "ViewMode", "EditMode"))
Store oThis.Value = 0 To oThis.Parent.aLevelDD.Enabled, oThis.Parent.aLevel4.Enabled
]]></VFP_метод>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Уровень доп. аналитики классификации расходов для счетов денежных</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">75</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">средств:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">88</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TSpinner</VFP_класс>
              <VFP_свойство имя="ControlSource">nAnLevelDD</VFP_свойство>
              <VFP_свойство имя="Increment">1.00</VFP_свойство>
              <VFP_свойство имя="Inputmask">9</VFP_свойство>
              <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
              <VFP_свойство имя="KeyboardLowValue">0</VFP_свойство>
              <VFP_свойство имя="Left">410</VFP_свойство>
              <VFP_свойство имя="Name">aLevelDD</VFP_свойство>
              <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
              <VFP_свойство имя="SpinnerLowValue">0.00</VFP_свойство>
              <VFP_свойство имя="Top">75</VFP_свойство>
              <VFP_свойство имя="Width">40</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Уровень аналитики кодов поступлений (выбытий) для счетов денежных</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">105</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">средств:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">118</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TSpinner</VFP_класс>
              <VFP_свойство имя="ControlSource">nAnLevel4</VFP_свойство>
              <VFP_свойство имя="Increment">1.00</VFP_свойство>
              <VFP_свойство имя="Inputmask">9</VFP_свойство>
              <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
              <VFP_свойство имя="KeyboardLowValue">1</VFP_свойство>
              <VFP_свойство имя="Left">410</VFP_свойство>
              <VFP_свойство имя="Name">aLevel4</VFP_свойство>
              <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
              <VFP_свойство имя="SpinnerLowValue">1.00</VFP_свойство>
              <VFP_свойство имя="Top">105</VFP_свойство>
              <VFP_свойство имя="Width">40</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>T3dShape</VFP_класс>
              <VFP_свойство имя="Height">75</VFP_свойство>
              <VFP_свойство имя="Left">10</VFP_свойство>
              <VFP_свойство имя="Top">150</VFP_свойство>
              <VFP_свойство имя="Width">450</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Особые отметки</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">145</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">165</VFP_свойство>
              <VFP_свойство имя="Caption">Возвраты прошлых лет:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>mark</VFP_класс>
              <VFP_свойство имя="Left">295</VFP_свойство>
              <VFP_свойство имя="Top">160</VFP_свойство>
              <VFP_свойство имя="Width">155</VFP_свойство>
              <VFP_свойство имя="Name">CmbMarkVPL</VFP_свойство>
              <VFP_свойство имя="ControlSource">cRN_MarkVPL</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">195</VFP_свойство>
              <VFP_свойство имя="Caption">Не отражать в отчете:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>mark</VFP_класс>
              <VFP_свойство имя="Left">295</VFP_свойство>
              <VFP_свойство имя="Top">190</VFP_свойство>
              <VFP_свойство имя="Width">155</VFP_свойство>
              <VFP_свойство имя="Name">CmbMarkNOO</VFP_свойство>
              <VFP_свойство имя="ControlSource">cRN_MarkNOO</VFP_свойство>
            </элемент>
          </элемент>
          <элемент>
            <VFP_имя>Page3</VFP_имя>
            <VFP_свойство имя="Caption">Параметры выгрузки</VFP_свойство>
            <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
            <VFP_свойство имя="FontSize">8</VFP_свойство>
            <элемент>
              <VFP_класс>T3dShape</VFP_класс>
              <VFP_свойство имя="Height">165</VFP_свойство>
              <VFP_свойство имя="Left">10</VFP_свойство>
              <VFP_свойство имя="Top">10</VFP_свойство>
              <VFP_свойство имя="Width">450</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">5</VFP_свойство>
              <VFP_свойство имя="Caption">Параметры</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Каталог:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">25</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TDirSelect</VFP_класс>
              <VFP_свойство имя="Name">Catalog</VFP_свойство>
              <VFP_свойство имя="Left">80</VFP_свойство>
              <VFP_свойство имя="Top">20</VFP_свойство>
              <VFP_свойство имя="Width">370</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">ИСТ:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">55</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">390</VFP_свойство>
              <VFP_свойство имя="Top">50</VFP_свойство>
              <VFP_свойство имя="Width">60</VFP_свойство>
              <VFP_свойство имя="MaxLength">3</VFP_свойство>
              <VFP_свойство имя="ControlSource">cIST</VFP_свойство>
              <VFP_свойство имя="Name">IST</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Исполнитель:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">85</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TDicHist</VFP_класс>
              <VFP_метод имя="AddUpdate"><![CDATA[LParam oThis, oThisForm
= CurOpen("OrgBase,Person")

If !Empty(oThisForm.TPageMain.Page3.dicIsp.Value)
  = Seek(oThisForm.TPageMain.Page3.dicIsp.Value, "OrgBase", "RN")
  If OrgBase.Type # '2'
    ErrMes("Выбранный контрагент не является физическим лицом.")
    oThisForm.TPageMain.Page3.dicIsp.Clear()
  Else    
    = Seek(oThisForm.TPageMain.Page3.dicIsp.Value, "Person", "RN")
    oThisForm.TPageMain.Page3.fldIspName.Value = AllTrim(Person.SURNAME) + " " + Left(AllTrim(Person.FIRSTNAME), 1) + "." + Left(AllTrim(Person.SECONDNAME), 1) + "."
  ENDIF
EndIf
]]></VFP_метод>
              <VFP_свойство имя="Name">dicIsp</VFP_свойство>
              <VFP_свойство имя="Left">200</VFP_свойство>
              <VFP_свойство имя="Top">80</VFP_свойство>
              <VFP_свойство имя="Width">250</VFP_свойство>
              <VFP_свойство имя="AreaName" тип="C">OrgBase</VFP_свойство>
              <VFP_свойство имя="DictName" тип="C">Agnt_bms</VFP_свойство>
              <VFP_свойство имя="RetField" тип="C">rmnemo_org</VFP_свойство>
              <VFP_свойство имя="HistoryName" тип="C">H_AgentIsp725_172N_2015</VFP_свойство>
              <VFP_свойство имя="filter">orgbase.type='2'</VFP_свойство>
              <элемент>
                <VFP_имя>DicTable</VFP_имя>
                <дополнительно>
                  <отложенная_инициализация/>
                </дополнительно>
              </элемент>                
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">ФИО:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">115</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">200</VFP_свойство>
              <VFP_свойство имя="Top">110</VFP_свойство>
              <VFP_свойство имя="Width">250</VFP_свойство>
              <VFP_свойство имя="ControlSource">cIspName</VFP_свойство>
              <VFP_свойство имя="Name">fldIspName</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Телефон:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">145</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">200</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">250</VFP_свойство>
              <VFP_свойство имя="ControlSource">cIspTel</VFP_свойство>
              <VFP_свойство имя="Name">fldIspTel</VFP_свойство>
            </элемент>
          </элемент>
        </элемент>
    </описание>
  </форма>
</Модуль>
