<?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">
  <интерфейс>
    <отчет>
      <наименование>Форма 0503737-33н_ред164н_2023</наименование>
      <код_раздела>Reports5n</код_раздела>
      <номер_код>f0503737_164n_2023</номер_код>
      <шаблон>
        <тип>MSE</тип>
        <мнемокод>ar_form0503737_164n_2023</мнемокод>
        <файл>Форма0503737_33н_ред164н_2023.xlt</файл>
      </шаблон>
      <!--Отчет формируется по хозяйственным операциям за период-->
    </отчет>
  </интерфейс>
  <отчет>
    <реализует>f0503737_164n_2023</реализует>
      <дополнительно>
      <запомнить_переменные>
        <список_переменных>dBalOpen;dSelDate;dReoDate;cOrg;cRN_Found;cRN_MarkVPL;cRN_MarkIODS;cRN_MarkNOO;lItogGK;lOnlyBSNKO;nAnLevel5;nAnLevel4;nAnLevelDD;cVFO;cBalUnits;nAccType;cAcc8;cRN_Mark8;cUnlPath;cIST;cDicIsp;cIspName;cIspTel;cUnlPath4;cIdReceiver;cIdReceiverMain;cAgent_RN;cAgentDoc</список_переменных>
        <мемофайл>ar_form0503737_33n_164n_2023;ar_form0503737_33n_183n_2023;ar_form0503737_33n_78n_2022;ar_form0503737_33n_81n_2021;ar_form0503737_33n_292n_2021;ar_form0503737_33n_11n_2020;ar_form0503737_33n_73n_2019</мемофайл>
      </запомнить_переменные>
      </дополнительно>
    <переменные>
      <переменная>
        <имя>dBalOpen</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата расчета показателей вступительного баланса-->
      </переменная>
      <переменная>
        <имя>dSelDate</имя>
        <начальное_значение>oSystem.Date</начальное_значение>
        <!--Отчетный период-->
      </переменная>
      <переменная>
        <имя>dReoDate</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата реорганизации-->
      </переменная>
      <переменная>
        <имя>dDateBegin</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата С-->
      </переменная>
      <переменная>
        <имя>dDateEnd</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата По-->
      </переменная>
      <переменная>
        <имя>cOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учреждение-->
      </переменная>
      <переменная>
        <имя>cWhereKontragent</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по контрагентам-->
      </переменная>
      <переменная>
        <имя>cRN_Found</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учредитель-->
      </переменная>
      <переменная>
        <имя>cRN_MarkVPL</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Возвраты прошлых лет)-->
      </переменная>
      <переменная>
        <имя>cRN_MarkIODS</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Иные операции с денежными средствами, не отраженные в поступлениях и выбытиях)-->
      </переменная>
      <переменная>
        <имя>cRN_MarkNOO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Не отражать в отчете)-->
      </переменная>
      <переменная>
        <имя>lItogGK</имя>
        <начальное_значение>.T.</начальное_значение>
        <!--Формировать промежуточные итоги по группировочным кодам видов расходов-->
      </переменная>
      <переменная>
        <имя>lOnlyBSNKO</имя>
        <начальное_значение>.F.</начальное_значение>
        <!--Формировать только показатели исполнения через банковские счета и некассовыми операциями-->
      </переменная>
      <переменная>
        <имя>nAnLevel5</имя>
        <начальное_значение>5</начальное_значение>
        <!--Уровень аналитики кодов поступлений (выбытий) для счетов "50410", "30404", "40110"-->
      </переменная>
      <переменная>
        <имя>nAnLevel4</имя>
        <начальное_значение>4</начальное_значение>
        <!--Уровень аналитики кодов поступлений (выбытий) для счетов денежных средств-->
      </переменная>
      <переменная>
        <имя>nAnLevelDD</имя>
        <начальное_значение>0</начальное_значение>
        <!--Уровень доп. аналитики классификации расходов для счетов денежных средств-->
      </переменная>
      <переменная>
        <имя>cVFO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Вид финансового обеспечения-->
      </переменная>
      <переменная>
        <имя>arrVFO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Массив видов финансового обеспечения-->
      </переменная>
      <переменная>
        <имя>cBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Балансовые единицы-->
      </переменная>
      <переменная>
        <имя>cWhereBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по балансовым единицам-->
      </переменная>
      <переменная>
        <имя>nAccType</имя>
        <начальное_значение>1</начальное_значение>
        <!--Размерность плана счетов-->
      </переменная>
      <переменная>
        <имя>cAcc8</имя>
        <начальное_значение>""</начальное_значение>
        <!--Счет исполнения плановых назначений некассовыми операциями-->
      </переменная>
      <переменная>
        <имя>cWhereAcc8</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по счетам для некассовых операций (колонка 8)-->
      </переменная>
      <переменная>
        <имя>cRN_Mark8</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (исполнение плановых назначений некассовыми операциями)-->
      </переменная>
      <переменная>
        <имя>cUnlPath</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки-->
      </переменная>
      <переменная>
        <имя>cFileName</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки-->
      </переменная>
      <переменная>
        <имя>cUnlPath4</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки в ГНИ 4-->
      </переменная>
      <переменная>
        <имя>cIdReceiver</имя>
        <начальное_значение>""</начальное_значение>
        <!--Идентификатор получателя информации-->
      </переменная>
      <переменная>
        <имя>cIdReceiverMain</имя>
        <начальное_значение>""</начальное_значение>
        <!--Идентификатор конечного получателя информации-->
      </переменная>      
      <переменная>
        <имя>cAgent_RN</имя>
        <начальное_значение>""</начальное_значение>
        <!--Уполномоченный представитель-->
      </переменная>
      <переменная>
        <имя>cAgentDoc</имя>
        <начальное_значение>""</начальное_значение>
        <!--Наименование документа, подтверждающего полномочия представителя-->
      </переменная>
      <переменная>
        <имя>cFileId4</имя>
        <начальное_значение>""</начальное_значение>
        <!--Идентификатор файла-->
      </переменная>      
      <переменная>
        <имя>cFileName4</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки в ГНИ 4-->
      </переменная>   
      <переменная>
        <имя>cFormCode</имя>
        <начальное_значение>""</начальное_значение>
        <!--Код формы-->
      </переменная>
    <переменная>
      <имя>cIST</имя>
      <начальное_значение>""</начальное_значение>
      <!--ИСТ-->
    </переменная>
    <переменная>
      <имя>cDicIsp</имя>
      <начальное_значение>""</начальное_значение>
      <!--Исполнитель-->
    </переменная>
    <переменная>
      <имя>cIspName</имя>
      <начальное_значение>""</начальное_значение>
      <!--ФИО исполнителя-->
    </переменная>
    <переменная>
      <имя>cIspTel</имя>
      <начальное_значение>""</начальное_значение>
      <!--Телефон исполнителя-->
    </переменная>
      <переменная>
         <имя>glBK</имя>
        <начальное_значение>""</начальное_значение>
         <!--Глава по БК-->
      </переменная>
      <переменная>
        <имя>RepG151</имя>
        <начальное_значение>CreateObject("form0503buxrepd")</начальное_значение>
      </переменная>
      <переменная>
        <имя>dReportDate</имя>
        <начальное_значение>Date(2023,12,31)</начальное_значение>
      </переменная>
      <переменная>
        <имя>lNoError</имя>
        <начальное_значение>.T.</начальное_значение>
      </переменная>
      <переменная>
        <имя>cPos18</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>cPos19</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
    </переменные>
    <запуск_формы>
      <ид>f_0503737_33n_164n_2023</ид>
    </запуск_формы>
    <вычисление>
      <сообщение>Ждите, идет выборка данных ...</сообщение>
      <FPC_><![CDATA[*[VFP]
 Local cJoinAn_D, cJoinAn_K, cOrgPO_, cWhereNOO, cAnCodes, nPos, cAnCode1, cCode302, cCode208, n4Col4, n4Col5, n4Col6, n4Col7
 Local ARRAY arBP[1]
*ON ERROR

 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

 * Cчета для некассовых операций (колонка 8)
 If !Empty(m.cWhereAcc8)
   If m.cAcc8 = "|"
     If !Empty(m.cVFO)
       cWhereAcc8 = "SubStr(AccBase.Account, " + m.cPos18 + ", 1) = '" + m.cVFO + "' And " + m.cWhereAcc8
     EndIf
     If !Empty(m.cWhereBalUnits)
       cWhereAcc8 = m.cWhereAcc8 + " And " + m.cWhereBalUnits
     EndIf
   EndIf
   
   Select AccBase.RN From AccBase ;
       Left Join BalUnit On AccBase.Rn_BalUnit = BalUnit.RN ;
     Where &cWhereAcc8 ;
     Into CURSOR curAcc8

   If _Tally = 0
     Use In curAcc8
     cWhereAcc8 = ""
   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]
* Переменные для заполнения отчета
 Private nOptionVPL, cUnitExpKind, cUnitBKlsDoh
 Private All Like nCol?Row*
 Store 0 To nCol4Row030, nCol5Row030, nCol6Row030, nCol7Row030, nCol8Row030, ;
            nCol4Row040, nCol5Row040, nCol6Row040, nCol7Row040, nCol8Row040, ;
            nCol4Row050, nCol5Row050, nCol6Row050, nCol7Row050, nCol8Row050, ;
            nCol4Row060, nCol5Row060, nCol6Row060, nCol7Row060, nCol8Row060, ;
            nCol4Row092, nCol5Row092, nCol6Row092, nCol7Row092, nCol8Row092, ;
            nCol4Row093, nCol5Row093, nCol6Row093, nCol7Row093, nCol8Row093, ;
            nCol4Row094, nCol5Row094, nCol6Row094, nCol7Row094, nCol8Row094, ;
            nCol4Row095, nCol5Row095, nCol6Row095, nCol7Row095, nCol8Row095, ;
            nCol4Row096, nCol5Row096, nCol6Row096, nCol7Row096, nCol8Row096, ;
            nCol4Row100, nCol5Row100, nCol6Row100, nCol7Row100, nCol8Row100
 Store 0 To nCol4Row520_171, nCol5Row520_171, nCol6Row520_171, nCol7Row520_171, nCol8Row520_171, ;
                             nCol5Row520_510, nCol6Row520_510, nCol7Row520_510, ;
                             nCol5Row520_610, nCol6Row520_610, nCol7Row520_610, ;
            nCol4Row520_520, nCol5Row520_520, nCol6Row520_520, nCol7Row520_520, nCol8Row520_520, ;
            nCol4Row520_620, nCol5Row520_620, nCol6Row520_620, nCol7Row520_620, nCol8Row520_620, ;
            nCol4Row520_540, nCol5Row520_540, nCol6Row520_540, nCol7Row520_540, nCol8Row520_540, ;
            nCol4Row520_640, nCol5Row520_640, nCol6Row520_640, nCol7Row520_640, nCol8Row520_640, ;
            nCol4Row520_710, nCol5Row520_710, nCol6Row520_710, nCol7Row520_710, nCol8Row520_710, ;
            nCol4Row520_810, nCol5Row520_810, nCol6Row520_810, nCol7Row520_810, nCol8Row520_810
 Store 0 To nCol4Row591, nCol5Row591, nCol6Row591, nCol7Row591, nCol8Row591, ;
            nCol4Row592, nCol5Row592, nCol6Row592, nCol7Row592
 Store 0 To nCol4Row620_720, nCol5Row620_720, nCol6Row620_720, nCol7Row620_720, nCol8Row620_720, ;
            nCol4Row620_820, nCol5Row620_820, nCol6Row620_820, nCol7Row620_820, nCol8Row620_820
 Store 0 To nCol4Row700, ;
                         nCol5Row710, nCol6Row710, nCol7Row710, ;
                         nCol5Row720, nCol6Row720, nCol7Row720, ;
                         nCol5Row731, nCol6Row731, nCol7Row731, ;
                         nCol5Row732, nCol6Row732, nCol7Row732, nCol8Row732, ;
            nCol4Row821, nCol5Row821, nCol6Row821, ;
            nCol4Row822, nCol5Row822, nCol6Row822, ;
                         nCol5Row831, nCol6Row831, nCol7Row831, nCol8Row831, ;
                         nCol5Row832, nCol6Row832, nCol7Row832, nCol8Row832
 Store 0 To nCol4Row910, nCol5Row910, nCol6Row910, ;
            nCol4Row950, nCol5Row950, nCol6Row950, nCol7Row950

cUnitExpKind = UnitRN("ExpenseKinds")
cUnitBKlsDoh = UnitRN("BKlsDoh")

*ON ERROR

&& Раздел 1. Доходы
*------------------
nOptionVPL = 1

&&030
*4
=SelAccFromBase5041("030", "0", "120")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "12", m.nAnLevel4, @nCol5Row030, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "12", m.nAnLevel4, @nCol5Row030, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "12", m.nAnLevel4, @nCol6Row030, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "12", m.nAnLevel4, @nCol6Row030, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "12", m.nAnLevel4, @nCol7Row030, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "12", m.nAnLevel4, @nCol7Row030, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "2052",,, @nCol8Row030, "OBCR;OBDB",, "302,30406",,,, 1)

