<?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">
  <интерфейс>
    <отчет>
      <наименование>Форма 0503766-33н_ред78н_2022</наименование>
      <код_раздела>Reports5n</код_раздела>
      <номер_код>f0503766_78n_2022</номер_код>
      <шаблон>
        <тип>MSE</тип>
        <мнемокод>ar_form0503766_78n_2022</мнемокод>
        <файл>Форма0503766_33н_ред78н_2022.xlt</файл>
      </шаблон>
      <!--Отчет формируется по хозяйственным операциям за период-->
    </отчет>
  </интерфейс>
  <отчет>
    <реализует>f0503766_78n_2022</реализует>
      <дополнительно>
      <запомнить_переменные>
        <список_переменных>dBalOpen;dSelDate;dReoDate;cOrg;cRN_Found;nSumDiffMore;nPercentFewer;nPercentOver;cRN_MarkVPL;cRN_MarkNOO;nAnLevel5;nAnLevel4;nAnLevelDD;nAnLevelSC;cVFO;cBalUnits;nAccType;cUnlPath;cIST;cDicIsp;cIspName;cIspTel</список_переменных>
        <мемофайл>ar_form0503766_33n_78n_2022;ar_form0503766_33n_292n_2021;ar_form0503766_33n_292n_2020;ar_form0503737_33n_11n_2020</мемофайл>
      </запомнить_переменные>
      </дополнительно>
    <переменные>
      <переменная>
        <имя>dBalOpen</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата расчета показателей вступительного баланса-->
      </переменная>
      <переменная>
        <имя>dSelDate</имя>
        <начальное_значение>oSystem.Date</начальное_значение>
        <!--Отчетный период-->
      </переменная>
      <переменная>
        <имя>dReoDate</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата реорганизации-->
      </переменная>
      <переменная>
        <имя>dDateBegin</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата С-->
      </переменная>
      <переменная>
        <имя>dDateEnd</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата По-->
      </переменная>
      <переменная>
        <имя>cOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учреждение-->
      </переменная>
      <переменная>
        <имя>cWhereKontragent</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по контрагентам-->
      </переменная>
      <переменная>
        <имя>cRN_Found</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учредитель-->
      </переменная>
      <переменная>
        <имя>nSumDiffMore</имя>
        <начальное_значение>0</начальное_значение>
        <!--Отражать показатели с суммой отклонения более-->
      </переменная>
      <переменная>
        <имя>nPercentFewer</имя>
        <начальное_значение>95</начальное_значение>
        <!--Отражать показатели с процентом исполнения менее-->
      </переменная>
      <переменная>
        <имя>nPercentOver</имя>
        <начальное_значение>0</начальное_значение>
        <!--Отражать показатели с процентом исполнения более-->
      </переменная>
      <переменная>
        <имя>cRN_MarkVPL</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Возвраты прошлых лет)-->
      </переменная>
      <переменная>
        <имя>cRN_MarkNOO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Не отражать в отчете)-->
      </переменная>
      <переменная>
        <имя>nAnLevel5</имя>
        <начальное_значение>5</начальное_значение>
        <!--Уровень аналитики кодов поступлений (выбытий) для счетов "50410", "30404", "40110"-->
      </переменная>
      <переменная>
        <имя>nAnLevel4</имя>
        <начальное_значение>4</начальное_значение>
        <!--Уровень аналитики кодов поступлений (выбытий) для счетов денежных средств-->
      </переменная>
      <переменная>
        <имя>nAnLevelDD</имя>
        <начальное_значение>0</начальное_значение>
        <!--Уровень доп. аналитики классификации расходов для счетов денежных средств-->
      </переменная>
      <переменная>
        <имя>nAnLevelSC</имя>
        <начальное_значение>3</начальное_значение>
        <!--Уровень аналитики кода цели, присвоенного при предоставлении целевых субсидий-->
      </переменная>
      <переменная>
        <имя>cVFO</имя>
        <начальное_значение>"5"</начальное_значение>
        <!--Вид финансового обеспечения (деятельности)-->
      </переменная>
      <переменная>
        <имя>arrVFO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Массив видов финансового обеспечения-->
      </переменная>
      <переменная>
        <имя>cBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Балансовые единицы-->
      </переменная>
      <переменная>
        <имя>cWhereBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по балансовым единицам-->
      </переменная>
      <переменная>
        <имя>nAccType</имя>
        <начальное_значение>1</начальное_значение>
        <!--Размерность плана счетов-->
      </переменная>
      <переменная>
        <имя>cUnlPath</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки-->
      </переменная>
      <переменная>
        <имя>cFormCode</имя>
        <начальное_значение>""</начальное_значение>
        <!--Код формы-->
      </переменная>
      <переменная>
        <имя>cFileName</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки-->
      </переменная>
      <переменная>
        <имя>cIST</имя>
        <начальное_значение>""</начальное_значение>
        <!--ИСТ-->
      </переменная>
      <переменная>
        <имя>cDicIsp</имя>
        <начальное_значение>""</начальное_значение>
        <!--Исполнитель-->
      </переменная>
      <переменная>
        <имя>cIspName</имя>
        <начальное_значение>""</начальное_значение>
        <!--ФИО исполнителя-->
      </переменная>
      <переменная>
        <имя>cIspTel</имя>
        <начальное_значение>""</начальное_значение>
        <!--Телефон исполнителя-->
      </переменная>
      <переменная>
         <имя>glBK</имя>
        <начальное_значение>""</начальное_значение>
         <!--Глава по БК-->
      </переменная>
      <переменная>
        <имя>RepG151</имя>
        <начальное_значение>CreateObject("form0503buxrepd")</начальное_значение>
      </переменная>
      <переменная>
        <имя>dReportDate</имя>
        <начальное_значение>Date(2022,06,30)</начальное_значение>
      </переменная>
      <переменная>
        <имя>lNoError</имя>
        <начальное_значение>.T.</начальное_значение>
      </переменная>
      <переменная>
        <имя>cPos18</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>cPos19</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
    </переменные>
    <запуск_формы>
      <ид>f_0503766_33n_78n_2022</ид>
    </запуск_формы>
    <вычисление>
      <сообщение>Ждите, идет выборка данных ...</сообщение>
      <FPC_><![CDATA[*[VFP]
 Local cJoinAn_D, cJoinAn_K, cOrgPO_, cWhereNOO
 Local ARRAY arBP[1]

 dDateEnd   = Iif(Empty(m.dReoDate), DOX(m.dSelDate, 4), m.dReoDate)
 dDateBegin = Iif(Empty(m.dBalOpen), DOX(m.dDateEnd, 1), m.dBalOpen)

 cPos18 = Iif(m.nAccType = 1, "18", "1")
 cPos19 = Iif(m.nAccType = 1, "19", "2")

 * Отбор аналитических счетов по контрагенту
 Store   ""   To cJoinAn_D, cJoinAn_K
 Store ".T. " To cOrgPO_

 If !Empty(m.cWhereKontragent)
   Select AccSpec.RN ;
     From AccSpec ;
       Inner Join OrgBase On AccSpec.RN_TOrg = OrgBase.RN ;
     Where &cWhereKontragent ;
     Into CURSOR crsAccSpRN

   If _Tally = 0
      Store ".F. " To cOrgPO_
   Else
      Index On RN Tag RN
      cJoinAn_D = "Left Join crsAccSpRN A1 On S.RN_DB_A1 = A1.RN " ;
                + "Left Join crsAccSpRN A2 On S.RN_DB_A2 = A2.RN " ;
                + "Left Join crsAccSpRN A3 On S.RN_DB_A3 = A3.RN " ;
                + "Left Join crsAccSpRN A4 On S.RN_DB_A4 = A4.RN " ;
                + "Left Join crsAccSpRN A5 On S.RN_DB_A5 = A5.RN "
      cOrgPO_   = "(!IsNull(A1.RN) Or !IsNull(A2.RN) Or !IsNull(A3.RN) Or !IsNull(A4.RN) Or !IsNull(A5.RN)) "
      cJoinAn_K = StrTran(m.cJoinAn_D, "_DB_", "_KR_")
   EndIf
 EndIf

 * Глава по БК
 If !Empty(m.cWhereKontragent)
   Select fBudMG.Rasp_Code ;
     From OrgBase ;
       Inner Join fBudMG On OrgBase.RN = fBudMG.OrgBase_RN ;
     Where &cWhereKontragent And !Empty(fBudMG.Rasp_Code);
     Into ARRAY arBP
   *
   If _Tally > 0
     glBK = arBP(1)
   EndIf 
 EndIf 

 If Empty(m.glBK)
   Select Rasp_Code ;
     From fBudMG ;
     Where OrgBase_RN = ?oSystem.OwnerOrgRn And !Empty(Rasp_Code);
     Into ARRAY arBP
   *
   If _Tally > 0
     glBK = arBP(1)
   EndIf 
 EndIf

 * Особая отметка "Не отражать в отчете"
 cWhereNOO = Iif(Empty(m.cRN_MarkNOO), "", "And B.RN_MARK # '" + m.cRN_MarkNOO + "'")

 * обороты для всех ячеек
 Select S.*, B.Date_EOP, B.RN_MARK ;
    From EopBase B ;
      Inner JOIN EopSpec S ON B.RN = S.Master_RN ;
      &cJoinAn_D ;
    Where B.Date_EOP BETWEEN ?m.dDateBegin AND ?m.dDateEnd &cWhereNOO AND &cOrgPO_ ;
    Into CURSOR crEopSpecDB

 Select S.*, B.Date_EOP, B.RN_MARK ;
    From EopBase B ;
      Inner JOIN EopSpec S ON B.RN = S.Master_RN ;
      &cJoinAn_K ;
    Where B.Date_EOP BETWEEN ?m.dDateBegin AND ?m.dDateEnd &cWhereNOO AND &cOrgPO_ ;
    Into CURSOR crEopSpecKR

 CurClose("crsAccSpRN")
                     ]]></FPC_>
    </вычисление>
    <печать>
      <!--Печать отчета--><MSE>
        <!--Печать в MS Excel-->
        <FPC_><![CDATA[*[VFP]
*ON ERROR
* Переменные для заполнения отчета
Private cUnitExpKind, cUnitBKlsDoh, arrBKlsD, arrBKlsF, cVisual
Private ALL LIKE cAnLevel*, nSumUtv*, nSumIsp*
Store 0 To nSumUtvD, nSumIspD, nSumUtvD, nSumIspD, nSumUtvR, nSumIspR, nSumUtvF, nSumIspF, nSumUtvF520, nSumIspF520, nSumUtvF620, nSumIspF620
cUnitExpKind = UnitRN("ExpenseKinds")
cUnitBKlsDoh = UnitRN("BKlsDoh")

* Коды доходов
Dimension arrBKlsD[9], arrBKlsF[9]
arrBKlsD[1] = "120"
arrBKlsD[2] = "130"
arrBKlsD[3] = "140"
arrBKlsD[4] = "150"
arrBKlsD[5] = "410"
arrBKlsD[6] = "420"
arrBKlsD[7] = "430"
arrBKlsD[8] = "440"
arrBKlsD[9] = "180"

arrBKlsF[1] = "171"
arrBKlsF[2] = "520"
arrBKlsF[3] = "620"
arrBKlsF[4] = "540"
arrBKlsF[5] = "640"
arrBKlsF[6] = "710"
arrBKlsF[7] = "810"
arrBKlsF[8] = "720"
arrBKlsF[9] = "820"

* Уровень аналитики...
cAnLevel4  = Str(m.nAnLevel4, 1) 
cAnLevel5  = Str(m.nAnLevel5, 1)
cAnLevelSC = Str(m.nAnLevelSC, 1)
canLevelDD = Str(m.nAnLevelDD, 1)

* Условие отбора первичных строк таблицы
cVisual = ""
If m.nPercentFewer # 0
  cVisual = m.cVisual + " Or m.nPercent < m.nPercentFewer"
EndIf
 If m.nPercentOver # 0
   cVisual = m.cVisual + " Or m.nPercent > m.nPercentOver"
EndIf
cVisual = SubStr(m.cVisual, 5)

&& доходы
ProcD()

&& расходы
ProcR()

&& источники
ProcF()

CurClose("crEopSpecDB;crEopSpecKR")

** Объект для печати отчета
Local nI, oPrint
oPrint = objCaller.objExcelRep

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

* 1. Доходы учреждения
Select crsSpecD
nI = 0
Scan
  nI = m.nI + 1
  * Печать строки
  If m.nI > 1
    oPrint.InsertRange()
  EndIf
  oPrint.PrintRange("SpecD")
EndScan

* 2. Расходы учреждения
Select crsSpecR
nI = 0
Scan
  nI = m.nI + 1
  * Печать строки
  If m.nI > 1
    oPrint.InsertRange()
  EndIf
  oPrint.PrintRange("SpecR")
EndScan

* 3. Источники внутреннего финансирования дефицита средств учреждения
Select crsSpecF
nI = 0
Scan For !InList(BKlsCode, "720", "820")
  nI = m.nI + 1
  * Печать строки
  If m.nI > 1
    oPrint.InsertRange()
  EndIf
  oPrint.PrintRange("SpecF1")
EndScan

* 3. Источники внешнего финансирования дефицита средств учреждения
nI = 0
Scan For InList(BKlsCode, "720", "820")
  nI = m.nI + 1
  * Печать строки
  If m.nI > 1
    oPrint.InsertRange()
  EndIf
  oPrint.PrintRange("SpecF2")
EndScan

= MakeFileName()

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

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

oPrint = NULL

CurClose("crsSpecD;crsSpecR;crsSpecF")

Return


*********************************************************************
Procedure ProcD   && Доходы
*********************************************************************
Local cWhereMark

* Утверждено плановых назначений
GetCrsAcc("crsAcc5041", "5041")

* Исключаем возвраты прошлых лет
cWhereMark = Iif(Empty(m.cRN_MarkVPL), "", "Where S.RN_MARK # '" + m.cRN_MarkVPL + "'")

Select S.RN_DB As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc5041 A On S.RN_DB = A.RN ;
  &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc5041 A On S.RN_KR = A.RN ;
  &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6 ;
  Into CURSOR crsUtv_ READWRITE

Scan
  GetBKlsCode(1)
EndScan

Select BKlsCode, Sum(Sum) As SumUtv ;
  From crsUtv_ ;
  Group By 1 ;
  Into CURSOR crsUtv

CurClose("crsAcc5041,crsUtv_")

* Исполнено
GetCrsAcc("crsAcc201", "2011,2012,20134")

* Исключаем возвраты прошлых лет
cWhereMark = Iif(Empty(m.cRN_MarkVPL), "", "And S.RN_MARK # '" + m.cRN_MarkVPL + "'")

Select PadR(LTrim(An.SAccount), 3) As BKlsCode, Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A  On S.RN_DB = A.RN ;
    Inner Join AccSpec   An On S.RN_DB_A&cAnLevel4 = An.RN ;
    Inner Join AccBase   C  On S.RN_KR = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) # "21003" And SubStr(C.Account, &cPos19, 3) # "201" &cWhereMark ;
  Group By 1 ;
UNION ALL ;
Select PadR(LTrim(An.SAccount), 3) As BKlsCode, Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A  On S.RN_KR = A.RN ;
    Inner Join AccSpec   An On S.RN_KR_A&cAnLevel4 = An.RN ;
    Inner Join AccBase   C  On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) # "21003" And SubStr(C.Account, &cPos19, 3) # "201" &cWhereMark ;
  Group By 1 ;
  Into CURSOR crsIsp201 READWRITE

Scan
  CheckBKlsCode(BKlsCode, "D")
EndScan

GetCrsAcc("crsAccIsp1", "2052,2053,2054,2055,2056,2057,2058,2093,2094,2097,2098")
GetCrsAcc("crsAccIsp2", "2093,2094,2098")

Select S.RN_DB As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAccIsp1 A On S.RN_DB = A.RN ;
    Inner Join AccBase    C On S.RN_KR = C.RN ;
  Where (SubStr(C.Account, &cPos19, 3) = "302" Or SubStr(C.Account, &cPos19, 5) = "30406") &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAccIsp1 A On S.RN_KR = A.RN ;
    Inner Join AccBase    C On S.RN_DB = C.RN ;
  Where (SubStr(C.Account, &cPos19, 3) = "302" Or SubStr(C.Account, &cPos19, 5) = "30406") &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6 ;
UNION ALL ;
Select S.RN_DB As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAccIsp1 A On S.RN_DB = A.RN ;
    Inner Join AccBase    C On S.RN_KR = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30403" &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAccIsp2 A On S.RN_KR = A.RN ;
    Inner Join AccBase    C On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30403" &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6 ;
  Into CURSOR crsIsp2 READWRITE

Scan
  GetBKlsCode(1)
EndScan

*Объединяем данные по исполнению
Select * From crsIsp201 UNION ALL Select BKlsCode, Sum From crsIsp2 Into CURSOR crsIsp_

Select BKlsCode, Sum(Sum) As SumIsp ;
  From crsIsp_ ;
  Group By 1 ;
  Into CURSOR crsIsp

CurClose("crsAcc201,crsAccIsp1,crsAccIsp2,crsIsp201,crsIsp2,crsIsp_")

* Объединяем данные по доходам
Select BKlsCode, SumUtv, 000000000000000.00 As SumIsp From crsUtv ;
UNION ALL ;
Select BKlsCode, 000000000000000.00 As SumUtv, SumIsp From crsIsp ;
  Into CURSOR crsSpecD_