&&040
*4
=SelAccFromBase5041("040", "0", "130")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "13", m.nAnLevel4, @nCol5Row040, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "13", m.nAnLevel4, @nCol5Row040, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "13", m.nAnLevel4, @nCol6Row040, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "13", m.nAnLevel4, @nCol6Row040, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "13", m.nAnLevel4, @nCol7Row040, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "13", m.nAnLevel4, @nCol7Row040, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "2053",,, @nCol8Row040, "OBCR;OBDB",, "302,30406",,,, 1)
=SelAccFromBase(m.cVFO, "2093",,, @nCol8Row040, "OBCR;OBDB",, "30403,30406",,,, 1)

&&050
*4
=SelAccFromBase5041("050", "0", "140")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "14", m.nAnLevel4, @nCol5Row050, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "14", m.nAnLevel4, @nCol5Row050, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "14", m.nAnLevel4, @nCol6Row050, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "14", m.nAnLevel4, @nCol6Row050, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "14", m.nAnLevel4, @nCol7Row050, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "14", m.nAnLevel4, @nCol7Row050, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "2054,2094",,, @nCol8Row050, "OBCR;OBDB",, "302,30406",,,, 1)

&&060
*4
=SelAccFromBase5041("060", "0", "150")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "15,16", m.nAnLevel4, @nCol5Row060, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "15,16", m.nAnLevel4, @nCol5Row060, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "15,16", m.nAnLevel4, @nCol6Row060, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "15,16", m.nAnLevel4, @nCol6Row060, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "15,16", m.nAnLevel4, @nCol7Row060, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "15,16", m.nAnLevel4, @nCol7Row060, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "2055,2056",,, @nCol8Row060, "OBCR;OBDB",, "302,30406",,,, 1)

&&092
*4
=SelAccFromBase5041("092", "0", "410")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "41", m.nAnLevel4, @nCol5Row092, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "41", m.nAnLevel4, @nCol5Row092, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "41", m.nAnLevel4, @nCol6Row092, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "41", m.nAnLevel4, @nCol6Row092, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "41", m.nAnLevel4, @nCol7Row092, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "41", m.nAnLevel4, @nCol7Row092, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "20971",,, @nCol8Row092, "OBCR;OBDB",, "30403,30406",,,, 1)
=SelAccFromBase(m.cVFO, "20571",,, @nCol8Row092, "OBCR;OBDB",, "302,30406",,,, 1)

&&093
*4
=SelAccFromBase5041("093", "0", "420")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "42", m.nAnLevel4, @nCol5Row093, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "42", m.nAnLevel4, @nCol5Row093, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "42", m.nAnLevel4, @nCol6Row093, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "42", m.nAnLevel4, @nCol6Row093, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "42", m.nAnLevel4, @nCol7Row093, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "42", m.nAnLevel4, @nCol7Row093, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "20972",,, @nCol8Row093, "OBCR;OBDB",, "30403,30406",,,, 1)
=SelAccFromBase(m.cVFO, "20572",,, @nCol8Row093, "OBCR;OBDB",, "302,30406",,,, 1)

&&094
*4
=SelAccFromBase5041("094", "0", "430")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "43", m.nAnLevel4, @nCol5Row094, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "43", m.nAnLevel4, @nCol5Row094, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "43", m.nAnLevel4, @nCol6Row094, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "43", m.nAnLevel4, @nCol6Row094, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "43", m.nAnLevel4, @nCol7Row094, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "43", m.nAnLevel4, @nCol7Row094, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "20973",,, @nCol8Row094, "OBCR;OBDB",, "30403,30406",,,, 1)
=SelAccFromBase(m.cVFO, "20573",,, @nCol8Row094, "OBCR;OBDB",, "302,30406",,,, 1)

&&095
*4
=SelAccFromBase5041("095", "0", "440")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "44", m.nAnLevel4, @nCol5Row095, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "44", m.nAnLevel4, @nCol5Row095, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "44", m.nAnLevel4, @nCol6Row095, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "44", m.nAnLevel4, @nCol6Row095, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "44", m.nAnLevel4, @nCol7Row095, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "44", m.nAnLevel4, @nCol7Row095, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "20974",,, @nCol8Row095, "OBCR;OBDB",, "30403,30406",,,, 1)
=SelAccFromBase(m.cVFO, "20574",,, @nCol8Row095, "OBCR;OBDB",, "302,30406",,,, 1)

&&096
*4
=SelAccFromBase5041("096", "0", "460")
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "46", m.nAnLevel4, @nCol5Row096, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "46", m.nAnLevel4, @nCol5Row096, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "46", m.nAnLevel4, @nCol6Row096, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "46", m.nAnLevel4, @nCol6Row096, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "46", m.nAnLevel4, @nCol7Row096, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "46", m.nAnLevel4, @nCol7Row096, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "20976",,, @nCol8Row096, "OBCR;OBDB",, "30403,30406",,,, 1)
=SelAccFromBase(m.cVFO, "20576",,, @nCol8Row096, "OBCR;OBDB",, "302,30406",,,, 1)

&&100
*4
=SelAccFromBase5041("100", "0", "180")

If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "18", m.nAnLevel4, @nCol5Row100, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "2011", "18", m.nAnLevel4, @nCol5Row100, "OBCR;OBDB",, "21003,201")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "18", m.nAnLevel4, @nCol6Row100, "OBDB;OBCR")
=SelAccFromBase(m.cVFO, "2012", "18", m.nAnLevel4, @nCol6Row100, "OBCR;OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "18", m.nAnLevel4, @nCol7Row100, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "18", m.nAnLevel4, @nCol7Row100, "OBCR;OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase(m.cVFO, "2058",,, @nCol8Row100, "OBCR;OBDB",, "302,30406",,,, 1)
=SelAccFromBase(m.cVFO, "2098",,, @nCol8Row100, "OBCR;OBDB",, "30403,30406",,,, 1)


&& Раздел 3. Источники финансирования дефицита
*---------------------------------------------
nOptionVPL = 0

&&520_171
*4
=SelAccFromBase5041("520_171", "1,2", "171", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111,20113",,, @nCol5Row520_171, "OBDB;OBCR",, "40110", "171", m.nAnLevel5)
EndIf
*6
=SelAccFromBase(m.cVFO, "20121,20123,20126,20127",,, @nCol6Row520_171, "OBDB;OBCR",, "40110", "171", m.nAnLevel5)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "171", m.nAnLevel4, @nCol7Row520_171, "OBDB;OBCR")
  =SelAccFromBase(m.cVFO, "20134", "171", m.nAnLevel4, @nCol7Row520_171, "OBCR;OBDB",, "21003,20121,20123,20126,20127,20111")
EndIf
*8
=SelAccFromBase8(m.cVFO, "171", @nCol8Row520_171, "OBDB;OBCR")

&&520_510
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "51", m.nAnLevel4, @nCol5Row520_510, "OBDB",, "21005,30305,30406",,, 3)
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "51", m.nAnLevel4, @nCol6Row520_510, "OBDB",, "21005,30305,30406",,, 3)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "51", m.nAnLevel4, @nCol7Row520_510, "OBDB",, "21005,30305,30406",,, 3)
EndIf

&&520_610
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "61", m.nAnLevel4, @nCol5Row520_610, ";OBCR",, "21005,30305,30406",,, 3)
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "61", m.nAnLevel4, @nCol6Row520_610, ";OBCR",, "21005,30305,30406",,, 3)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "61", m.nAnLevel4, @nCol7Row520_610, ";OBCR",, "21005,30305,30406",,, 3)
EndIf

&&520_520
*4
=SelAccFromBase5041("520_520", "1,2", "520", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "52", m.nAnLevel4, @nCol5Row520_520, ";OBCR")
  =SelAccFromBase(m.cVFO, "2011", "52", m.nAnLevel4, @nCol5Row520_520, "OBCR",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "52", m.nAnLevel4, @nCol6Row520_520, ";OBCR")
=SelAccFromBase(m.cVFO, "2012", "52", m.nAnLevel4, @nCol6Row520_520, "OBCR",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "52", m.nAnLevel4, @nCol7Row520_520, ";OBCR")
  =SelAccFromBase(m.cVFO, "20134", "52", m.nAnLevel4, @nCol7Row520_520, "OBCR",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "52", @nCol8Row520_520, "OBDB;OBCR")

&&520_620
*4
=SelAccFromBase5041("520_620", "1,2", "620", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "62", m.nAnLevel4, @nCol5Row520_620, "OBDB")
  =SelAccFromBase(m.cVFO, "2011", "62", m.nAnLevel4, @nCol5Row520_620, ";OBDB",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "62", m.nAnLevel4, @nCol6Row520_620, "OBDB")
=SelAccFromBase(m.cVFO, "2012", "62", m.nAnLevel4, @nCol6Row520_620, ";OBDB",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "62", m.nAnLevel4, @nCol7Row520_620, "OBDB")
  =SelAccFromBase(m.cVFO, "20134", "62", m.nAnLevel4, @nCol7Row520_620, ";OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "62", @nCol8Row520_620, "OBDB;OBCR")

&&520_540
*4
=SelAccFromBase5041("520_540", "1,2", "540", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "54", m.nAnLevel4, @nCol5Row520_540, ";OBCR")
  =SelAccFromBase(m.cVFO, "2011", "54", m.nAnLevel4, @nCol5Row520_540, "OBCR",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "54", m.nAnLevel4, @nCol6Row520_540, ";OBCR")
=SelAccFromBase(m.cVFO, "2012", "54", m.nAnLevel4, @nCol6Row520_540, "OBCR",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "54", m.nAnLevel4, @nCol7Row520_540, ";OBCR")
  =SelAccFromBase(m.cVFO, "20134", "54", m.nAnLevel4, @nCol7Row520_540, "OBCR",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "54", @nCol8Row520_540, "OBDB;OBCR")

&&520_640
*4
=SelAccFromBase5041("520_640", "1,2", "640", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "64", m.nAnLevel4, @nCol5Row520_640, "OBDB")
  =SelAccFromBase(m.cVFO, "2011", "64", m.nAnLevel4, @nCol5Row520_640, ";OBDB",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "64", m.nAnLevel4, @nCol6Row520_640, "OBDB")
=SelAccFromBase(m.cVFO, "2012", "64", m.nAnLevel4, @nCol6Row520_640, ";OBDB",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "64", m.nAnLevel4, @nCol7Row520_640, "OBDB")
  =SelAccFromBase(m.cVFO, "20134", "64", m.nAnLevel4, @nCol7Row520_640, ";OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "64", @nCol8Row520_640, "OBDB;OBCR")

&&520_710
*4
=SelAccFromBase5041("520_710", "1,2", "710", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "71", m.nAnLevel4, @nCol5Row520_710, "OBDB")
  =SelAccFromBase(m.cVFO, "2011", "71", m.nAnLevel4, @nCol5Row520_710, ";OBDB",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "71", m.nAnLevel4, @nCol6Row520_710, "OBDB")
=SelAccFromBase(m.cVFO, "2012", "71", m.nAnLevel4, @nCol6Row520_710, ";OBDB",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "71", m.nAnLevel4, @nCol7Row520_710, "OBDB")
  =SelAccFromBase(m.cVFO, "20134", "71", m.nAnLevel4, @nCol7Row520_710, ";OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "71", @nCol8Row520_710, "OBDB;OBCR")

&&520_810
*4
=SelAccFromBase5041("520_810", "1,2", "810", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "81", m.nAnLevel4, @nCol5Row520_810, ";OBCR")
  =SelAccFromBase(m.cVFO, "2011", "81", m.nAnLevel4, @nCol5Row520_810, "OBCR",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "81", m.nAnLevel4, @nCol6Row520_810, ";OBCR")
=SelAccFromBase(m.cVFO, "2012", "81", m.nAnLevel4, @nCol6Row520_810, "OBCR",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "81", m.nAnLevel4, @nCol7Row520_810, ";OBCR")
  =SelAccFromBase(m.cVFO, "20134", "81", m.nAnLevel4, @nCol7Row520_810, "OBCR",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "81", @nCol8Row520_810, "OBDB;OBCR")

&&591
*4
=SelAccFromBase5041("591", "1,2", "510,610", "51", 2)
nOptionVPL = 3
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row591, "OBDB",, "21005",,, 1)
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row591, "OBDB",,,,, 2)
EndIf
*6
=SelAccFromBase(m.cVFO, "2012",,,  @nCol6Row591, "OBDB",, "21005",,, 1)
=SelAccFromBase(m.cVFO, "2012",,,  @nCol6Row591, "OBDB",,,,, 2)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row591, "OBDB",, "21005",,, 1)
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row591, "OBDB",,,,, 2)
EndIf
nOptionVPL = 0
*8
=SelAccFromBase(m.cVFO, "2093,2097,2098",,,   @nCol8Row591, "OBCR",, "302,30403",,,, 2)
=SelAccFromBase(m.cVFO, "21005",,,   @nCol8Row591, "OBCR",, "302")

&&592
*4
=SelAccFromBase5041("592", "1,2", "510,610", "61", 2)
nOptionVPL = 3
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row592, ";OBCR",, "21005",,, 1)
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row592, ";OBCR",,,,, 2)
EndIf
*6
=SelAccFromBase(m.cVFO, "2012",,,  @nCol6Row592, ";OBCR",, "21005",,, 1)
=SelAccFromBase(m.cVFO, "2012",,,  @nCol6Row592, ";OBCR",,,,, 2)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row592, ";OBCR",, "21005",,, 1)
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row592, ";OBCR",,,,, 2)
EndIf
nOptionVPL = 0

&&620_720
*4
=SelAccFromBase5041("620_720", "1,2", "720", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "72", m.nAnLevel4, @nCol5Row620_720, "OBDB")
  =SelAccFromBase(m.cVFO, "2011", "72", m.nAnLevel4, @nCol5Row620_720, ";OBDB",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "72", m.nAnLevel4, @nCol6Row620_720, "OBDB")
=SelAccFromBase(m.cVFO, "2012", "72", m.nAnLevel4, @nCol6Row620_720, ";OBDB",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "72", m.nAnLevel4, @nCol7Row620_720, "OBDB")
  =SelAccFromBase(m.cVFO, "20134", "72", m.nAnLevel4, @nCol7Row620_720, ";OBDB",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "72", @nCol8Row620_720, "OBDB;OBCR")

&&620_820
*4
=SelAccFromBase5041("620_820", "1,2", "8s20", "171,52,62,54,64,71,81.72,82", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "2011", "82", m.nAnLevel4, @nCol5Row620_820, ";OBCR")
  =SelAccFromBase(m.cVFO, "2011", "82", m.nAnLevel4, @nCol5Row620_820, "OBCR",, "21003,20134")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012", "82", m.nAnLevel4, @nCol6Row620_820, ";OBCR")
=SelAccFromBase(m.cVFO, "2012", "82", m.nAnLevel4, @nCol6Row620_820, "OBCR",, "21003,20134")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134", "82", m.nAnLevel4, @nCol7Row620_820, ";OBCR")
  =SelAccFromBase(m.cVFO, "20134", "82", m.nAnLevel4, @nCol7Row620_820, "OBCR",, "21003,201")
EndIf
*8
=SelAccFromBase8(m.cVFO, "82", @nCol8Row620_820, "OBDB;OBCR")

&&700
*4
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "5041",,, @nCol4Row700, "OBDB;OBCR")
EndIf

&&710
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row710, ";OBDB")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012,21003",,, @nCol6Row710, ";OBDB")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row710, ";OBDB")
EndIf

&&720
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row720, "OBCR")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012,21003",,, @nCol6Row720, "OBCR")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row720, "OBCR")
EndIf

&&731
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row731, "OBDB",, "21003,20134,20113,20123")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012,21003",,, @nCol6Row731, "OBDB",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row731, "OBDB",, "21003,201")
EndIf

&&732
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row732, ";OBCR",, "21003,20134,20113,20123")
EndIf
*6
=SelAccFromBase(m.cVFO, "2012,21003",,, @nCol6Row732, ";OBCR",, "201,21003")
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row732, ";OBCR",, "21003,201")
EndIf

&&821
*4
=SelAccFromBase5041("821", "1,2", "510", "51", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111,20113",,, @nCol5Row821, "OBDB",, "30404", "510", m.nAnLevel5)
EndIf
*6
=SelAccFromBase(m.cVFO, "20121,20123,20127",,, @nCol6Row821, "OBDB",, "30404", "510", m.nAnLevel5)

&&822
*4
=SelAccFromBase5041("822", "1,2", "610", "61", 1)
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row822, ";OBCR",, "30404", "610", m.nAnLevel5)
EndIf
*6
=SelAccFromBase(m.cVFO, "20121,20123,20127",,, @nCol6Row822, ";OBCR",, "30404", "610", m.nAnLevel5)

&&831
nOptionVPL = 3
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row831, "OBDB",, "30406",,,,,, .T.)
EndIf
*6
=SelAccFromBase(m.cVFO, "20121,20127",,, @nCol6Row831, "OBDB",, "30406",,,,,, .T.)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row831, "OBDB",, "30406",,,,,, .T.)
EndIf
nOptionVPL = 0
*8
=SelAccFromBase(m.cVFO, "30406",,, @nCol8Row831, "OBCR",, "2053,2054,2055,2056,2057,2093,2094,20971,20972,20973,20974,20976,2098,302,30403")
=SelAccFromBase(m.cVFO, "30406",,, @nCol8Row831, "OBCR",, "30406",,,, 2, .T.)

&&832
nOptionVPL = 3
*5
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol5Row832, ";OBCR",, "30406",,,,,, .T.)
EndIf
*6
=SelAccFromBase(m.cVFO, "20121,20127",,, @nCol6Row832, ";OBCR",, "30406",,,,,, .T.)
*7
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol7Row832, ";OBCR",, "30406",,,,,, .T.)
EndIf
nOptionVPL = 0
*8
=SelAccFromBase(m.cVFO, "30406",,, @nCol8Row832, ";OBDB",, "2053,2054,2055,2056,2057,2093,2094,20971,20972,20973,20974,20976,2098,302,30403")
=SelAccFromBase(m.cVFO, "30406",,, @nCol8Row832, ";OBDB",, "30406",,,, 2, .T.)


&& Раздел 4. Сведения о возвратах остатков субсидий и расходов прошлых лет
*--------------------------------------------------------------------------
nOptionVPL = 2

&&910
*4
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol4Row910, "OBCR",, "!21003,201")
EndIf
*5
=SelAccFromBase(m.cVFO, "2012",,, @nCol5Row910, "OBCR",, "!21003,201")
*6
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol6Row910, "OBCR",, "!21003,201")
EndIf

&&950
*4
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20111",,, @nCol4Row950, "OBDB",, "!21003,201")
EndIf
*5
=SelAccFromBase(m.cVFO, "2012",,, @nCol5Row950, "OBDB",, "!21003,201")
*6
If !m.lOnlyBSNKO
  =SelAccFromBase(m.cVFO, "20134",,, @nCol6Row950, "OBDB",, "!21003,201")
EndIf
*7
nOptionVPL = 0
=SelAccFromBase(m.cVFO, "2093,2097,2098",,, @nCol7Row950, "OBCR",, "302,30403",,,, 2)


&& Раздел 2. Расходы
*-------------------
nOptionVPL = 1

CurClose("curR4;curR5;curR6;curR7;curR8")

*4
=SelAccFromBaseR("4", "5041",, .T., "OBDB;OBCR")
*5
=SelAccFromBaseR("5", "20111", .T., .T., "OBCR;OBDB", "!21003,201,21005", .T.)
*6
=SelAccFromBaseR("6", "2012",  .T., .T., "OBCR;OBDB", "!21003,201,21005", .T.)
=SelAccFromBaseR("6", "208",,, "OBDB;OBCR", "21003")
*7
=SelAccFromBaseR("7", "20134", .T., .T., "OBCR;OBDB", "!21003,201,21005", .T.)
*8
=SelAccFromBaseR("8", "302",,,   "OBDB;OBCR", "2052,2054,2053,2055,2056,2057,2058,2093,2094,30406,21005")
=SelAccFromBaseR("8", "30403",,, "OBDB;OBCR", "208,209,30406")
=SelAccFromBaseR("8", "208",,,   "OBDB;OBCR", "30403")
=SelAccFromBaseR("8", "30406",,, "OBDB;OBCR", "30406")

Select RN_VidR From curR4 ;
  Union ALL Select RN_VidR From curR5 ;
  Union ALL Select RN_VidR From curR6 ;
  Union ALL Select RN_VidR From curR7 ;
  Union ALL Select RN_VidR From curR8 ;
  Into CURSOR curRAll_

Select DIST RN_VidR From curRAll_ Into CURSOR curRAll
Use In curRAll_