Select AScan(arrBKlsD, BKlsCode) As NPP, BKlsCode, Sum(SumUtv) As SumUtv, Sum(SumIsp) As SumIsp ;
  From crsSpecD_ ;
  Group By 2 ;
  Order By 1 ;
  Into CURSOR crsSpecD READWRITE

Sum SumUtv, SumIsp To nSumUtvD, nSumIspD

CurClose("crsUtv,crsIsp,crsSpecD_")

CheckSums("crsSpecD")

EndProc


*********************************************************************
Procedure ProcR   && Расходы
*********************************************************************
Local cWhereMark

* Утверждено плановых назначений
GetCrsAcc("crsAcc5041", "5041")

* Исключаем возвраты прошлых лет
cWhereMark = Iif(Empty(m.cRN_MarkVPL), "", "Where S.RN_MARK # '" + m.cRN_MarkVPL + "'")

Select S.RN_DB As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc5041 A   On S.RN_DB = A.RN ;
    Left  Join AccSpec    AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc5041 A   On S.RN_KR = A.RN ;
    Left  Join AccSpec    AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
  Into CURSOR crsUtv_ READWRITE

Scan
  GetVidRCode()
EndScan

Select VidRCode, AnCode, Sum(Sum) As SumUtv ;
  From crsUtv_ ;
  Group By 1, 2 ;
  Into CURSOR crsUtv

CurClose("crsAcc5041,crsUtv_")

* Исполнено
GetCrsAcc("crsAcc201", "20111,2012,20134")

* Исключаем возвраты прошлых лет
cWhereMark = Iif(Empty(m.cRN_MarkVPL), "", "And S.RN_MARK # '" + m.cRN_MarkVPL + "'")

Select S.RN_DB As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A   On S.RN_DB = A.RN ;
    Inner Join AccBase   C   On S.RN_KR = C.RN ;
    Left  Join AccSpec   AnC On S.RN_KR_A&cAnLevel5 = AnC.RN ;
    Left  Join AccSpec   AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where !InList(SubStr(C.Account, &cPos19, 5), "21003", "21005") ;
    And SubStr(C.Account, &cPos19, 3) # "201" ;
    And !(SubStr(C.Account, &cPos19, 5) = '40110' And Like('171*', AllTrim(AnC.SAccount))) ;
    &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A   On S.RN_KR = A.RN ;
    Inner Join AccBase   C   On S.RN_DB = C.RN ;
    Left  Join AccSpec   AnC On S.RN_DB_A&cAnLevel5 = AnC.RN ;
    Left  Join AccSpec   AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where !InList(SubStr(C.Account, &cPos19, 5), "21003", "21005") ;
    And SubStr(C.Account, &cPos19, 3) # "201" ;
    And !(SubStr(C.Account, &cPos19, 5) = '40110' And Like('171*', AllTrim(AnC.SAccount))) ;
    &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
  Into CURSOR crsIsp201 READWRITE

Scan
  If m.nAnLevelDD = 0
    GetVidRCode()
  Else
    GetVidRCodeDD()
  EndIf
EndScan

GetCrsAcc("crsAcc208", "208")
GetCrsAcc("crsAcc302", "302")
GetCrsAcc("crsAcc30403", "30403")
GetCrsAcc("crsAcc30406", "30406")

Select S.RN_DB As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc208 A   On S.RN_DB = A.RN ;
    Inner Join AccBase   C   On S.RN_KR = C.RN ;
    Left  Join AccSpec   AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where InList(SubStr(C.Account, &cPos19, 5), "21003", "30403") &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc208 A   On S.RN_KR = A.RN ;
    Inner Join AccBase   C   On S.RN_DB = C.RN ;
    Left  Join AccSpec   AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where InList(SubStr(C.Account, &cPos19, 5), "21003", "30403") &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_DB As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc302 A   On S.RN_DB = A.RN ;
    Inner Join AccBase   C   On S.RN_KR = C.RN ;
    Left  Join AccSpec   AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where (InList(SubStr(C.Account, &cPos19, 4), "2052", "2053", "2054", "2055", "2056", "2057", "2058", "2093", "2094") ;
      Or InList(SubStr(C.Account, &cPos19, 5), "30406", "21005")) &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc302 A   On S.RN_KR = A.RN ;
    Inner Join AccBase   C   On S.RN_DB = C.RN ;
    Left  Join AccSpec   AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where (InList(SubStr(C.Account, &cPos19, 4), "2052", "2053", "2054", "2055", "2056", "2057", "2058", "2093", "2094") ;
      Or InList(SubStr(C.Account, &cPos19, 5), "30406", "21005")) &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_DB As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc30403 A   On S.RN_DB = A.RN ;
    Inner Join AccBase     C   On S.RN_KR = C.RN ;
    Left  Join AccSpec     AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where (InList(SubStr(C.Account, &cPos19, 3), "208", "209") Or SubStr(C.Account, &cPos19, 5) = "30406") &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc30403 A   On S.RN_KR = A.RN ;
    Inner Join AccBase     C   On S.RN_DB = C.RN ;
    Left  Join AccSpec     AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where (InList(SubStr(C.Account, &cPos19, 3), "208", "209") Or SubStr(C.Account, &cPos19, 5) = "30406") &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_DB As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc30406 A   On S.RN_DB = A.RN ;
    Inner Join AccBase     C   On S.RN_KR = C.RN ;
    Left  Join AccSpec     AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30406" &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(8) As VidRCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc30406 A   On S.RN_KR = A.RN ;
    Inner Join AccBase     C   On S.RN_DB = C.RN ;
    Left  Join AccSpec     AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30406" &cWhereMark ;
  Group By 1, 2, 3, 4, 5, 6, 8 ;
  Into CURSOR crsIsp2 READWRITE

Scan
  GetVidRCode()
EndScan

*Объединяем данные по исполнению
Select VidRCode, AnCode, Sum From crsIsp201 ;
UNION ALL ;
Select  VidRCode, AnCode, Sum From crsIsp2 ;
Into CURSOR crsIsp_

Select VidRCode, AnCode, Sum(Sum) As SumIsp ;
  From crsIsp_ ;
  Group By 1, 2 ;
  Into CURSOR crsIsp

CurClose("crsAcc201,crsAcc208,crsAcc302,crsAcc30403,crsAcc30406,crsIsp201,crsIsp2,crsIsp_")

* Объединяем данные по расходам
Select VidRCode, AnCode, SumUtv, 000000000000000.00 As SumIsp From crsUtv ;
UNION ALL ;
Select VidRCode, AnCode, 000000000000000.00 As SumUtv, SumIsp From crsIsp ;
  Into CURSOR crsSpecR_

Select VidRCode, AnCode, Sum(SumUtv) As SumUtv, Sum(SumIsp) As SumIsp ;
  From crsSpecR_ ;
  Group By 1, 2 ;
  Order By 1, 2 ;
  Into CURSOR crsSpecR READWRITE

Sum SumUtv, SumIsp To nSumUtvR, nSumIspR

CurClose("crsUtv,crsIsp,crsSpecR_")

CheckSums("crsSpecR")

EndProc


*********************************************************************
Procedure ProcF   && Источники
*********************************************************************
Local ARRAY arrSum[1]
Local cWhereMark, nSum, nSumUtv591, nSumUtv592, nSumUtv700, nSumIsp591, nSumIsp592, nSumIsp710, nSumIsp720, nSumIsp731, nSumIsp732, nSumIsp821, nSumIsp822, nSumIsp831, nSumIsp832
Store 0 To nSumUtv591, nSumUtv592, nSumUtv700, nSumIsp591, nSumIsp592, nSumIsp710, nSumIsp720, nSumIsp731, nSumIsp732, nSumIsp821, nSumIsp822, nSumIsp831, nSumIsp832

* Исключаем возвраты прошлых лет
cWhereMark = Iif(Empty(m.cRN_MarkVPL), "", "And RN_MARK # '" + m.cRN_MarkVPL + "'")

** Утверждено плановых назначений
GetCrsAcc("crsAcc5041", "5041")

Select S.RN_DB As RN_ACC, 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, ;
       Space(3) As BKlsCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       PadR(LTrim(An.SAccount), 3) As KOSGU, ;
       S.RN_MARK, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc5041 A   On S.RN_DB = A.RN ;
    Inner Join AccSpec    An  On S.RN_DB_A&cAnLevel5 = An.RN ;
    Left  Join AccSpec    AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Group By 1, 2, 3, 4, 5, 6, 8, 9, 10 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Space(3) As BKlsCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       PadR(LTrim(An.SAccount), 3) As KOSGU, ;
       S.RN_MARK, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc5041 A   On S.RN_KR = A.RN ;
    Inner Join AccSpec    An  On S.RN_KR_A&cAnLevel5 = An.RN ;
    Left  Join AccSpec    AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Group By 1, 2, 3, 4, 5, 6, 8, 9, 10 ;
  Into CURSOR crsUtv_ READWRITE