* Первичные строки
Select A.RN_VidR, Left(Nvl(E.Code, Space(8)), 3) As Code, ;
       Nvl(R4.SUMM, 000000000000000.00) As Sum4, ;
       Nvl(R5.SUMM, 000000000000000.00) As Sum5, ;
       Nvl(R6.SUMM, 000000000000000.00) As Sum6, ;
       Nvl(R7.SUMM, 000000000000000.00) As Sum7, ;
       Nvl(R8.SUMM, 000000000000000.00) As Sum8  ;
  From curRAll A ;
    Left Join bExpKind E  On A.RN_VidR = E.RN ;
    Left Join curR4    R4 On A.RN_VidR = R4.RN_VidR ;
    Left Join curR5    R5 On A.RN_VidR = R5.RN_VidR ;
    Left Join curR6    R6 On A.RN_VidR = R6.RN_VidR ;
    Left Join curR7    R7 On A.RN_VidR = R7.RN_VidR ;
    Left Join curR8    R8 On A.RN_VidR = R8.RN_VidR ;
  Into CURSOR curSpecR_

* Итоги по расходам
Sum Sum4, Sum5, Sum6, Sum7, Sum8 To nCol4Row200, nCol5Row200, nCol6Row200, nCol7Row200, nCol8Row200

= CurClose("crEopSpecDB;crEopSpecKR;curAcc8;curR4;curR5;curR6;curR7;curR8;curRAll")

If m.lItogGK   && Формировать промежуточные итоги по группировочным кодам видов расходов
  * Итоги 2-го уровня
  Select Left(Code, 2) + "0" As Code, ;
         Sum(Sum4) As Sum4, Sum(Sum5) As Sum5, Sum(Sum6) As Sum6, Sum(Sum7) As Sum7, Sum(Sum8) As Sum8 ;
    From curSpecR_ ;
    Where SubStr(Code, 3) # "0" And !Empty(Code) ;
    Group By 1 ;
    Into CURSOR curSpecRit2_

  Select Nvl(E.RN, Space(4)) As RN_VidR, C.* ;
    From curSpecRit2_ C ;
      Left Join bExpKind E On PadR(C.Code, 8) = E.Code ;
    Into CURSOR curSpecRit2

  Use In curSpecRit2_

  * Итоги 1-го уровня
  Select Left(Code, 1) + "00" As Code, ;
         Sum(Sum4) As Sum4, Sum(Sum5) As Sum5, Sum(Sum6) As Sum6, Sum(Sum7) As Sum7, Sum(Sum8) As Sum8 ;
    From curSpecR_ ;
    Where SubStr(Code, 2) # "00" And !Empty(Code) ;
    Group By 1 ;
    Into CURSOR curSpecRit1_

  Select Nvl(E.RN, Space(4)) As RN_VidR, C.* ;
    From curSpecRit1_ C ;
      Left Join bExpKind E On PadR(C.Code, 8) = E.Code ;
    Into CURSOR curSpecRit1

  Use In curSpecRit1_

  * Основная таблица раздела "Расходы"
  Select 0 As Type, * From curSpecR_ ;
    Union ALL Select 2 As Type, * From curSpecRit2 ;
    Union ALL Select 1 As Type, * From curSpecRit1 ;
    Order By Code ;
    Into CURSOR curSpecR
Else
  * Основная таблеца раздела "Расходы"
  Select 0 As Type, * From curSpecR_ ;
    Order By Code ;
    Into CURSOR curSpecR
EndIf

CurClose("curSpecR_;curSpecRit2;curSpecRit1")

*
&& Формирую имя файла для выгрузки в МинФин
If !Empty(m.cUnlPath)
  Local ARRAY aFiles(1)
  Local nNum, cNum, nN, i
  cUnlPath  = AllTrim(m.cUnlPath)
  cFormCode = "337" + Iif(Empty(m.cVFO), "", RTrim(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
  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), m.nN - 2, 2)
      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

&& Формирую имя файла для выгрузки в ГНИ 4
If !Empty(m.cUnlPath4) And !Empty(m.cVFO)
  Local ARRAY aFiles(1), arrSender[1]
  Local cOrgRN, cSender, nNum
  
  cFileId4 = "NO_BOUCHR6." + m.cVFO + "_" + PadL(AllTrim(m.cIdReceiver), 4, "0") + "_" + PadL(AllTrim(m.cIdReceiverMain), 4, "0")

  * отправитель информации
  cOrgRN = Iif(m.cOrg # "|" And Len(m.cOrg) == 4, m.cOrg, PadR(oSystem.OwnerOrgRN, 4))
  Select TYPE, INN From OrgBase Where RN = ?m.cOrgRN Into ARRAY arrSender
  If _Tally = 0
    cSender = Replicate("0", 19)
  Else
    If arrSender[1] = "1"   && юр. лицо
      cSender = PadR(StrTran(AllTrim(arrSender(2)), "/", ""), 19, "0")
    Else                    && физ. лицо
      cSender = PadR(AllTrim(arrSender(2)), 12, "0")
    EndIf
  EndIf
  cFileId4 = m.cFileId4 + "_" + m.cSender + "_" + DToS(oSystem.Date) + "_"
  nNum = 1
  DO While ADir(aFiles, m.cUnlPath4 + m.cFileId4 + LTrim(Str(m.nNum, 36)) + ".xml") # 0
    nNum = m.nNum + 1
  EndDO
  cFileId4   = m.cFileId4 + LTrim(Str(m.nNum, 36))
  cFileName4 = m.cUnlPath4 + m.cFileId4 + ".xml"
EndIf

** Непосредственно печать
Local oPrint, s
oPrint = objCaller.objExcelRep

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

* Раздел 2. Расходы
Local ARRAY aRepParts(3)
aRepParts[ 1 ] = "SpecRit1"
aRepParts[ 2 ] = "SpecRit2"
aRepParts[ 3 ] = "SpecR"

oPrint.ReportPrepare(@aRepParts)

Select curSpecR
Scan
  s = Iif(curSpecR.Type = 0, "", "it" + Str(curSpecR.Type, 1))
  oPrint.PrintReportPart("SpecR" + m.s)
EndScan

oPrint.ReportFinal()

If !Empty(m.cFileName4)
  * Выгрузка в ГНИ 4
  Select curSpecR
  ni = 0
  Scan
    ni = m.ni + 1
    If m.ni # 1
      oPrint.InsertRange()
    EndIf
    oPrint.PrintRange("SpecRGni")
  EndScan
EndIf

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

CurClose("curSpecR")

* Удаление листа со сценарием выгрузки
Local nSheet
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

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

oPrint = NULL

Return


**********************************************************
Procedure SelAccFromBase
  Parameters c18, cAccount, cAnalit, nAnLevel, nValue, cNameProc, c18Corr, cAccCorr, cAnCorr, nAnLevCorr, nIsVPL, nBKlsPrf, l610, lPrfCorr

  Private cListBKls, cListPRF
  Local ARRAY arrLevel[1]
  Local cAcc, cWhere, cWhereC, cJoinCorr, cJoinBKls, cJoinBKlsC, lOk, cAccC, cAcc1, nPos, cNot
  Store "" To cWhere, cWhereC, cJoinCorr, cJoinBKls, cJoinBKlsC

  * Список счетов
  cAcc = AllTrim(m.cAccount)
  Do While !Empty(m.cAcc)
    nPos = AT(",", m.cAcc)
    If m.nPos = 0
      cAcc1 = m.cAcc
      cAcc  = ""
    Else
      cAcc1 = AllTrim(Left(m.cAcc, m.nPos - 1))
      cAcc  = AllTrim(SubStr(m.cAcc, m.nPos + 1))
    EndIf
    cWhere = Iif(Empty(m.cWhere), "", m.cWhere + " OR ") + "SubStr(Account, " + m.cPos19 + ", " + LTrim(Str(Len(m.cAcc1))) + ") = '" + m.cAcc1 + "'"
  EndDO
  If AT(",", m.cAccount) # 0
    cWhere = "(" + m.cWhere + ")"
  EndIf

  If !Empty(m.c18)
    cNot = ""
    If Left(m.c18, 1) = "!"
      cNot = "!"
      c18 = SubStr(m.c18, 2)
    EndIf
    cWhere = "SubStr(AccBase.Account, " + m.cPos18 + ", 1) " + m.cNot + "= '" + m.c18 + "' And " + m.cWhere
  EndIf

  If !Empty(m.cWhereBalUnits)
    cWhere = m.cWhere + " And " + m.cWhereBalUnits
  EndIf

  * БКД или ШФ с заполненным дескриптором ЭКД
  If Type("m.nBKlsPrf") = "N"
    cListBKls = Iif(m.nBKlsPrf = 1, "0", "1,2")
    cListPRF  = Iif(m.nBKlsPrf = 1, "'120','130','140','150','410','420','430','440','180'", "'171','520','620','540','640','710','810','720','820', '510'") ;
              + Iif(!IsNull(m.l610) And m.l610, ",'610'", "")
    If m.nAccType = 1
      cWhere = m.cWhere + " And (InList(BKlsDoh.KLS_TYPE, " + m.cListBKls + ") Or InList(PRF_ECLS.MNEMO, " + m.cListPRF + "))"
      cJoinBKls = "Left Join BKlsDoh  On AccBase.RN_KLSDOH = BKlsDoh.RN " ;
                + "Left Join fSbFBase On AccBase.RN_TFIN   = fSbFBase.RN " ;
                + "Left Join PRF_ECLS On fSbFBase.RN_ECLSD = PRF_ECLS.RN"
    Else
      cWhere = m.cWhere + " And ('3' $ AccBase.ORG_AN Or AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN)"
    EndIf
  EndIf

  Select AccBase.RN ;
    From AccBase ;
      Left Join BalUnit  On AccBase.Rn_BalUnit = BalUnit.RN ;
      &cJoinBKls ;
    Where &cWhere ;
    Into CURSOR curAcc READWRITE

  lOk = _Tally # 0

  * Список корр. счетов
  If m.lOk And !IsNull(m.cAccCorr) And !Empty(m.cAccCorr)
    cAccC = AllTrim(m.cAccCorr)
    cNot  = ""
    If Left(m.cAccC, 1) = "!"
      cNot  = "!"
      cAccC = AllTrim(SubStr(m.cAccC, 2))
    EndIf
    Do While !Empty(m.cAccC)
      nPos = AT(",", m.cAccC)
      If m.nPos = 0
        cAcc1 = m.cAccC
        cAccC = ""
      Else
        cAcc1 = AllTrim(Left(m.cAccC, m.nPos - 1))
        cAccC = AllTrim(SubStr(m.cAccC, m.nPos + 1))
      EndIf
      cWhereC = Iif(Empty(m.cWhereC), "", m.cWhereC + " OR ") + "SubStr(Account, " + m.cPos19 + ", " + LTrim(Str(Len(m.cAcc1))) + ") = '" + m.cAcc1 + "'"
    EndDO
    cWhereC = m.cNot + "(" + m.cWhereC + ")"

    If !IsNull(m.c18Corr) And !Empty(m.c18Corr)
      cWhereC = "SubStr(Account, " + m.cPos18 + ", 1) = '" + m.c18Corr + "' And " + m.cWhereC
    EndIf

    If !IsNull(m.lPrfCorr) And m.lPrfCorr
      cListBKls = "1,2"
      cListPRF  = "'171','520','620','540','640','710','810','720','820', '510','610'"
      If m.nAccType = 1
        cWhereC = m.cWhereC + " And (InList(BKlsDoh.KLS_TYPE, " + m.cListBKls + ") Or InList(PRF_ECLS.MNEMO, " + m.cListPRF + "))"
        cJoinBKlsC = "Left Join BKlsDoh  On AccBase.RN_KLSDOH = BKlsDoh.RN " ;
                   + "Left Join fSbFBase On AccBase.RN_TFIN   = fSbFBase.RN " ;
                   + "Left Join PRF_ECLS On fSbFBase.RN_ECLSD = PRF_ECLS.RN"
      Else
        cWhere = m.cWhere + " And ('3' $ AccBase.ORG_AN Or AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN)"
      EndIf
    EndIf
    
    Select AccBase.RN ;
      From AccBase ;
        &cJoinBKlsC ;
      Where &cWhereC ;
      Into CURSOR curAccCorr

    lOk = _Tally # 0

    cJoinCorr = "Inner Join curAccCorr C ON S.RN_DB = C.RN"
  EndIf

  If m.lOk
    RepG151.GetComRepPrm151("_0503737", @lNoError, c18, cAccount, cAnalit, nAnLevel, nValue, cNameProc, c18Corr, cAccCorr, cAnCorr, nAnLevCorr)
    lOk = m.lOk And m.lNoError
*    RepG151.GetComRepPrm151("0503737", @lNoError, .T., @nValue)
  EndIf

  If m.lOk
    Local cAccAn, cAccA1, cS1, cS2, nPos, c1, c2, cLevel, cLevCorr, cWhere, cWhere1, cWhere4, cJoinAN, cJoinAN4, i, cJoinAnCorr
    Local ARRAY arrProc[2], arrIt[1]
    Store "" To cNot, cS1, cS2, cLevCorr, cWhere, cWhere1, cJoinAN, cJoinAnCorr

    * Анализ запрашиваемых оборотов
    nPos = AT(";", m.cNameProc)

    If m.nPos = 0
      arrProc(1) = Upper(m.cNameProc)
    Else
      arrProc(1) = Upper(Left(m.cNameProc, m.nPos - 1))
      arrProc(2) = Upper(SubStr(m.cNameProc, m.nPos + 1))
    EndIf

    * Отбор проводок по аналитике счетов
    If !IsNull(m.cAnalit) And !Empty(m.cAnalit)
      cLevel = Str(m.nAnLevel, 1)
      cAccAn = AllTrim(m.cAnalit)
      If Left(m.cAccAn, 1) = "!"
        cNot   = "!"
        cAccAn = AllTrim(SubStr(m.cAccAn, 2))
      EndIf
      Do While !Empty(m.cAccAn)
        nPos = AT(",", m.cAccAn)
        If m.nPos = 0
          cAccA1 = m.cAccAn
          cAccAn = ""
        Else
          cAccA1 = AllTrim(Left(m.cAccAn, m.nPos - 1))
          cAccAn = AllTrim(SubStr(m.cAccAn, m.nPos + 1))
          cS1 = "("
          cS2 = ")"
        EndIf
        cWhere1 = Iif(Empty(m.cWhere1), "", m.cWhere1 + " OR ") + "Like('" + m.cAccA1 + "*', AllTrim(AN.SAccount))"
      EndDo
      cWhere1 = " And " + m.cNot + m.cS1 + m.cWhere1 + m.cS2
      cJoinAN = "Left Join AccSpec AN ON S.RN_DB_A" + m.cLevel + " = AN.RN"
    EndIf

    * Отбор проводок по аналитике корр. счетов
    If !IsNull(m.cAnCorr) And !Empty(m.cAnCorr)
      cLevCorr = Str(m.nAnLevCorr, 1)
      cWhere1  = m.cWhere1 + " And Like('" + m.cAnCorr + "*', AllTrim(ANC.SAccount))"
      cJoinAnCorr = "Left Join AccSpec ANC ON S.RN_DB_A" + m.cLevCorr + " = ANC.RN"
    EndIf

    * Отбор/Исключение ХО по особой отметке "Возвраты прошлых лет"
    If Type("m.nIsVPL") # "N"
      nIsVPL = 0
    EndIf
    If m.nOptionVPL = 2 Or m.nIsVPL = 2   && только возвраты прошлых лет
      If Empty(m.cRN_MarkVPL)
        cWhere1 = m.cWhere1 + " And .F."
      Else
        cWhere1 = m.cWhere1 + " And S.RN_MARK = '" + m.cRN_MarkVPL + "'"
      EndIf
    Else
      If (m.nOptionVPL = 1 Or m.nIsVPL = 1) And !Empty(m.cRN_MarkVPL)   && исключить возвраты прошлых лет
        cWhere1 = m.cWhere1 + " And S.RN_MARK # '" + m.cRN_MarkVPL + "'"
      EndIf
    EndIf

    * Отбор/Исключение ХО по особой отметке "Иные операции с денежными средствами, не отраженные в поступлениях и выбытиях"
    If Empty(m.cRN_MarkIODS)
      If m.nIsVPL = 3
        cWhere1 = m.cWhere1 + " And .F."
      EndIf
    Else
      If m.nOptionVPL # 0 Or m.nIsVPL = 3
        cWhere1 = m.cWhere1 + " And S.RN_MARK " + Iif(m.nIsVPL = 3, "=", "#") + " '" + m.cRN_MarkIODS + "'"
      EndIf
    EndIf

    If !Empty(m.cWhere1)
      cWhere = "Where " + SubStr(m.cWhere1, 6)
    EndIf

    * Подсчет сумм оборотов
    For m.i = 1 To 2
      If Empty(arrProc(m.i))
        Loop
      EndIf

      If arrProc(m.i) == "OBDB"
        c1 = "DB"
        c2 = "KR"
        cJoinAN     = StrTran(m.cJoinAN,     "RN_KR", "RN_DB")
        cJoinCorr   = StrTran(m.cJoinCorr,   "RN_DB", "RN_KR")
        cJoinAnCorr = StrTran(m.cJoinAnCorr, "RN_DB", "RN_KR")
      Else
        c1 = "KR"
        c2 = "DB"
        cJoinAN     = StrTran(m.cJoinAN,     "RN_DB", "RN_KR")
        cJoinCorr   = StrTran(m.cJoinCorr,   "RN_KR", "RN_DB")
        cJoinAnCorr = StrTran(m.cJoinAnCorr, "RN_KR", "RN_DB")
      EndIf

      Do Case
        Case Type("m.nBKlsPrf") = "N" And m.nAccType # 1   && БКД или ШФ с заполненным дескриптором ЭКД
          Select A.RN, S.RN_&c1._A1 As An1, S.RN_&c1._A2 As An2, S.RN_&c1._A3 As An3, S.RN_&c1._A4 As An4, S.RN_&c1._A5 As An5, ;
                 S.Sum_Equal ;
            From crEopSpec&c1 S ;
              Inner Join curAcc A ON S.RN_&c1 = A.RN ;
              &cJoinCorr ;
              &cJoinAN ;
              &cJoinAnCorr ;
            &cWhere ;
            Into CURSOR curEopSpec READWRITE

          Delete For !CheckBKlsECls()
          Select Sum(Sum_Equal) From curEopSpec Into ARRAY arrIt
          Use In curEopSpec

        Case !IsNull(m.lPrfCorr) And m.lPrfCorr And m.nAccType # 1   && БКД или ШФ с заполненным дескриптором ЭКД в корр. счете
          Select C.RN, S.RN_&c2._A1 As An1, S.RN_&c2._A2 As An2, S.RN_&c2._A3 As An3, S.RN_&c2._A4 As An4, S.RN_&c2._A5 As An5, ;
                 S.Sum_Equal ;
            From crEopSpec&c1 S ;
              Inner Join curAcc A ON S.RN_&c1 = A.RN ;
              &cJoinCorr ;
              &cJoinAN ;
              &cJoinAnCorr ;
            &cWhere ;
            Into CURSOR curEopSpec READWRITE

          Delete For !CheckBKlsECls()
          Select Sum(Sum_Equal) From curEopSpec Into ARRAY arrIt
          Use In curEopSpec

      Otherwise
        Select Sum(S.Sum_Equal) ;
          From crEopSpec&c1 S ;
            Inner Join curAcc A ON S.RN_&c1 = A.RN ;
            &cJoinCorr ;
            &cJoinAN ;
            &cJoinAnCorr ;
          &cWhere ;
          Into ARRAY arrIt
      EndCase

      If _Tally # 0
        nValue = m.nValue + Iif(m.i = 1, arrIt(1), -arrIt(1))
      EndIf
    Next
  EndIf

  = CurClose("curAcc;curAccCorr")
EndProc


**********************************************************
Procedure CheckBKlsECls
  Local lOk, i, s

  If Seek(curEopSpec.RN, "AccBase", "RN")
    For m.i = 1 To 5
      s = Str(m.i, 1)
      If SubStr(AccBase.ORG_AN, m.i, 1) = '3' And !IsNull(curEopSpec.An&s.) And !Empty(curEopSpec.An&s.)
        Select B.RN ;
          From AccSpec A ;
            Inner Join BKlsDoh B On A.RN_KlsDoh = B.RN ;
          Where A.RN = ?curEopSpec.An&s And InList(B.KLS_TYPE, &cListBKls.) ;
          To SCREEN NOCONSOLE

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

    If !m.lOk And AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN
      s = Str(AT('9', AccBase.SMETA_AN), 1)
      If !IsNull(curEopSpec.An&s.) And !Empty(curEopSpec.An&s.)
        Select F.RN ;
          From AccSpec A ;
            Inner Join fSbFBase F On A.RN_TFIN = F.RN ;
            Inner Join PRF_ECLS P On F.RN_ECLSD = P.RN ;
          Where A.RN = ?curEopSpec.An&s And InList(P.Mnemo, &cListPRF.) ;
          To SCREEN NOCONSOLE

        lOk = _Tally # 0
      EndIf
    EndIf
  EndIf

  Return m.lOk
EndProc


**********************************************************
Procedure SelAccFromBase8
  Parameters c18, cAnalit, nValue, cNameProc

  If Empty(m.cWhereAcc8) And Empty(m.cRN_Mark8)
    Return
  EndIf

  Local cWhere, cWhereMark, cWhere1, cLevel, cJoinAN, nPos, c1, i, cAccAn, cAccA1, cNot, cS1, cS2
  Local ARRAY arrProc[2], arrIt[1]
  Store "" To cWhere, cWhere1, cJoinAN, cNot, cS1, cS2

  * Анализ запрашиваемых оборотов
  nPos = AT(";", m.cNameProc)

  If m.nPos = 0
    arrProc(1) = Upper(m.cNameProc)
  Else
    arrProc(1) = Upper(Left(m.cNameProc, m.nPos - 1))
    arrProc(2) = Upper(SubStr(m.cNameProc, m.nPos + 1))
  EndIf

  * Отбор проводок по аналитике счетов
  If !IsNull(m.cAnalit) And !Empty(m.cAnalit)
    cLevel = Str(m.nAnLevel4, 1)
    cAccAn = AllTrim(m.cAnalit)
    If Left(m.cAccAn, 1) = "!"
      cNot   = "!"
      cAccAn = AllTrim(SubStr(m.cAccAn, 2))
    EndIf
    Do While !Empty(m.cAccAn)
      nPos = AT(",", m.cAccAn)
      If m.nPos = 0
        cAccA1 = m.cAccAn
        cAccAn = ""
      Else
        cAccA1 = AllTrim(Left(m.cAccAn, m.nPos - 1))
        cAccAn = AllTrim(SubStr(m.cAccAn, m.nPos + 1))
        cS1 = "("
        cS2 = ")"
      EndIf
      cWhere1 = Iif(Empty(m.cWhere1), "", m.cWhere1 + " OR ") + "Like('" + m.cAccA1 + "*', AllTrim(AN.SAccount))"
    EndDo
    cWhere1 = " And " + m.cNot + m.cS1 + m.cWhere1 + m.cS2
    cJoinAN = "Left Join AccSpec AN ON S.RN_DB_A" + m.cLevel + " = AN.RN"
  EndIf

  * Подсчет сумм оборотов
  For m.i = 1 To 2
    If Empty(arrProc(m.i))
      Loop
    EndIf

    If arrProc(m.i) == "OBDB"
      c1 = "DB"
      cJoinAN = StrTran(m.cJoinAN, "RN_KR", "RN_DB")
    Else
      c1 = "KR"
      cJoinAN = StrTran(m.cJoinAN, "RN_DB", "RN_KR")
    EndIf

    If !Empty(m.cWhereAcc8)
      cWhere = "S.RN_" + m.c1 + " In (Select RN From curAcc8)"
    EndIf

    If !Empty(m.cRN_Mark8)
      cWhereMark = "S.RN_MARK = '" + m.cRN_Mark8 + "'"
      If !Empty(m.c18)
        cWhereMark = m.cWhereMark + " And SubStr(A.Account, " + m.cPos18 + ", 1) = '" + m.c18 + "'"
      EndIf
      If !Empty(m.cWhereBalUnits)
        cWhereMark = m.cWhereMark + " And " + m.cWhereBalUnits
      EndIf
      cWhere = Iif(Empty(m.cWhere), "", "(" + m.cWhere + " Or ") + m.cWhereMark + Iif(Empty(m.cWhere), "", ")")
    EndIf
   
*    * Отбор/Исключение ХО по особой отметке "Возвраты прошлых лет"
*    If m.nOptionVPL = 2   && отбор
*      cWhere = m.cWhere + " And S.RN_MARK = '" + m.cRN_MarkVPL + "'"
*    Else
*      If m.nOptionVPL = 1 And !Empty(m.cRN_MarkVPL)   && исключение
*        cWhere = m.cWhere + " And S.RN_MARK # '" + m.cRN_MarkVPL + "'"
*      EndIf
*    EndIf

    Select Sum(S.Sum_Equal) ;
      From crEopSpec&c1 S ;
        Inner Join AccBase A On S.RN_&c1 = A.RN ;
        Left  Join BalUnit   On A.Rn_BalUnit = BalUnit.RN ;
        &cJoinAN ;
      Where &cWhere &cWhere1 ;
      Into ARRAY arrIt

    If _Tally # 0
      nValue = m.nValue + Iif(m.i = 1, arrIt(1), -arrIt(1))
    EndIf
  Next
EndProc


**********************************************************
Procedure SelAccFromBaseR
  LParameters cCol, cAccount, lMoney, lKosGU, cNameProc, cAccCorr, lNot40110_171

  lMoney = !IsNull(m.lMoney) And m.lMoney   && счета ден. средств
  lKosGU = !IsNull(m.lKosGU) And m.lKosGU   && фильтровать обороты по КОСГУ

  Local cCursor, cLevelDD, cAcc, cWhere, cWhereKosGU, cWhereC, cWhereMark, lOk, cAccC, cAcc1, nPos, cNot, cJoinAnKosGU, cJoinCorr, cJoinAnCorr, i, c1, nSumm, cVidR
  Local ARRAY arrProc[2], arrVidR[1], arrAnalit[1]
  Store "" To cWhere, cWhereKosGU, cWhereC, cWhereMark, cJoinAnKosGU, cJoinCorr, cJoinAnCorr, cNot

  * Курсор для колонки
  cCursor = "curR" + m.cCol
  If !Used(m.cCursor)
    Create CURSOR &cCursor (RN_VidR C(4), SUMM N(18, 2))
    Index On RN_VidR Tag UNI
  EndIf

  If m.lOnlyBSNKO And InList(m.cCol, "4", "5", "7")
    Return
  EndIf

  * Список счетов
  cAcc = AllTrim(m.cAccount)
  Do While !Empty(m.cAcc)
    nPos = AT(",", m.cAcc)
    If m.nPos = 0
      cAcc1 = m.cAcc
      cAcc  = ""
    Else
      cAcc1 = AllTrim(Left(m.cAcc, m.nPos - 1))
      cAcc  = AllTrim(SubStr(m.cAcc, m.nPos + 1))
    EndIf
    cWhere = Iif(Empty(m.cWhere), "", m.cWhere + " OR ") + "SubStr(Account, " + m.cPos19 + ", " + LTrim(Str(Len(m.cAcc1))) + ") = '" + m.cAcc1 + "'"
  EndDO
  If AT(",", m.cAccount) # 0
    cWhere = "(" + m.cWhere + ")"
  EndIf

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

  If !Empty(m.cWhereBalUnits)
    cWhere = m.cWhere + " And " + m.cWhereBalUnits
  EndIf

  && Привязка к словарям Видов расходов и ШФ
  If m.lMoney
    If m.nAnLevelDD = 0
      cWhere  = m.cWhere + " And AccBase.TFin_Type = 1 And !Empty(AccBase.RN_TFIN)"
    EndIf
    cLevelDD = Str(m.nAnLevelDD, 1)
  Else
    cWhere = m.cWhere + " And Iif(AccBase.TFin_Type = 1, !Empty(AccBase.RN_TFIN), '9' $ AccBase.SMETA_AN)"
  EndIf

  Select AccBase.RN ;
    From AccBase ;
      Left Join BalUnit On AccBase.Rn_BalUnit = BalUnit.RN ;
    Where &cWhere ;
    Into CURSOR curAcc

  lOk = _Tally # 0

  If m.lOk
    * Отбор проводок по КОСГУ
    If m.lKosGU
*      If m.nOptionVPL = 1   && Раздел 2. Расходы
        cWhereKosGU  = "And (Like('2*', AllTrim(An.SAccount)) Or Like('3*', AllTrim(An.SAccount)) Or Like('53*', AllTrim(An.SAccount)) Or Like('55*', AllTrim(An.SAccount)))"
*      Else                && Раздел 4. Сведения о возвратах остатков субсидий и расходов прошлых лет
*        cWhereKosGU  = "And Like('2*', AllTrim(An.SAccount))"
*      EndIf
      cJoinAnKosGU = "Left Join AccSpec An ON S.RN_DB_A" + Str(Iif(m.lMoney, m.nAnLevel4, m.nAnLevel5), 1) + " = An.RN"
    EndIf

    * Корр. счета
    If !IsNull(m.cAccCorr) And !Empty(m.cAccCorr)
      cAccC = AllTrim(m.cAccCorr)
      If Left(m.cAccC, 1) = "!"
        cNot  = "!"
        cAccC = AllTrim(SubStr(m.cAccC, 2))
      EndIf
      Do While !Empty(m.cAccC)
        nPos = AT(",", m.cAccC)
        If m.nPos = 0
          cAcc1 = m.cAccC
          cAccC = ""
        Else
          cAcc1 = AllTrim(Left(m.cAccC, m.nPos - 1))
          cAccC = AllTrim(SubStr(m.cAccC, m.nPos + 1))
        EndIf
        cWhereC = Iif(Empty(m.cWhereC), "", m.cWhereC + " OR ") + "SubStr(C.Account, " + m.cPos19 + ", " + LTrim(Str(Len(m.cAcc1))) + ") = '" + m.cAcc1 + "'"
      EndDO
      cWhereC = "And " + m.cNot + "(" + m.cWhereC + ")"
      cJoinCorr = "Inner Join AccBase C ON S.RN_DB = C.RN"
    EndIf

    RepG151.GetComRepPrm151("_0503737", @lNoError, Val(m.cCol), m.cAccount, m.lMoney, m.cNameProc, m.cAccCorr, m.lNot40110_171)
    lOk = m.lOk And m.lNoError
  EndIf

  If m.lOk
    * Исключение оборотов с 40110.171
    If m.lNot40110_171
      cWhereC     = m.cWhereC + " And !(SubStr(C.Account, " + m.cPos19 + ", 5) = '40110' And Like('171*', AllTrim(AnC.SAccount)))"
      cJoinCorr   = "Inner Join AccBase C ON S.RN_DB = C.RN"
      cJoinAnCorr = "Left Join AccSpec AnC ON S.RN_DB_A" + Str(m.nAnLevel5, 1) + " = AnC.RN"
    EndIf

    * Исключение ХО по особой отметке "Возвраты прошлых лет"
    If !Empty(m.cRN_MarkVPL)
      cWhereMark = "And S.RN_MARK # '" + m.cRN_MarkVPL + "'"
    EndIf
*    If m.nOptionVPL = 2   && отбор
*      cWhereMark = "And S.RN_MARK = '" + m.cRN_MarkVPL + "'"
*    Else
*      If m.nOptionVPL = 1 And !Empty(m.cRN_MarkVPL)   && исключение
*        cWhereMark = "And S.RN_MARK # '" + m.cRN_MarkVPL + "'"
*      EndIf
*    EndIf

    * Исключение ХО по особой отметке "Иные операции с денежными средствами, не отраженные в поступлениях и выбытиях"
    If !Empty(m.cRN_MarkIODS)
      cWhereMark = m.cWhereMark + " And S.RN_MARK # '" + m.cRN_MarkIODS + "'"
    EndIf

    CurOpen("AccSpec;fSbFBase")

    Select curAcc

    Scan
      * Анализ запрашиваемых оборотов
      nPos = AT(";", m.cNameProc)

      If m.nPos = 0
        arrProc(1) = Upper(m.cNameProc)
      Else
        arrProc(1) = Upper(Left(m.cNameProc, m.nPos - 1))
        arrProc(2) = Upper(SubStr(m.cNameProc, m.nPos + 1))
      EndIf

      * Подсчет сумм оборотов
      For m.i = 1 To 2
        If Empty(arrProc(m.i))
          Loop
        EndIf

        If arrProc(m.i) == "OBDB"
          c1 = "DB"
          cJoinAnKosGU = StrTran(m.cJoinAnKosGU, "RN_KR", "RN_DB")
          cJoinCorr    = StrTran(m.cJoinCorr,    "RN_DB", "RN_KR")
          cJoinAnCorr  = StrTran(m.cJoinAnCorr,  "RN_DB", "RN_KR")
        Else
          c1 = "KR"
          cJoinAnKosGU = StrTran(m.cJoinAnKosGU, "RN_DB", "RN_KR")
          cJoinCorr    = StrTran(m.cJoinCorr,    "RN_KR", "RN_DB")
          cJoinAnCorr  = StrTran(m.cJoinAnCorr,  "RN_KR", "RN_DB")
        EndIf

        Select S.RN_&c1._A1 As An1, S.RN_&c1._A2 As An2, S.RN_&c1._A3 As An3, S.RN_&c1._A4 As An4, S.RN_&c1._A5 As An5, ;
               S.Sum_Equal As SUMM ;
          From crEopSpec&c1 S ;
            &cJoinAnKosGU ;
            &cJoinCorr ;
            &cJoinAnCorr ;
          Where S.RN_&c1 = ?curAcc.RN &cWhereMark &cWhereKosGU &cWhereC ;
          Into CURSOR curEopSpec

        If _Tally # 0
          * Определение кода вида расходов
          Do Case
            Case m.lMoney And m.nAnLevelDD = 0   && Денежный счет и не задан уровень доп. аналитики классификации расходов для счетов денежных средств
              Select curEopSpec
              Sum SUMM To nSumm

              Select F.RN_VidR ;
                From AccBase A ;
                  Inner Join fSbFBase F On A.RN_TFIN = F.RN ;
                Where A.RN = ?curAcc.RN And !Empty(F.RN_VidR) ;
                Into ARRAY arrVidR

              If _Tally # 0
                Select &cCursor
                If !Seek(arrVidR[1])
                  Insert Into &cCursor (RN_VidR) VALUES (arrVidR[1])
                EndIf
                Replace SUMM With SUMM + Iif(m.i = 1, m.nSumm, -m.nSumm)
              EndIf

            Case m.lMoney And m.nAnLevelDD # 0   && Денежный счет и задан уровень доп. аналитики классификации расходов для счетов денежных средств
              If Seek(curAcc.RN, "AccBase", "RN")
                Do Case
                  Case AccBase.SLOVAN&cLevelDD._RN = m.cUnitExpKind   && Виды расходов
                    Select curEopSpec
                    Scan For !Empty(An&cLevelDD)
                      Select SACCOUNT, UNT_COMMON, RN_COMMON From AccSpec ;
                        Where RN = ?curEopSpec.An&cLevelDD ;
                        Into ARRAY arrAnalit

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

                        Select &cCursor
                        If !Seek(m.cVidR)
                          Insert Into &cCursor (RN_VidR) VALUES (m.cVidR)
                        EndIf
                        Replace SUMM With SUMM + Iif(m.i = 1, curEopSpec.SUMM, -curEopSpec.SUMM)
                      EndIf
                    EndScan

                  Case AT("9", AccBase.SMETA_AN) = m.nAnLevelDD       && ШФ
                    Select curEopSpec
                    Scan For !Empty(An&cLevelDD) And Seek(An&cLevelDD, "AccSpec", "RN") And !Empty(AccSpec.RN_TFIN) And Seek(AccSpec.RN_TFIN, "fSbFBase", "RN") And !Empty(fSbFBase.RN_VidR)
                      cVidR = fSbFBase.RN_VidR
                      Select &cCursor
                      If !Seek(fSbFBase.RN_VidR)
                        Insert Into &cCursor (RN_VidR) VALUES (fSbFBase.RN_VidR)
                      EndIf
                      Replace SUMM With SUMM + Iif(m.i = 1, curEopSpec.SUMM, -curEopSpec.SUMM)
                    EndScan
                EndCase
              EndIf

            Otherwise   && Неденежный счет
              If Seek(curAcc.RN, "AccBase", "RN")
                Do Case
                  Case AccBase.TFin_Type = 1 And !Empty(AccBase.RN_TFIN)
                    Select curEopSpec
                    Sum SUMM To nSumm

                    Select RN_VidR From fSbFBase Where RN = ?AccBase.RN_TFIN And !Empty(RN_VidR) Into ARRAY arrVidR

                    If _Tally # 0
                      Select &cCursor
                      If !Seek(arrVidR[1])
                        Insert Into &cCursor (RN_VidR) VALUES (arrVidR[1])
                      EndIf
                      Replace SUMM With SUMM + Iif(m.i = 1, m.nSumm, -m.nSumm)
                    EndIf

                  Case AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN
                    cLevelDD = Str(AT('9', AccBase.SMETA_AN), 1)

                    Select curEopSpec
                    Scan For !Empty(An&cLevelDD) And Seek(An&cLevelDD, "AccSpec", "RN") And !Empty(AccSpec.RN_TFIN) And Seek(AccSpec.RN_TFIN, "fSbFBase", "RN") And !Empty(fSbFBase.RN_VidR)
                      cVidR = fSbFBase.RN_VidR
                      Select &cCursor
                      If !Seek(fSbFBase.RN_VidR)
                        Insert Into &cCursor (RN_VidR) VALUES (fSbFBase.RN_VidR)
                      EndIf
                      Replace SUMM With SUMM + Iif(m.i = 1, curEopSpec.SUMM, -curEopSpec.SUMM)
                    EndScan
                EndCase
              EndIf
          EndCase
        EndIf
        Use In curEopSpec
      Next
    EndScan
  EndIf

  = CurClose("curAcc")
EndProc


**********************************************************
Procedure SelAccFromBase5041
  LParameters cRow, cListBKls, cECLS, cAnalit, nIsVPL

  RepG151.GetComRepPrm151("_0503737", @lNoError, Val(m.cRow), m.cListBKls, m.cECLS, m.cAnalit)

  If m.lOnlyBSNKO Or !m.lNoError
    Return
  EndIf

  * Переменные
  Local ARRAY arrECLS[1], arrKOSGU[1]
  Local cWhere, cWhereMark, cListPRF, cWhereKOSGU, cJoinAnKosGU_D, cJoinAnKosGU_K, nALen, i, s, lOk, nSum
  Store "" To cWhereMark, cListPRF, cWhereKOSGU, cJoinAnKosGU_D, cJoinAnKosGU_K

  * Отбор/Исключение ХО по особой отметке "Возвраты прошлых лет"
  If Type("m.nIsVPL") # "N"
    nIsVPL = 0
  EndIf
  If m.nIsVPL = 2   && только возвраты прошлых лет
*  If m.nOptionVPL = 2 Or m.nIsVPL = 2
    If Empty(m.cRN_MarkVPL)
      Return
    Else
      cWhereMark = "Where S.RN_MARK = '" + m.cRN_MarkVPL + "'"
    EndIf
  Else
    If (m.nOptionVPL = 1 Or m.nIsVPL = 1) And !Empty(m.cRN_MarkVPL)   && исключить возвраты прошлых лет
      cWhereMark = "Where S.RN_MARK # '" + m.cRN_MarkVPL + "'"
    EndIf
  EndIf

  * Исключение ХО по особой отметке "Иные операции с денежными средствами, не отраженные в поступлениях и выбытиях"
  If m.nOptionVPL = 1 And !Empty(m.cRN_MarkIODS)   && доходы
    cWhereMark = m.cWhereMark + " And S.RN_MARK # '" + m.cRN_MarkIODS + "'"
  EndIf

  * Отбор по аналитике КОСГУ
  If !Empty(m.cAnalit)
    nALen = ALines(arrKOSGU, m.cAnalit, ",")
    For m.i = 1 To m.nALen
      cWhereKOSGU = m.cWhereKOSGU + " Or Like('" + arrKOSGU[m.i] + "*', AllTrim(An.SAccount))"
    Next
    cWhereKOSGU = SubStr(m.cWhereKOSGU, 5)
    If Empty(m.cWhereMark)
      cWhereKOSGU = "Where " + m.cWhereKOSGU
    Else
      If m.nALen > 1
        cWhereKOSGU = "(" + m.cWhereKOSGU + ")"
      EndIf
      cWhereKOSGU = " And " + m.cWhereKOSGU
    EndIf
    cJoinAnKosGU_D = "Inner Join AccSpec An ON S.RN_DB_A" + Str(m.nAnLevel5, 1) + " = An.RN"
    cJoinAnKosGU_K = StrTran(m.cJoinAnKosGU_D, "_DB_", "_KR_")
  EndIf

  * Отбор по коду ЭКД
  nALen = ALines(arrECLS, m.cECLS, ",")
  For m.i = 1 To m.nALen
    cListPRF = m.cListPRF + ", '" + arrECLS[m.i] + "'"
  Next

  * Список счетов
  cWhere = Iif(Empty(m.cVFO), "", "SubStr(AccBase.Account, " + m.cPos18 + ", 1) = '" + m.cVFO + "' And ") ;
         + "SubStr(AccBase.Account, " + m.cPos19 + ", 4) = '5041'" ;
         + Iif(Empty(m.cWhereBalUnits), "", " And " + m.cWhereBalUnits)

  If m.nAccType = 1
    Select AccBase.RN, Nvl(Prf.Mnemo, Nvl(Prf1.Mnemo, Space(3))) As BK ;
      From AccBase ;
        Left Join BalUnit       On AccBase.Rn_BalUnit = BalUnit.RN ;
        Left Join BKlsDoh  B    On AccBase.RN_KLSDOH = B.RN And InList(B.KLS_TYPE, &cListBKls.) ;
        Left Join PRF_ECLS Prf  On B.EconCl_RN = Prf.RN ;
        Left Join fSbFBase F    On AccBase.RN_TFIN = F.RN ;
        Left Join PRF_ECLS Prf1 On F.RN_ECLSD = Prf1.RN ; 
      Where &cWhere ;
      Into CURSOR curAcc_

    Select RN From curAcc_ Where InList(BK&cListPRF.) Into CURSOR curAcc
    Use In curAcc_
  Else
    Select AccBase.RN, AccBase.ORG_AN, AccBase.TFin_Type, AccBase.SMETA_AN ;
      From AccBase ;
        Left Join BalUnit On AccBase.Rn_BalUnit = BalUnit.RN ;
      Where &cWhere And ('3' $ AccBase.ORG_AN Or AccBase.TFin_Type = 2 And '9' $ AccBase.SMETA_AN);
      Into CURSOR curAcc
  EndIf

  Select curAcc
  Index On RN Tag RN

  * Обороты (КР - ДБ)
  Select A.RN, S.RN_DB_A1 As An1, S.RN_DB_A2 As An2, S.RN_DB_A3 As An3, S.RN_DB_A4 As An4, S.RN_DB_A5 As An5, ;
         - S.Sum_Equal As Summ ;
    From crEopSpecDB S ;
      Inner Join curAcc A On S.RN_DB = A.RN ;
      &cJoinAnKosGU_D ;
    &cWhereMark &cWhereKOSGU ;
  UNION ALL ;
  Select A.RN, S.RN_KR_A1 As An1, S.RN_KR_A2 As An2, S.RN_KR_A3 As An3, S.RN_KR_A4 As An4, S.RN_KR_A5 As An5, ;
         S.Sum_Equal As Summ ;
    From crEopSpecKR S ;
      Inner Join curAcc A On S.RN_KR = A.RN ;
      &cJoinAnKosGU_K ;
    &cWhereMark &cWhereKOSGU ;
    Into CURSOR curEopSpec_

  Select RN, An1, An2, An3, An4, An5, Sum(Summ) As Summ ;
    From curEopSpec_ ;
    Group By 1, 2, 3, 4, 5, 6 ;
    Into CURSOR curEopSpec READWRITE

  Use In curEopSpec_

  Select curEopSpec
  If m.nAccType # 1   && Короткий план счетов
    Scan
      lOk = .F.
      If Seek(RN, "curAcc")
        For m.i = 1 To 5
          s = Str(m.i, 1)
          If SubStr(curAcc.ORG_AN, m.i, 1) = '3' And !IsNull(curEopSpec.An&s.) And !Empty(curEopSpec.An&s.)
            Select B.RN ;
              From AccSpec A ;
                Inner Join BKlsDoh  B On A.RN_KlsDoh = B.RN ;
                Inner Join PRF_ECLS P On B.EconCl_RN = P.RN ;
              Where A.RN = ?curEopSpec.An&s And InList(B.KLS_TYPE, &cListBKls.) And InList(P.Mnemo&cListPRF.) ;
              To SCREEN NOCONSOLE

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

        If !m.lOk And curAcc.TFin_Type = 2 And '9' $ curAcc.SMETA_AN
          s = Str(AT('9', curAcc.SMETA_AN), 1)
          If !IsNull(curEopSpec.An&s.) And !Empty(curEopSpec.An&s.)
            Select F.RN ;
              From AccSpec A ;
                Inner Join fSbFBase F On A.RN_TFIN = F.RN ;
                Inner Join PRF_ECLS P On F.RN_ECLSD = P.RN ;
              Where A.RN = ?curEopSpec.An&s And InList(P.Mnemo&cListPRF.) ;
              To SCREEN NOCONSOLE

            lOk = _Tally # 0
          EndIf
        EndIf
      EndIf

      If !m.lOk
        Delete In curEopSpec
      EndIf
    EndScan
  EndIf

  Sum Summ To nSum
  nCol4Row&cRow = m.nCol4Row&cRow + m.nSum

  CurClose("curAcc,curEopSpec")
  
EndProc
]]></FPC_></MSE>
      <FPC_><![CDATA[*[VFP]
RepG151.GetOutS(.T., .T.)
]]></FPC_>
    </печать>
  </отчет>
  <форма>
    <ид>f_0503737_33n_164n_2023</ид>
    <тип>XML</тип>
    <описание>
      <дополнительно>
        <desc_version>1.0</desc_version>
      </дополнительно>
      <VFP_свойство имя="Name">f_0503737</VFP_свойство>
      <VFP_свойство имя="Caption">Форма 0503737-33н_ред164н_2023</VFP_свойство>
      <VFP_свойство имя="Height">415</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()