Scan
  GetBKlsCode(2)
EndScan

* Динамические строки "520" и "620"
Select BKlsCode, AnCode, Sum(Sum) As SumUtv ;
  From crsUtv_ ;
  Where (KOSGU = "171" Or InList(Left(KOSGU, 2), "52", "62", "54", "64", "71", "81", "72", "82")) &cWhereMark ;
  Group By 1, 2 ;
  Into CURSOR crsUtv

* Строки 591 и 592 (не отображаются)
If !Empty(m.cRN_MarkVPL)
  Select Sum(Sum) As SumUtv ;
    From crsUtv_ ;
    Where Left(KOSGU, 2)= "51" And RN_MARK = ?m.cRN_MarkVPL ;
    Into ARRAY arrSum

  If _Tally # 0
    nSumUtv591 = arrSum[1]
  EndIf

  Select Sum(Sum) As SumUtv ;
    From crsUtv_ ;
    Where Left(KOSGU, 2)= "61" And RN_MARK = ?m.cRN_MarkVPL ;
    Into ARRAY arrSum

  If _Tally # 0
    nSumUtv592 = arrSum[1]
  EndIf
EndIf

* Строка 700 (не отображается)
Select Sum(S.Sum_Equal) As SumUtv ;
  From crEopSpecDB S ;
    Inner Join crsAcc5041 A On S.RN_DB = A.RN ;
UNION ALL ;
Select Sum(-S.Sum_Equal) As SumUtv ;
  From crEopSpecKR S ;
    Inner Join crsAcc5041 A On S.RN_KR = A.RN ;
  Into CURSOR crsUtv700

Sum SumUtv To nSumUtv700

CurClose("crsAcc5041,crsUtv_,crsUtv700")

** Исполнено
* Динамические строки "520" и "620"
GetCrsAcc("crsAcc201", "2011,2012,20134")

Select PadR(LTrim(An.SAccount), 3) As BKlsCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A   On S.RN_DB = A.RN ;
    Inner Join AccSpec   An  On S.RN_DB_A&cAnLevel4 = An.RN ;
    Inner Join AccBase   C   On S.RN_KR = C.RN ;
    Left  Join AccSpec   AnC On S.RN_KR_A&cAnLevel5 = AnC.RN ;
    Left  Join AccSpec   AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where !InList(SubStr(C.Account, &cPos19, 5), "21003", "20134", "30406") ;
    And !(SubStr(C.Account, &cPos19, 5) = '40110' And Like('171*', AllTrim(AnC.SAccount))) ;
    &cWhereMark ;
  Group By 1, 2 ;
UNION ALL ;
Select PadR(LTrim(An.SAccount), 3) As BKlsCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A   On S.RN_KR = A.RN ;
    Inner Join AccSpec   An  On S.RN_KR_A&cAnLevel4 = An.RN ;
    Inner Join AccBase   C   On S.RN_DB = C.RN ;
    Left  Join AccSpec   AnC On S.RN_DB_A&cAnLevel5 = AnC.RN ;
    Left  Join AccSpec   AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where !InList(SubStr(C.Account, &cPos19, 5), "21003", "20134", "30406") ;
    And !(SubStr(C.Account, &cPos19, 5) = '40110' And Like('171*', AllTrim(AnC.SAccount))) ;
    &cWhereMark ;
  Group By 1, 2 ;
  Into CURSOR crsIsp201 READWRITE

Scan
  CheckBKlsCode(BKlsCode, "F")
EndScan

GetCrsAcc("crsAcc4011", "4011")

Select "171" As BKlsCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc4011 A   On S.RN_DB = A.RN ;
    Inner Join AccSpec    An  On S.RN_DB_A&cAnLevel5 = An.RN ;
    Inner Join AccBase    C   On S.RN_KR = C.RN ;
    Left  Join AccSpec    AnS On S.RN_DB_A&cAnLevelSC = AnS.RN ;
  Where (InList(SubStr(C.Account, &cPos19, 4), "2011", "2012") Or SubStr(C.Account, &cPos19, 5) = '20134') ;
    And Like('171*', AllTrim(An.SAccount)) &cWhereMark ;
  Group By 2 ;
UNION ALL ;
Select "171" As BKlsCode, ;
       Nvl(AnS.SAccount, Space(15)) As AnCode, ;
       Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc4011 A   On S.RN_KR = A.RN ;
    Inner Join AccSpec    An  On S.RN_KR_A&cAnLevel5 = An.RN ;
    Inner Join AccBase    C   On S.RN_DB = C.RN ;
    Left  Join AccSpec    AnS On S.RN_KR_A&cAnLevelSC = AnS.RN ;
  Where (InList(SubStr(C.Account, &cPos19, 4), "2011", "2012") Or SubStr(C.Account, &cPos19, 5) = '20134') ;
    And Like('171*', AllTrim(An.SAccount)) &cWhereMark ;
  Group By 2 ;
  Into CURSOR crsIsp4011

*Объединяем данные по исполнению
Select * From crsIsp201 UNION ALL Select * From crsIsp4011 Into CURSOR crsIsp_

Select BKlsCode, AnCode, Sum(Sum) As SumIsp ;
  From crsIsp_ ;
  Group By 1, 2 ;
  Into CURSOR crsIsp

CurClose("crsAcc201,crsAcc4011,crsIsp201,crsIsp4011,crsIsp_")

* Объединяем данные по динамическим строкам "520" и "620"
Select BKlsCode, AnCode, SumUtv, 000000000000000.00 As SumIsp From crsUtv ;
UNION ALL ;
Select BKlsCode, AnCode, 000000000000000.00 As SumUtv, SumIsp From crsIsp ;
  Into CURSOR crsSpecF_

Select AScan(arrBKlsF, BKlsCode) As NPP, BKlsCode, AnCode, Sum(SumUtv) As SumUtv, Sum(SumIsp) As SumIsp ;
  From crsSpecF_ ;
  Group By 2, 3 ;
  Order By 1, 3 ;
  Into CURSOR crsSpecF READWRITE

Sum For !InList(BKlsCode, "720", "820") SumUtv, SumIsp To nSumUtvF520, nSumIspF520
Sum For  InList(BKlsCode, "720", "820") SumUtv, SumIsp To nSumUtvF620, nSumIspF620

CurClose("crsUtv,crsIsp,crsSpecF_")

CheckSums("crsSpecF")

* Строки 591 и 592 (не отображаются)
GetCrsAcc("crsAcc201", "20111,2012,20134")
GetCrsAcc("crsAcc209", "2093,2097,2098")
GetCrsAcc("crsAcc21005", "21005")

* 591
Select Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A  On S.RN_DB = A.RN ;
    Left  Join AccSpec   An On S.RN_DB_A&cAnLevel4 = An.RN ;
    Inner Join AccBase   C  On S.RN_KR = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "21005" ;
   And !(Left(AllTrim(An.SAccount), 3) = "171" Or InList(Left(AllTrim(An.SAccount), 2), "52", "62", "54", "64", "71", "81", "72", "82") ;
    Or InList(Left(AllTrim(An.SAccount), 2), "12", "13", "14", "15", "16", "41", "42", "43", "44", "18")) &cWhereMark ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp591 = arrSum[1]
EndIf

If !Empty(m.cRN_MarkVPL)
  Select Sum(S.Sum_Equal) As Sum ;
    From crEopSpecDB S ;
      Inner Join crsAcc201 A On S.RN_DB = A.RN ;
    Where RN_MARK = ?m.cRN_MarkVPL ;
    Into ARRAY arrSum

  If _Tally # 0
    nSumIsp591 = m.nSumIsp591 + arrSum[1]
  EndIf
EndIf

Select S.RN_KR As RN_ACC, 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, ;
       Space(3) As BKlsCode, Sum(S.Sum_Equal) As SumIsp ;
  From crEopSpecKR S ;
    Inner Join crsAcc209 A On S.RN_KR = A.RN ;
    Inner Join AccBase   C On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 3) = "302" Or SubStr(C.Account, &cPos19, 5) = "30403" ;
  Group By 1, 2, 3, 4, 5, 6 ;
  Into CURSOR crsIsp209 READWRITE

Scan
  GetBKlsCode(2)
EndScan

Sum SumIsp To nSum
nSumIsp591 = m.nSumIsp591 + m.nSum
CurClose("crsIsp209")

Select Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc21005 A On S.RN_KR = A.RN ;
    Inner Join AccBase     C On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 3) = "302" ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp591 = m.nSumIsp591 + arrSum[1]
EndIf

* 592
Select Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A  On S.RN_KR = A.RN ;
    Left  Join AccSpec   An On S.RN_KR_A&cAnLevel4 = An.RN ;
    Inner Join AccBase   C  On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "21005" ;
   And !(Left(AllTrim(An.SAccount), 3) = "171" Or InList(Left(AllTrim(An.SAccount), 2), "52", "62", "54", "64", "71", "81", "72", "82") ;
    Or InList(Left(AllTrim(An.SAccount), 2), "12", "13", "14", "15", "16", "41", "42", "43", "44", "18")) &cWhereMark ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp592 = arrSum[1]
EndIf

If !Empty(m.cRN_MarkVPL)
  Select Sum(-S.Sum_Equal) As Sum ;
    From crEopSpecKR S ;
      Inner Join crsAcc201 A On S.RN_KR = A.RN ;
    Where RN_MARK = ?m.cRN_MarkVPL ;
    Into ARRAY arrSum

  If _Tally # 0
    nSumIsp592 = m.nSumIsp592 + arrSum[1]
  EndIf
EndIf

CurClose("crsAcc201,crsAcc209,crsAcc21005")

* Строка "710" (не отображается)
GetCrsAcc("crsAcc201", "20111,2012,21003,20134")

Select Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A On S.RN_DB = A.RN ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp710 = arrSum[1]
EndIf