cAcc8      = oPage.DicAccount8.GetSaveValue()
cWhereBalUnits = oPage.BalUnits.GetCond()
cWhereAcc8 = oPage.DicAccount8.GetCond()

* Каталог для выгрузки в МинФин
oPage = oThisForm.PF.Page3.Export.Page1
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()

** Каталог для выгрузки в ГНИ 4
oPage = oThisForm.PF.Page3.Export.Page2
cUnlPath4 = oPage.Catalog4.Text.Value
If !Empty(m.cVFO) And !Empty(m.cUnlPath4) And !Directory(m.cUnlPath4, 1)
   =ExclMes("Каталог " + AllTrim(m.cUnlPath4) + Chr(13) + "не существует!")
   oThisForm.PF.ActivePage = 3
   oPage.Parent.ActivePage = 2
   oPage.Catalog4.SetFocus()
   Return .F.
EndIf
cAgent_RN = oPage.DicAgent4.Value
]]></VFP_метод>
      <VFP_метод имя="PostInit"><![CDATA[LParam oThis, oThisform
    * Виды финансового обеспечения
    Dimension arrVFO[5, 3]
    arrVFO[1, 1] = PadR("Собственные доходы учреждения (код вида - 2)", 80)
    arrVFO[1, 2] = "2"
    arrVFO[1, 3] = "d"
    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] = "m"

    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.CmbMarkIODS.SetSource(UnitRn("EconOp"))
    oPage.CmbMarkIODS.Value = m.cRN_MarkIODS
    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)
    oPage.DicAccount8.SetSaveValue(m.cAcc8)
    oPage.CmbMark8.SetSource(UnitRn("EconOp"))
    oPage.CmbMark8.Value = m.cRN_Mark8
    cIspolnitel = m.cIspName

    oPage = oThisForm.PF.Page3.Export.Page1
    oPage.Catalog.Text.Value = m.cUnlPath
    oPage.DicIsp.setsavevalue(m.cDicIsp)
    oPage.fldIspName.Value = m.cIspolnitel

    oPage = oThisForm.PF.Page3.Export.Page2
    oPage.Catalog4.Text.Value = m.cUnlPath4
    oPage.DicAgent4.InitThis(m.cAgent_RN)
    oPage.DicAgent4.AddUpdate()

    oPage.Enabled = !Empty(m.cVFO)
    oPage.AgentDoc.Enabled = !Empty(m.cVFO)
    oThisForm.CheckNotEmpty()
]]></VFP_метод>
      <элемент>
        <VFP_имя>Tbtndialog1</VFP_имя>
        <VFP_свойство имя="Left">225</VFP_свойство>
        <VFP_свойство имя="Top">378</VFP_свойство>
      </элемент>
      <элемент>
        <VFP_класс>TPageFrame</VFP_класс>
        <VFP_свойство имя="Name">PF</VFP_свойство>
        <VFP_свойство имя="Height">375</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">215</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_AGENTS737_164N_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_свойство имя="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_FOUND737_164N_2023</VFP_свойство>
            <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
            <элемент>
              <VFP_имя>DicTable</VFP_имя>
              <дополнительно>
                <отложенная_инициализация/>
              </дополнительно>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>TCheckBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">170</VFP_свойство>
            <VFP_свойство имя="ControlSource">lItogGK</VFP_свойство>
            <VFP_свойство имя="Name">chkItogGK</VFP_свойство>
            <VFP_свойство имя="Caption">Формировать промежуточные итоги по группировочным кодам видов расходов</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TCheckBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">190</VFP_свойство>
            <VFP_свойство имя="WordWrap">.T.</VFP_свойство>
            <VFP_свойство имя="Width">470</VFP_свойство>
            <VFP_свойство имя="PicturePosition">0</VFP_свойство>
            <VFP_свойство имя="ControlSource">lOnlyBSNKO</VFP_свойство>
            <VFP_свойство имя="Name">chkOnlyBSNKO</VFP_свойство>
            <VFP_свойство имя="Caption">Формировать только показатели исполнения через банковские счета и некассовыми операциями</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">105</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">235</VFP_свойство>
            <VFP_свойство имя="Width">480</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Особые отметки</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">250</VFP_свойство>
            <VFP_свойство имя="Caption">Возвраты прошлых лет:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">325</VFP_свойство>
            <VFP_свойство имя="Top">245</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Name">CmbMarkVPL</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_MarkVPL</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">275</VFP_свойство>
            <VFP_свойство имя="Caption">Иные операции с денежными средствами,</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">288</VFP_свойство>
            <VFP_свойство имя="Caption">не отраженные в поступлениях и выбытиях:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">325</VFP_свойство>
            <VFP_свойство имя="Top">275</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Name">CmbMarkIODS</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_MarkIODS</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">310</VFP_свойство>
            <VFP_свойство имя="Caption">Не отражать в отчете:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">325</VFP_свойство>
            <VFP_свойство имя="Top">305</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">210</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_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">110</VFP_свойство>
            <VFP_свойство имя="Caption">Вид финансового обеспечения:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TComboBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Name">Cmb_VFO</VFP_свойство>
            <VFP_свойство имя="Top">125</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_метод имя="ValueChanged"><![CDATA[LParam oThis, oThisForm
Local oPage
oPage = oThisForm.PF.Page3.Export.Page2

oPage.Enabled = !Empty(oThis.Value)
oPage.AgentDoc.Enabled = !Empty(m.cVFO)
oThisForm.CheckNotEmpty()

If Empty(oThis.Value) And oPage.Parent.ActivePage = 2
  oPage.Parent.ActivePage = 1
EndIf
]]></VFP_метод>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Балансовая единица:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">160</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>S_balunits</VFP_класс>
            <VFP_свойство имя="Name">Balunits</VFP_свойство>
            <VFP_свойство имя="Left">235</VFP_свойство>
            <VFP_свойство имя="Top">155</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">190</VFP_свойство>
            <VFP_свойство имя="Caption">Размерность плана счетов:</VFP_свойство>
          </элемент>            
          <элемент>
            <VFP_класс>TComboBox</VFP_класс>
            <VFP_свойство имя="Left">360</VFP_свойство>
            <VFP_свойство имя="Name">Cmb_AccType</VFP_свойство>
            <VFP_свойство имя="Top">185</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_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">75</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">480</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">225</VFP_свойство>
            <VFP_свойство имя="Caption">Исполнение плановых назначений некассовыми операциями (графа 8)</VFP_свойство>
          </элемент>            
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">245</VFP_свойство>
            <VFP_свойство имя="Caption">Счет:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>S_Account</VFP_класс>
            <VFP_свойство имя="Left">235</VFP_свойство>
            <VFP_свойство имя="Width">245</VFP_свойство>
            <VFP_свойство имя="Name">DicAccount8</VFP_свойство>
            <VFP_свойство имя="Top">240</VFP_свойство>
            <VFP_свойство имя="HistoryName" тип="C">H_EO737_8_164N_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_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">275</VFP_свойство>
            <VFP_свойство имя="Caption">Особая отметка:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">325</VFP_свойство>
            <VFP_свойство имя="Top">270</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Name">CmbMark8</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_Mark8</VFP_свойство>
          </элемент>
        </элемент>
        <элемент>
          <VFP_имя>Page3</VFP_имя>
          <VFP_свойство имя="Caption">Параметры выгрузки</VFP_свойство>
          <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
          <VFP_свойство имя="FontSize">8</VFP_свойство>
          <элемент>
            <VFP_класс>TPageFrame</VFP_класс>
            <VFP_свойство имя="Name">Export</VFP_свойство>
            <VFP_свойство имя="Height">352</VFP_свойство>
            <VFP_свойство имя="Width">500</VFP_свойство>
            <VFP_свойство имя="PageCount">2</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_свойство имя="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_AgentsIsp737_164N_2023</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_свойство>
              </элемент>
            </элемент>
            <элемент>
              <VFP_имя>Page2</VFP_имя>
              <VFP_свойство имя="Caption">Выгрузка в ГНИ 4</VFP_свойство>
              <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
              <VFP_свойство имя="FontSize">8</VFP_свойство>
              <элемент>
                <VFP_класс>T3dShape</VFP_класс>
                <VFP_свойство имя="Height">180</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">Catalog4</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">4</VFP_свойство>
                <VFP_свойство имя="ControlSource">cIdReceiver</VFP_свойство>
                <VFP_свойство имя="Name">Receiver</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Идентификатор конечного получателя информации:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">85</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TTextBox</VFP_класс>
                <VFP_свойство имя="Left">420</VFP_свойство>
                <VFP_свойство имя="Top">80</VFP_свойство>
                <VFP_свойство имя="Width">60</VFP_свойство>
                <VFP_свойство имя="MaxLength">4</VFP_свойство>
                <VFP_свойство имя="ControlSource">cIdReceiverMain</VFP_свойство>
                <VFP_свойство имя="Name">ReceiverMain</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Уполномоченный представитель:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">115</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TDicHist</VFP_класс>
                <VFP_свойство имя="Name">dicAgent4</VFP_свойство>
                <VFP_свойство имя="Left">230</VFP_свойство>
                <VFP_свойство имя="Top">110</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_Agents4FIO737_164N_2023</VFP_свойство>
                <VFP_свойство имя="Filter">OrgBase.type='2'</VFP_свойство>
                <VFP_метод имя="AddUpdate"><![CDATA[LParam oThis, oThisForm
= CurOpen("OrgBase")
If !Empty(oThis.Value)
  = Seek(oThis.Value, "OrgBase", "RN")
  If OrgBase.type # '2'
    ErrMes("Выбранный контрагент не является физическим лицом!")
    oThis.Clear()
  EndIf
EndIf
oThis.Parent.AgentDoc.SetNotEmpty(!Empty(oThis.Value))
oThisForm.CheckNotEmpty()
]]></VFP_метод>
                <элемент>
                  <VFP_имя>DicTable</VFP_имя>
                  <дополнительно>
                    <отложенная_инициализация/>
                  </дополнительно>
                </элемент>                
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Наименование документа, подтверждающего полномочия представителя:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">140</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TTextBox</VFP_класс>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">155</VFP_свойство>
                <VFP_свойство имя="Width">460</VFP_свойство>
                <VFP_свойство имя="MaxLength">120</VFP_свойство>
                <VFP_свойство имя="ControlSource">cAgentDoc</VFP_свойство>
                <VFP_свойство имя="Name">AgentDoc</VFP_свойство>
              </элемент>
            </элемент>
          </элемент>
        </элемент>
      </элемент>
    </описание>
  </форма>
</Модуль>