* Строка "720" (не отображается)
Select Sum(S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A On S.RN_KR = A.RN ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp720 = arrSum[1]
EndIf

* Строка "731" (не отображается)
Select Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A On S.RN_DB = A.RN ;
    Inner Join AccBase   C On S.RN_KR = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "21003" Or SubStr(C.Account, &cPos19, 3) = "201" ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp731 = arrSum[1]
EndIf

* Строка "732" (не отображается)
Select Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A On S.RN_KR = A.RN ;
    Inner Join AccBase   C On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "21003" Or SubStr(C.Account, &cPos19, 3) = "201" ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp732 = arrSum[1]
EndIf

CurClose("crsAcc201")

* Строка "821" (не отображается)
GetCrsAcc("crsAcc201", "20111,20121,20123,20127,20134")

Select Sum(S.Sum_Equal) As Sum ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A   On S.RN_DB = A.RN ;
    Inner Join AccBase   C   On S.RN_KR = C.RN ;
    Left  Join AccSpec   AnC On S.RN_KR_A&cAnLevel5 = AnC.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30404" And Like('510*', AllTrim(AnC.SAccount)) ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp821 = arrSum[1]
EndIf

* Строка "822" (не отображается)
Select Sum(-S.Sum_Equal) As Sum ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A   On S.RN_KR = A.RN ;
    Inner Join AccBase   C   On S.RN_DB = C.RN ;
    Left  Join AccSpec   AnC On S.RN_DB_A&cAnLevel5 = AnC.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30404" And Like('610*', AllTrim(AnC.SAccount)) ;
  Into ARRAY arrSum

If _Tally # 0
  nSumIsp822 = arrSum[1]
EndIf

CurClose("crsAcc201")

* Строка "831" (не отображается)
GetCrsAcc("crsAcc201", "20111,20121,20127,20134")
GetCrsAcc("crsAcc30406", "30406")

Select S.RN_KR As RN_ACC, 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, ;
       Sum(S.Sum_Equal) As SumIsp ;
  From crEopSpecDB S ;
    Inner Join crsAcc201 A On S.RN_DB = A.RN ;
    Inner Join AccBase   C On S.RN_KR = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30406" ;
  Group By 1, 2, 3, 4, 5, 6 ;
UNION ALL ;
Select S.RN_KR As RN_ACC, 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, ;
       Sum(S.Sum_Equal) As SumIsp ;
  From crEopSpecKR S ;
    Inner Join crsAcc30406 A On S.RN_KR = A.RN ;
    Inner Join AccBase     C On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30406" ;
  Group By 1, 2, 3, 4, 5, 6 ;
  Into CURSOR crsIsp831_ READWRITE

Scan
  Check30406()
EndScan

Sum SumIsp To nSumIsp831

USE In crsIsp831_

Select Sum(S.Sum_Equal) As SumIsp ;
  From crEopSpecKR S ;
    Inner Join crsAcc30406 A On S.RN_KR = A.RN ;
    Inner Join AccBase     C On S.RN_DB = C.RN ;
  Where InList(SubStr(C.Account, &cPos19, 4), "2053", "2054", "2055", "2056", "2057", "2093", "2094") ;
     Or InList(SubStr(C.Account, &cPos19, 5), "20971", "20972", "20973", "20974", "20982", "20989", "30403") ;
     Or SubStr(C.Account, &cPos19, 3) = "302" ;
  Into CURSOR crsIsp831

Sum SumIsp To nSum
nSumIsp831 = m.nSumIsp831 + m.nSum

* Строка "832" (не отображается)
Select S.RN_DB As RN_ACC, 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, ;
       Sum(-S.Sum_Equal) As SumIsp ;
  From crEopSpecKR S ;
    Inner Join crsAcc201 A On S.RN_KR = A.RN ;
    Inner Join AccBase   C On S.RN_DB = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30406" ;
  Group By 1, 2, 3, 4, 5, 6 ;
UNION ALL ;
Select S.RN_DB As RN_ACC, 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, ;
       Sum(-S.Sum_Equal) As SumIsp ;
  From crEopSpecDB S ;
    Inner Join crsAcc30406 A On S.RN_DB = A.RN ;
    Inner Join AccBase     C On S.RN_KR = C.RN ;
  Where SubStr(C.Account, &cPos19, 5) = "30406" ;
  Group By 1, 2, 3, 4, 5, 6 ;
  Into CURSOR crsIsp832_ READWRITE

Scan
  Check30406()
EndScan

Sum SumIsp To nSumIsp832

USE In crsIsp832_

Select Sum(-S.Sum_Equal) As SumIsp ;
  From crEopSpecDB S ;
    Inner Join crsAcc30406 A On S.RN_DB = A.RN ;
    Inner Join AccBase     C On S.RN_KR = C.RN ;
  Where InList(SubStr(C.Account, &cPos19, 4), "2053", "2054", "2055", "2056", "2057", "2093", "2094") ;
     Or InList(SubStr(C.Account, &cPos19, 5), "20971", "20972", "20973", "20974", "20982", "20989", "30403") ;
     Or SubStr(C.Account, &cPos19, 3) = "302" ;
  Into CURSOR crsIsp832

Sum SumIsp To nSum
nSumIsp832 = m.nSumIsp832 + m.nSum

CurClose("crsAcc201,crsAcc30406,crsIsp831,crsIsp832")

* Итого по источникам
nSumUtvF = m.nSumUtvF520 + m.nSumUtvF620 + m.nSumUtv591 + m.nSumUtv592 + m.nSumUtv700
nSumIspF = m.nSumIspF520 + m.nSumIspF620 + m.nSumIsp591 + m.nSumIsp592 + m.nSumIsp710 + m.nSumIsp720 + m.nSumIsp731 + m.nSumIsp732 + m.nSumIsp821 + m.nSumIsp822 + m.nSumIsp831 + m.nSumIsp832

EndProc


*********************************************************************
Procedure GetBKlsCode   && Возвращает код по БК
*********************************************************************
LParameters nBKlsPrf

Local ARRAY arrBK[1]
Local cAlias, cKlsType, i, s, cBKlsCode
cAlias    = Alias()
cKlsType  = Iif(m.nBKlsPrf = 1, "0", "1,2")
cBKlsCode = ""

If m.nAccType = 1   && Длинный план счетов
  Select Nvl(Prf.Mnemo, Nvl(Prf1.Mnemo, Space(3))) As BK ;
    From AccBase A ;
      Left Join BKlsDoh  B    On A.RN_KLSDOH = B.RN And InList(B.KLS_TYPE, &cKlsType.) ;
      Left Join PRF_ECLS Prf  On B.EconCl_RN = Prf.RN ;
      Left Join fSbFBase F    On A.RN_TFIN   = F.RN ;
      Left Join PRF_ECLS Prf1 On F.RN_ECLSD  = Prf1.RN ;
    Where A.RN = ?&cAlias..RN_ACC ;
    Into ARRAY arrBK

  If _Tally # 0
    cBKlsCode = arrBK[1]
  EndIf
Else
  If Seek(&cAlias..RN_ACC, "AccBase", "RN")
    For m.i = 1 To 5
      s = Str(m.i, 1)
      If SubStr(AccBase.ORG_AN, m.i, 1) = '3' And !IsNull(&cAlias..RN_AN&s.) And !Empty(&cAlias..RN_AN&s.)
        Select Prf.Mnemo ;
          From AccSpec An ;
            Inner Join BKlsDoh  B   On An.RN_KlsDoh = B.RN ;
            Inner Join PRF_ECLS Prf On B.EconCl_RN  = Prf.RN ;
          Where An.RN = ?&cAlias..RN_AN&s And InList(B.KLS_TYPE, &cKlsType.) ;
          Into ARRAY arrBK

        If _Tally # 0
          cBKlsCode = arrBK[1]
          Exit
        EndIf
      EndIf
    Next

    If Empty(m.cBKlsCode) And AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN
      s = Str(AT('9', AccBase.SMETA_AN), 1)
      If !IsNull(&cAlias..RN_AN&s.) And !Empty(&cAlias..RN_AN&s.)
        Select Prf1.Mnemo ;
          From AccSpec An ;
            Inner Join fSbFBase F    On An.RN_TFIN = F.RN ;
            Inner Join PRF_ECLS Prf1 On F.RN_ECLSD = Prf1.RN ;
          Where An.RN = ?&cAlias..RN_AN&s ;
          Into ARRAY arrBK

        If _Tally # 0
          cBKlsCode = arrBK[1]
        EndIf
      EndIf
    EndIf
  EndIf
EndIf

Select (m.cAlias)
CheckBKlsCode(m.cBKlsCode, Iif(m.nBKlsPrf = 1, "D", "F"))

EndProc


*********************************************************************
Procedure CheckBKlsCode   && Проверяет код по БК на допустимость
*********************************************************************
LParameters cBKlsCode, cType

If !Empty(m.cBKlsCode)
  If m.cBKlsCode # "171"
    cBKlsCode = Left(m.cBKlsCode, 2)
  EndIf
  If m.cBKlsCode = "16"
    cBKlsCode = "15"
  EndIf
  cBKlsCode = PadR(m.cBKlsCode, 3, "0")
EndIf

If Empty(m.cBKlsCode) Or AScan(arrBKls&cType, m.cBKlsCode) = 0
  Delete
Else
  Replace BKlsCode With m.cBKlsCode
EndIf

EndProc


*********************************************************************
Procedure GetVidRCode   && Возвращает код вида расходов
*********************************************************************
Local ARRAY arrVidR[1]
Local cAlias, s, cVidRCode
cAlias    = Alias()
cVidRCode = ""

If m.nAccType = 1   && Длинный план счетов
  Select B.Code ;
    From AccBase A ;
      Inner Join fSbFBase F On A.RN_TFIN = F.RN ;
      Inner Join bExpKind B On F.RN_VidR = B.RN ;
    Where A.RN = ?&cAlias..RN_ACC And A.TFin_Type = 1;
    Into ARRAY arrVidR

  If _Tally # 0
    cVidRCode = arrVidR[1]
  EndIf
Else
  If Seek(&cAlias..RN_ACC, "AccBase", "RN") And AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN
    s = Str(AT('9', AccBase.SMETA_AN), 1)
    If !IsNull(&cAlias..RN_AN&s.) And !Empty(&cAlias..RN_AN&s.)
      Select B.Code ;
        From AccSpec An ;
          Inner Join fSbFBase F On An.RN_TFIN = F.RN ;
          Inner Join bExpKind B On F.RN_VidR = B.RN ;
        Where An.RN = ?&cAlias..RN_AN&s ;
        Into ARRAY arrVidR

      If _Tally # 0
        cVidRCode = arrVidR[1]
      EndIf
    EndIf
  EndIf
EndIf

Select (m.cAlias)
If Empty(m.cVidRCode)
  Delete
Else
  Replace VidRCode With m.cVidRCode
EndIf

EndProc


********************************************************************************
Procedure GetVidRCodeDD   && Возвращает код вида расходов при 
&& Уровне доп. аналитики классификации расходов для счетов денежных средств # 0
********************************************************************************
Local ARRAY arrAnalit[1], arrVidR[1]
Local cAlias, s, cVidRCode
cAlias    = Alias()
cVidRCode = ""

If !IsNull(&cAlias..RN_AN&cAnLevelDD.) And !Empty(&cAlias..RN_AN&cAnLevelDD.) And Seek(&cAlias..RN_ACC, "AccBase", "RN")
  Do Case
    Case AccBase.SLOVAN&cAnLevelDD._RN = m.cUnitExpKind   && Виды расходов
      Select SACCOUNT, UNT_COMMON, RN_COMMON ;
        From AccSpec ;
        Where RN = ?&cAlias..RN_AN&cAnLevelDD ;
        Into ARRAY arrAnalit

      If _Tally # 0
        If arrAnalit[2] = m.cUnitExpKind And !Empty(arrAnalit[3])
          Select Code From bExpKind Where RN = ?arrAnalit[3] Into ARRAY arrVidR
          If _Tally # 0
            cVidRCode = arrVidR[1]
          EndIf
        Else   && Пытаемся подобрать вид расходов по совпадению кода с кодом аналитики
          Select Code From bExpKind Where Code = PadR(Left(AllTrim(?arrAnalit[1]), 3), 8) Into ARRAY arrVidR
          If _Tally # 0
            cVidRCode = arrVidR[1]
          Else
            cVidRCode = Space(8)
          EndIf
        EndIf
      EndIf

   Case AT("9", AccBase.SMETA_AN) = m.nAnLevelDD       && ШФ
      Select B.Code ;
        From AccSpec An ;
          Inner Join fSbFBase F On An.RN_TFIN = F.RN ;
          Inner Join bExpKind B On F.RN_VidR = B.RN ;
        Where An.RN = ?&cAlias..RN_AN&cAnLevelDD ;
        Into ARRAY arrVidR

      If _Tally # 0
        cVidRCode = arrVidR[1]
      EndIf
  EndCase
EndIf

Select (m.cAlias)
If Len(m.cVidRCode) = 0
  Delete
Else
  Replace VidRCode With m.cVidRCode
EndIf

EndProc


*********************************************************************************
Procedure Check30406   && Проверяет допустимость проводки с участием счета 30406
*********************************************************************************

Local cAlias, i, s, lResult
cAlias = Alias()

If m.nAccType = 1   && Длинный план счетов
  Select A.RN ;
    From AccBase A ;
      Inner Join BKlsDoh B On A.RN_KLSDOH = B.RN ;
    Where A.RN = ?&cAlias..RN_ACC And InList(B.KLS_TYPE, 1, 2) ;
    To SCREEN NOCONSOLE

  lResult = _Tally # 0

  If !m.lResult
    Select A.RN ;
      From AccBase A ;
        Inner Join fSbFBase F     On A.RN_TFIN   = F.RN ;
        Inner Join PRF_ECLS Prf1 On F.RN_ECLSD  = Prf1.RN ;
      Where A.RN = ?&cAlias..RN_ACC And A.TFin_Type = 1 And (InList(Prf1.Mnemo, "510", "610") Or AScan(arrBKlsF, Prf1.Mnemo) # 0) ;
      To SCREEN NOCONSOLE

    lResult = _Tally # 0
  EndIf
Else
  If Seek(&cAlias..RN_ACC, "AccBase", "RN")
    For m.i = 1 To 5
      s = Str(m.i, 1)
      If SubStr(AccBase.ORG_AN, m.i, 1) = '3' And !IsNull(&cAlias..RN_AN&s.) And !Empty(&cAlias..RN_AN&s.)
        Select An.RN ;
          From AccSpec An ;
            Inner Join BKlsDoh  B   On An.RN_KlsDoh = B.RN ;
          Where An.RN = ?&cAlias..RN_AN&s And InList(B.KLS_TYPE, 1, 2) ;
          To SCREEN NOCONSOLE

        If _Tally # 0
          lResult = .T.
          Exit
        EndIf
      EndIf
    Next

    If !m.lResult And AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN
      s = Str(AT('9', AccBase.SMETA_AN), 1)
      If !IsNull(&cAlias..RN_AN&s.) And !Empty(&cAlias..RN_AN&s.)
        Select An.RN ;
          From AccSpec An ;
            Inner Join fSbFBase F    On An.RN_TFIN = F.RN ;
            Inner Join PRF_ECLS Prf1 On F.RN_ECLSD = Prf1.RN ;
          Where An.RN = ?&cAlias..RN_AN&s And (InList(Prf1.Mnemo, "510", "610") Or AScan(arrBKlsF, Prf1.Mnemo) # 0) ;
          To SCREEN NOCONSOLE

        lResult = _Tally # 0
      EndIf
    EndIf
  EndIf
EndIf

If !m.lResult
  Delete In (m.cAlias)
EndIf

EndProc


*********************************************************************
Procedure CheckSums   && Отбор первичных строк таблицы
*********************************************************************
LParameters cAlias

Local nPercent

Select (m.cAlias)
Scan
  If m.nSumDiffMore # 0
    cVisual = " Or SumUtv - SumIsp > m.nSumDiffMore"
  EndIf
  nPercent = Iif(SumUtv = 0, 0, Round(SumIsp / SumUtv * 100, 2))
  If SumUtv = 0 And SumIsp = 0 Or !Empty(m.cVisual) And !Evaluate(m.cVisual)
    Delete
  EndIf
EndScan

EndProc


*********************************************************************
Procedure GetCrsAcc   && Отбор нужных счетов из плана счетов
*********************************************************************
LParameters cCursor, cSubs, cWhereAcc

Local cWhere, nPos, cSubs1

If !Empty(m.cSubs)
  cSubs  = m.cSubs + ","
  nPos   = AT(",", m.cSubs)
  cWhere = ""
  DO While m.nPos # 0
    cSubs1 = Left(m.cSubs, m.nPos - 1)
    cSubs  = SubStr(m.cSubs, m.nPos + 1)
    nPos   = AT(",", m.cSubs)
    cWhere = m.cWhere + " OR Like('" + m.cSubs1 + "', SubStr(AccBase.Account, " + m.cPos19 + ", " + Str(Len(m.cSubs1), 1) + "))"
  EndDO
  cWhere = SubStr(m.cWhere, 5)
  If " OR " $ m.cWhere
    cWhere = "(" + m.cWhere + ")"
  EndIf
EndIf

If !Empty(m.cWhereAcc)
  cWhere = Iif(Empty(m.cWhere), "", m.cWhere + " AND ") + m.cWhereAcc
EndIf
  
If !Empty(m.cVFO)
  cWhere = "SubStr(AccBase.Account, " + m.cPos18 + ", 1) = '" + m.cVFO + "' And " + m.cWhere
EndIf

cWhere = Iif(RepG151.GetComRepPrm151("0503766", @lNoError, m.cWhere), m.cWhere, ".F.")

Select AccBase.RN ;
  From AccBase ;
    Left Join BalUnit On AccBase.RN_BalUnit = BalUnit.RN ;
  Where &cWhere &cWhereBalUnits ;
  Into CURSOR &cCursor

EndProc


*********************************************************************
Procedure MakeFileName   && Формирую имя файла для выгрузки в МинФин
*********************************************************************
If !Empty(m.cUnlPath)
  Local ARRAY aFiles(1)
  Local nNum, nCNum, nN, i, nFls
  cUnlPath  = AllTrim(m.cUnlPath)
  cFormCode = "366" + Iif(Empty(m.cVFO), "", arrVFO(AScan(arrVFO, m.cVFO) + 1))
  cFileName = m.cFormCode
  Do Case
    Case !Empty(m.dReoDate)                   && реорганизация
      cFileName = m.cFileName + "R"
    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 + "M"
  EndCase
  nNum = 0
  nFls = ADir(aFiles, m.cUnlPath + m.cFileName + "??.txt")
  For m.i = 1 To m.nFls
    nN    = AT(".", aFiles(m.i, 1))
    nCNum = Val(SubStr(aFiles(m.i, 1), m.nN - 2, 2))
    If m.nNum < m.nCNum
      nNum = m.nCNum
    EndIf 
    If m.nNum = 99
      nNum = 0
    EndIf
  Next
  cFileName = m.cUnlPath + m.cFileName + PadL(Int(m.nNum) + 1, 2, "0") + ".txt"
EndIf

EndProc
]]></FPC_></MSE>
      <FPC_><![CDATA[*[VFP]
RepG151.GetOutS(.T.)
]]></FPC_>
    </печать>
  </отчет>
  <форма>
    <ид>f_0503766_33n_78n_2022</ид>
    <тип>XML</тип>
    <описание>
      <дополнительно>
        <desc_version>1.0</desc_version>
      </дополнительно>
      <VFP_свойство имя="Name">f_0503766</VFP_свойство>
      <VFP_свойство имя="Caption">Форма 0503766-33н_ред78н_2022</VFP_свойство>
      <VFP_свойство имя="Height">420</VFP_свойство>
      <VFP_свойство имя="Width">500</VFP_свойство>
      <VFP_метод имя="Valid"><![CDATA[LParam oThis, oThisform
Local oPage
oPage = oThisForm.PF.Page1
dSelDate = oPage.cntSelDate.restDate.Value

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

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

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

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

cOrg      = oPage.OrgFrom.GetSaveValue()
cWhereKontragent = oPage.OrgFrom.GetCond()
cRN_Found = oPage.Founder.Value

oPage = oThisForm.PF.Page2
cBalUnits      = oPage.BalUnits.GetSaveValue()
cWhereBalUnits = oPage.BalUnits.GetCond()
If !Empty(m.cWhereBalUnits)
  cWhereBalUnits = "And " + m.cWhereBalUnits
EndIf

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

]]></VFP_метод>
      <VFP_метод имя="PostInit"><![CDATA[LParam oThis, oThisform
    * Виды финансового обеспечения
    Dimension arrVFO[5, 3]
    arrVFO[1, 1] = PadR("Собственные доходы учреждения (код вида - 2)", 80)
    arrVFO[1, 2] = "2"
    arrVFO[1, 3] = ""
    arrVFO[2, 1] = PadR("Субсидии на выполнение государственного (муниципального) задания (код вида - 4)", 80)
    arrVFO[2, 2] = "4"
    arrVFO[2, 3] = "z"
    arrVFO[3, 1] = PadR("Субсидии на иные цели (код вида - 5)", 80)
    arrVFO[3, 2] = "5"
    arrVFO[3, 3] = "c"
    arrVFO[4, 1] = PadR("Субсидии на цели осуществления капитальных вложений (код вида - 6)", 80)
    arrVFO[4, 2] = "6"
    arrVFO[4, 3] = "i"
    arrVFO[5, 1] = PadR("Средства по обязательному медицинскому страхованию (код вида - 7)", 80)
    arrVFO[5, 2] = "7"
    arrVFO[5, 3] = ""

    Local oPage

    oPage = oThisForm.PF.Page1
    oPage.cntSelDate.InitThis(m.dSelDate)
    oPage.cntReoDate.Text.ValueChanged()
    oPage.OrgFrom.SetSaveValue(m.cOrg)
    oPage.Founder.InitThis(m.cRN_Found)
    oPage.CmbMarkVPL.SetSource(UnitRn("EconOp"))
    oPage.CmbMarkVPL.Value = m.cRN_MarkVPL
    oPage.CmbMarkNOO.SetSource(UnitRn("EconOp"))
    oPage.CmbMarkNOO.Value = m.cRN_MarkNOO

    oPage = oThisForm.PF.Page2
    oPage.Cmb_VFO.RowSource = "arrVFO"
    oPage.Cmb_VFO.BackColor = oPage.Cmb_VFO.SaveBackColor
    oPage.Cmb_VFO.Init()
    oPage.BalUnits.SetSaveValue(m.cBalUnits)
    cIspolnitel = m.cIspName

    oPage = oThisForm.PF.Page3
    oPage.Catalog.Text.Value = m.cUnlPath
    oPage.DicIsp.setsavevalue(m.cDicIsp)
    oPage.fldIspName.Value = m.cIspolnitel
]]></VFP_метод>
      <элемент>
        <VFP_имя>Tbtndialog1</VFP_имя>
        <VFP_свойство имя="Left">225</VFP_свойство>
        <VFP_свойство имя="Top">383</VFP_свойство>
      </элемент>
      <элемент>
        <VFP_класс>TPageFrame</VFP_класс>
        <VFP_свойство имя="Name">PF</VFP_свойство>
        <VFP_свойство имя="Height">380</VFP_свойство>
        <VFP_свойство имя="Width">500</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">165</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">10</VFP_свойство>
            <VFP_свойство имя="Width">480</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">385</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">205</VFP_свойство>
            <VFP_свойство имя="Top">50</VFP_свойство>
            <элемент>
              <VFP_имя>SelYear</VFP_имя>
              <VFP_свойство имя="Left">180</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_имя>lbllYear</VFP_имя>
              <VFP_свойство имя="Left">250</VFP_свойство>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Дата реорганизации:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">85</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TdicDate</VFP_класс>
            <VFP_свойство имя="Name">cntReoDate</VFP_свойство>
            <VFP_свойство имя="Left">385</VFP_свойство>
            <VFP_свойство имя="Top">80</VFP_свойство>
            <элемент>
              <VFP_имя>Text</VFP_имя>
              <VFP_свойство имя="ControlSource">dReoDate</VFP_свойство>
              <VFP_метод имя="ValueChanged"><![CDATA[LParam oThis, oThisForm
Local oObj
oObj = oThisForm.PF.Page1.cntSelDate
If Empty(oThis.Value)
  oObj.SelMonth.ReceiveMessage(oThisForm, "ReInit")
  oObj.SelYear.ReceiveMessage(oThisForm, "ReInit")
Else
  oObj.ReceiveMessage(oThisForm, "ViewMode")
EndIf
]]></VFP_метод>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">115</VFP_свойство>
            <VFP_свойство имя="Caption">Учреждение:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TDicHist</VFP_класс>
            <VFP_свойство имя="Name">OrgFrom</VFP_свойство>
            <VFP_свойство имя="Left">205</VFP_свойство>
            <VFP_свойство имя="Top">110</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_AGENTS766_78N_2022</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_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">145</VFP_свойство>
            <VFP_свойство имя="Caption">Учредитель:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TDicHist</VFP_класс>
            <VFP_свойство имя="Name">Founder</VFP_свойство>
            <VFP_свойство имя="Left">205</VFP_свойство>
            <VFP_свойство имя="Top">140</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_FOUND766_78N_2022</VFP_свойство>
            <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
            <элемент>
              <VFP_имя>DicTable</VFP_имя>
              <дополнительно>
                <отложенная_инициализация/>
              </дополнительно>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">75</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">185</VFP_свойство>
            <VFP_свойство имя="Width">480</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Отражать показатели</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">180</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">С суммой отклонения более:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">200</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextSum</VFP_класс>
            <VFP_свойство имя="ControlSource">nSumDiffMore</VFP_свойство>
            <VFP_свойство имя="positive">.T.</VFP_свойство>
            <VFP_свойство имя="Left">330</VFP_свойство>
            <VFP_свойство имя="Name">SumDiffMore</VFP_свойство>
            <VFP_свойство имя="Top">195</VFP_свойство>
            <VFP_свойство имя="Width">150</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">С процентом исполнения:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">менее:</VFP_свойство>
            <VFP_свойство имя="Left">270</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextSum</VFP_класс>
            <VFP_свойство имя="ControlSource">nPercentFewer</VFP_свойство>
            <VFP_свойство имя="InputMask">999.99</VFP_свойство>
            <VFP_свойство имя="positive">.T.</VFP_свойство>
            <VFP_свойство имя="NotEmpty">.T.</VFP_свойство>
            <VFP_свойство имя="Left">320</VFP_свойство>
            <VFP_свойство имя="Name">PercentFewer</VFP_свойство>
            <VFP_свойство имя="Top">225</VFP_свойство>
            <VFP_свойство имя="Width">50</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">более:</VFP_свойство>
            <VFP_свойство имя="Left">385</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextSum</VFP_класс>
            <VFP_свойство имя="ControlSource">nPercentOver</VFP_свойство>
            <VFP_свойство имя="InputMask">999.99</VFP_свойство>
            <VFP_свойство имя="positive">.T.</VFP_свойство>
            <VFP_свойство имя="Left">430</VFP_свойство>
            <VFP_свойство имя="Name">PercentOver</VFP_свойство>
            <VFP_свойство имя="Top">225</VFP_свойство>
            <VFP_свойство имя="Width">50</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">75</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">270</VFP_свойство>
            <VFP_свойство имя="Width">480</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Особые отметки</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">265</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">285</VFP_свойство>
            <VFP_свойство имя="Caption">Возвраты прошлых лет:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">325</VFP_свойство>
            <VFP_свойство имя="Top">280</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Name">CmbMarkVPL</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_MarkVPL</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">315</VFP_свойство>
            <VFP_свойство имя="Caption">Не отражать в отчете:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">325</VFP_свойство>
            <VFP_свойство имя="Top">310</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Name">CmbMarkNOO</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_MarkNOO</VFP_свойство>
          </элемент>
        </элемент>
        <элемент>
          <VFP_имя>Page2</VFP_имя>
          <VFP_свойство имя="Caption">Счета и аналитика</VFP_свойство>
          <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
          <VFP_свойство имя="FontSize">8</VFP_свойство>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">240</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">10</VFP_свойство>
            <VFP_свойство имя="Width">480</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Параметры</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">5</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Уровень аналитики кодов поступлений (выбытий) для счетов "50410", "30404",</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">20</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">"40110":</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">33</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TSpinner</VFP_класс>
            <VFP_свойство имя="ControlSource">nAnLevel5</VFP_свойство>
            <VFP_свойство имя="Increment">1.00</VFP_свойство>
            <VFP_свойство имя="Inputmask">9</VFP_свойство>
            <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
            <VFP_свойство имя="KeyboardLowValue">1</VFP_свойство>
            <VFP_свойство имя="Left">440</VFP_свойство>
            <VFP_свойство имя="Name">aLevel5</VFP_свойство>
            <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
            <VFP_свойство имя="SpinnerLowValue">1.00</VFP_свойство>
            <VFP_свойство имя="Top">20</VFP_свойство>
            <VFP_свойство имя="Width">40</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Уровень аналитики кодов поступлений (выбытий) для счетов денежных средств:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">55</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">440</VFP_свойство>
            <VFP_свойство имя="Name">aLevel4</VFP_свойство>
            <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
            <VFP_свойство имя="SpinnerLowValue">1.00</VFP_свойство>
            <VFP_свойство имя="Top">50</VFP_свойство>
            <VFP_свойство имя="Width">40</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Уровень доп. аналитики классификации расходов для счетов денежных средств:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">85</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">440</VFP_свойство>
            <VFP_свойство имя="Name">aLevelDD</VFP_свойство>
            <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
            <VFP_свойство имя="SpinnerLowValue">0.00</VFP_свойство>
            <VFP_свойство имя="Top">80</VFP_свойство>
            <VFP_свойство имя="Width">40</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Уровень аналитики кода цели, присвоенного при предоставлении целевых</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">110</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">субсидий:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">123</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TSpinner</VFP_класс>
            <VFP_свойство имя="ControlSource">nAnLevelSC</VFP_свойство>
            <VFP_свойство имя="Increment">1.00</VFP_свойство>
            <VFP_свойство имя="Inputmask">9</VFP_свойство>
            <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
            <VFP_свойство имя="KeyboardLowValue">1</VFP_свойство>
            <VFP_свойство имя="Left">440</VFP_свойство>
            <VFP_свойство имя="Name">aLevelSC</VFP_свойство>
            <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
            <VFP_свойство имя="SpinnerLowValue">1.00</VFP_свойство>
            <VFP_свойство имя="Top">110</VFP_свойство>
            <VFP_свойство имя="Width">40</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">140</VFP_свойство>
            <VFP_свойство имя="Caption">Вид финансового обеспечения (деятельности):</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TComboBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Name">Cmb_VFO</VFP_свойство>
            <VFP_свойство имя="Top">155</VFP_свойство>
            <VFP_свойство имя="Height">23</VFP_свойство>
            <VFP_свойство имя="Width">460</VFP_свойство>
            <VFP_свойство имя="BoundColumn">2</VFP_свойство>
            <VFP_свойство имя="RowSourceType">5</VFP_свойство>
            <VFP_свойство имя="Style">2</VFP_свойство>
            <VFP_свойство имя="DisplayCount">5</VFP_свойство>
            <VFP_свойство имя="ControlSource">cVFO</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Балансовая единица:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">190</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>S_balunits</VFP_класс>
            <VFP_свойство имя="Name">Balunits</VFP_свойство>
            <VFP_свойство имя="Left">235</VFP_свойство>
            <VFP_свойство имя="Top">185</VFP_свойство>
            <VFP_свойство имя="Width">245</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">220</VFP_свойство>
            <VFP_свойство имя="Caption">Размерность плана счетов:</VFP_свойство>
          </элемент>            
          <элемент>
            <VFP_класс>TComboBox</VFP_класс>
            <VFP_свойство имя="Left">360</VFP_свойство>
            <VFP_свойство имя="Name">Cmb_AccType</VFP_свойство>
            <VFP_свойство имя="Top">215</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_имя>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">480</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">400</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">ИСТ:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">55</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">420</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_свойство имя="Name">dicIsp</VFP_свойство>
            <VFP_свойство имя="Left">230</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_AgentsIsp766_78N_2022</VFP_свойство>
            <VFP_свойство имя="filter">orgbase.type='2'</VFP_свойство>
            <VFP_метод имя="AddUpdate"><![CDATA[LParam oThis, oThisform
= CurOpen("OrgBase, Person")
If !Empty(oThis.Value)
  = Seek(oThis.Value, "orgbase", "RN")
  If orgbase.type # '2'
    errmes("Выбранный контрагент не является физическим лицом.")
    oThis.Clear()
  Else    
    = Seek(oThis.Value, "person", "RN")
    oThis.Parent.fldIspName.Value = Alltrim(person.SURNAME) + " " + Left(Alltrim(person.FIRSTNAME), 1) + "." + Left(Alltrim(person.SECONDNAME), 1) + "."
  ENDIF
EndIf
]]></VFP_метод>
            <элемент>
              <VFP_имя>DicTable</VFP_имя>
              <дополнительно>
                <отложенная_инициализация/>
              </дополнительно>
            </элемент>                
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">ФИО:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">115</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">230</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">230</VFP_свойство>
            <VFP_свойство имя="Top">140</VFP_свойство>
            <VFP_свойство имя="Width">250</VFP_свойство>
            <VFP_свойство имя="ControlSource">cIspTel</VFP_свойство>
            <VFP_свойство имя="Name">fldIspTel</VFP_свойство>
          </элемент>
        </элемент>
      </элемент>
    </описание>
  </форма>
</Модуль>
