<?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">
  <интерфейс>
    <отчет>
      <наименование>Форма 0503721-33н_ред183н_2023</наименование>
      <код_раздела>Reports5n</код_раздела>
      <номер_код>f0503721_183n_2023</номер_код>
      <шаблон>
        <тип>MSE</тип>
        <мнемокод>ar_form0503721_183n_2023</мнемокод>
        <файл>Форма0503721_33н_ред183н_2023.xlt</файл>
      </шаблон>
    </отчет>
  </интерфейс>
  <отчет>
    <реализует>f0503721_183n_2023</реализует>
      <дополнительно>
      <запомнить_переменные>
        <список_переменных>dBalOpen;nSelYear;dReoDate;cOrg;cRN_Found;nExclCode;nAccType;cTxt18B1;cTxt18B2;cTxt18B3;cTxt18B4;cTxt18B5;cTxt18B6;cTxt18B7;cTxt18B8;cTxt18B9;cTxt18B10;cTxt18VB1;cTxt18VB2;cTxt18VB3;cTxt18VB4;cTxt18VB5;cTxt18VB6;cTxt18VB7;cTxt18VB8;cTxt18VB9;cTxt18VB10;cTxt18R1;cTxt18R2;cTxt18R3;cTxt18R4;cTxt18R5;cTxt18R6;cTxt18R7;cTxt18R8;cTxt18R9;cTxt18R10;cUnlPath;cIST;cDicIsp;cIspName;cIspTel;nSPLevel;nEmptyRows;nOrgLevel;cRN_Mark;cCatEO;cJournalOp;cRN_MarkNOO;cDetailAnalit;nOnlyKBKK;cUnlPath4;cIdReceiver;cIdReceiverMain;cAgent_RN;cAgentDoc</список_переменных>
        <мемофайл>ar_form0503721_33n_183n_2023;ar_form0503721_33n_170n_2021;ar_form0503721_33n_292n_2020;ar_form0503721_33n_11n_2020;ar_form0503721_33n_73n_2019;ar_form0503721_33n_243n_2018</мемофайл>
      </запомнить_переменные>
      </дополнительно>
    <переменные>
      <переменная>
        <имя>dBalOpen</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата расчета показателей вступительного баланса-->
      </переменная>
      <переменная>
        <имя>nSelYear</имя>
        <начальное_значение>Year(oSystem.Date)</начальное_значение>
        <!--Отчетный год-->
      </переменная>
      <переменная>
        <имя>dReoDate</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата реорганизации-->
      </переменная>
      <переменная>
        <имя>cOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учреждение-->
      </переменная>
      <переменная>
        <имя>cWhereOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по учреждениям-->
      </переменная>
      <переменная>
        <имя>glBK</имя>
        <начальное_значение>""</начальное_значение>
        <!--Глава по БК-->
      </переменная>
      <переменная>
        <имя>cRN_Found</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учредитель-->
      </переменная>
      <переменная>
        <имя>nAccType</имя>
        <начальное_значение>1</начальное_значение>
        <!--Размерность плана счетов-->
      </переменная>
      <переменная>
        <имя>CTxt18B1</имя>
        <начальное_значение>"5"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B2</имя>
        <начальное_значение>"6"</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B3</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B4</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B5</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B6</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B7</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B8</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B9</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18B10</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для бюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB1</имя>
        <начальное_значение>"4"</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB2</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB3</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB4</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB5</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB6</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB7</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB8</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB9</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18VB10</имя>
        <начальное_значение>""</начальное_значение>
        <!--18 знак для внебюджета-->
      </переменная>
      <переменная>
        <имя>CTxt18R1</имя>
        <начальное_значение>"2"</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R2</имя>
        <начальное_значение>"3"</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R3</имя>
        <начальное_значение>"7"</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R4</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R5</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R6</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R7</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R8</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R9</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>CTxt18R10</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>dDateBegin</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата с-->
      </переменная>
      <переменная>
        <имя>dDateEnd</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата По-->
      </переменная>
      <переменная>
        <имя>c18SymbCol4</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>c18SymbCol5</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>c18SymbCol6</имя>
        <начальное_значение>""</начальное_значение>
      </переменная>
      <переменная>
        <имя>nExclCode</имя>
        <начальное_значение>0</начальное_значение>
        <!--Исключать обороты по коду счета при внутреннем перемещении-->
      </переменная>      
      <переменная>
        <имя>cRN_Mark</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка-->
      </переменная>
      <переменная>
        <имя>cCatEO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог ХО-->
      </переменная>
      <переменная>
        <имя>cJournalOp</имя>
        <начальное_значение>""</начальное_значение>
        <!--Журнал операций-->
      </переменная>
      <переменная>
        <имя>cRN_MarkNOO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (Не отражать в отчете)-->
      </переменная>
      <переменная>
        <имя>cDetailAnalit</имя>
        <начальное_значение>""</начальное_значение>
        <!--Формировать расшифровку показателей отчета с кодами аналитики-->
      </переменная>
      <переменная>
        <имя>nOnlyKBKK</имя>
        <начальное_значение>0</начальное_значение>
        <!--Заполнять в расшифровке показателей только аналитику по КБК и КОСГУ-->
      </переменная>      
      <переменная>
        <имя>cUnlPath</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки-->
      </переменная>
      <переменная>
        <имя>cFileName</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки-->
      </переменная>
      <переменная>
        <имя>cIST</имя>
        <начальное_значение>""</начальное_значение>
        <!--ИСТ-->
      </переменная>
      <переменная>
        <имя>cDicIsp</имя>
        <начальное_значение>""</начальное_значение>
        <!--Исполнитель-->
      </переменная>
      <переменная>
        <имя>cIspName</имя>
        <начальное_значение>""</начальное_значение>
        <!--ФИО исполнителя-->
      </переменная>
      <переменная>
        <имя>cIspTel</имя>
        <начальное_значение>""</начальное_значение>
        <!--Телефон исполнителя-->
      </переменная>
      <переменная>
        <имя>nEmptyRows</имя>
        <начальное_значение>0</начальное_значение>
        <!--Выгружать строки с нулевыми значениями-->
      </переменная>
      <переменная>
        <имя>cUnlPath4</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки в ГНИ 4-->
      </переменная>
      <переменная>
        <имя>cFileName4</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки-->
      </переменная>
      <переменная>
        <имя>cFileId4</имя>
        <начальное_значение>""</начальное_значение>
        <!--Идентификатор файла-->
      </переменная>        
      <переменная>
        <имя>cIdReceiver</имя>
        <начальное_значение>""</начальное_значение>
        <!--Идентификатор получателя информации-->
      </переменная>
      <переменная>
        <имя>cIdReceiverMain</имя>
        <начальное_значение>""</начальное_значение>
        <!--Идентификатор конечного получателя информации-->
      </переменная>      
      <переменная>
        <имя>cAgent_RN</имя>
        <начальное_значение>""</начальное_значение>
        <!--Уполномоченный представитель-->
      </переменная>
      <переменная>
        <имя>cAgentDoc</имя>
        <начальное_значение>""</начальное_значение>
        <!--Наименование документа, подтверждающего полномочия представителя-->
      </переменная>
      <переменная>
        <имя>nSPLevel</имя>
        <начальное_значение>5</начальное_значение>
        <!--Уровень аналитики-->
      </переменная>
      <переменная>
        <имя>nOrgLevel</имя>
        <начальное_значение>4</начальное_значение>
        <!--Уровень аналитики для учреждений-->
      </переменная>
      <переменная>
        <имя>RepG151</имя>
        <начальное_значение>CreateObject("form0503buxrepd")</начальное_значение>
      </переменная>
      <переменная>
        <имя>dReportDate</имя>
        <начальное_значение>Date(2023,06,30)</начальное_значение>
      </переменная>
      <переменная>
        <имя>lNoError</имя>
        <начальное_значение>.T.</начальное_значение>
      </переменная>
    </переменные>
    <запуск_формы>
      <ид>f_0503721_33n_183n_2023</ид>
    </запуск_формы>
    <вычисление>
      <сообщение>Ждите, идет выборка данных ...</сообщение>
      <FPC_><![CDATA[*[VFP]
dDateEnd   = Iif(Empty(m.dReoDate), DATE(m.nSelYear+1, 1, 1)-1, m.dReoDate)
dDateBegin = Iif(Empty(m.dBalOpen), DOX(m.dDateEnd, 1), m.dBalOpen)

* Глава по БК
If !Empty(cWhereOrg)
  Select fBudMG.Rasp_Code ;
    From OrgBase ;
      Inner Join fBudMG On OrgBase.RN = fBudMG.OrgBase_RN ;
    Where &cWhereOrg 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
  ]]></FPC_>
    </вычисление>
    <печать>
      <!--Печать отчета--><MSE>
        <!--Печать в MS Excel-->
        <FPC_><![CDATA[*[VFP]
Private ALL Like nCol?Row???
Private n18Pos, c18Pos, cSPLevel, cWhereExcl, arrDetAnalit, nDetAnalit, arrArrDetRow, arrArrDetAnl, cColGet, cRowGet
Local cSymb, cWhereTmp, cWhereTmp1, cWhereTmp2, cDetAnalit
*ON ERROR  &&& !!!!!

oSystem.ShowMessage("Подождите. Идет выборка данных...")

* nAccType - длинный или короткий план счетов. 
n18Pos = Iif(m.nAccType = 1, 18, 1)
c18Pos = LTrim(Str(m.n18Pos))

* Уровень аналитики
cSPLevel = Str(m.nSPLevel, 1)

** Заданы условия для исключения
cWhereExcl = ""

* Каталог ХО (Операции межотчетного периода)
If !Empty(m.cCatEO)
  cWhereExcl = " And B.PARENT_RN # '" + m.cCatEO + "'"
EndIf

* Особая отметка (Операции межотчетног периода)
If !Empty(m.cRN_Mark)
  cWhereExcl = m.cWhereExcl + " And B.RN_MARK # '" + m.cRN_Mark + "'"
EndIf

* Журнал операций (Операции по исправлению ошибок прошлых лет)
If !Empty(m.cJournalOp)
  cWhereExcl = m.cWhereExcl + " And S.RN_MO # '" + m.cJournalOp + "' And A.RN_MO # '" + m.cJournalOp + "' And C.RN_MO # '" + m.cJournalOp + "'"
EndIf

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

** Динамические строки таблицы
Create CURSOR crs721 (KOSGU C(3), Sum4 N(18,2), Sum5 N(18,2), Sum6 N(18,2))
Index On KOSGU Tag KOSGU

** Расшифровка показателей отчета
nDetAnalit = 0
If !Empty(m.cDetailAnalit)
  Create CURSOR crsDetail (Code C(3), Analit C(3), Grafa C(1), VFODB C(1), DB C(29), DBA1 C(15), DBA2 C(15), DBA3 C(15), DBA4 C(15), DBA5 C(15), ;
     VFOKR C(1), KR C(29), KRA1 C(15), KRA2 C(15), KRA3 C(15), KRA4 C(15), KRA5 C(15), Znak C(1), Sum N(18,2))

  Index On Code + Analit + Grafa + VFODB + DB + DBA1 + DBA2 + DBA3 + DBA4 + DBA5 + VFOKR + KR + KRA1 + KRA2 + KRA3 + KRA4 + KRA5 + Znak Tag UNI

  cDetAnalit = ChrTran(m.cDetailAnalit, Space(1), Space(0))
  DO While ";;" $ m.cDetAnalit
    cDetAnalit = StrTran(m.cDetAnalit, ";;", ";")
  EndDO
  If Left(m.cDetAnalit, 1) = ";"
    cDetAnalit = SubStr(m.cDetAnalit, 2)
  EndIf
  If Len(m.cDetAnalit) = Occurs(";", m.cDetAnalit)
    cDetAnalit = ""
  EndIf
  cDetAnalit = ChrTran(m.cDetAnalit, "xХх", "XXX")
  If !Empty(m.cDetAnalit)
    nDetAnalit = ALines(arrDetAnalit, m.cDetAnalit, ";")
    Store "" To arrArrDetRow, arrArrDetAnl
    MakeDetAnArrays()
  EndIf
EndIf

* Доходы 030, 050, 060, 070, 090, 110
= SelAccFromBase(1, "4", "12,14,15,16,17,19", "!4013")
= SelAccFromBase(1, "5", "12,14,15,16,17,19", "!4013")
= SelAccFromBase(1, "6", "12,14,15,16,17,19", "!4013")

* Доходы 040
= SelAccFromBase(1, "4", "13", "30304,30305")
= SelAccFromBase(1, "5", "13", "30304,30305")
= SelAccFromBase(1, "6", "13", "30304,30305")

* Доходы 100
= SelAccFromBase(1, "4", "18", "!4013,30303")
= SelAccFromBase(1, "5", "18", "!4013,30303")
= SelAccFromBase(1, "6", "18", "!4013,30303")

* Расходы 160, 170, 190, 210, 230, 240, 250, 260, 270
= SelAccFromBase(2, "4", "21,22,23,24,25,26,27,28,29", "!4013")
= SelAccFromBase(2, "5", "21,22,23,24,25,26,27,28,29", "!4013")
= SelAccFromBase(2, "6", "21,22,23,24,25,26,27,28,29", "!4013")

* Расходы. Уточнение алгоритма для строк 161-270
= SelAccFromBaseR("4")
= SelAccFromBaseR("5")
= SelAccFromBaseR("6")

* увеличение стоимости материальных запасов 361
Store 0 To nCol4Row361, nCol5Row361, nCol6Row361
= SelAccFromBase36(1, "4")
= SelAccFromBase36(1, "5")
= SelAccFromBase36(1, "6")

* уменьшение стоимости материальных запасов 362
Store 0 To nCol4Row362, nCol5Row362, nCol6Row362
= SelAccFromBase36(2, "4")
= SelAccFromBase36(2, "5")
= SelAccFromBase36(2, "6")

* Выборка общего курсора ХО для исключения
If !Empty(m.cRN_Mark) Or !Empty(m.cRN_MarkNOO)
  cWhereTmp1 = Iif(Empty(m.cRN_Mark), "", "RN_MARK = '" + m.cRN_Mark + "'")
  cWhereTmp2 = Iif(Empty(m.cRN_MarkNOO), "", "RN_MARK = '" + m.cRN_MarkNOO + "'")
  If Empty(m.cWhereTmp1) Or Empty(m.cWhereTmp2)
    cWhereTmp = m.cWhereTmp1 + m.cWhereTmp2
  Else
    cWhereTmp = "(" + m.cWhereTmp1 + " Or " + m.cWhereTmp2 + ")"
  EndIf

  Select RN, 1 As OptFld From EopBase ;
   Where DATE_EOP => ?m.dDateBegin ;
     And DATE_EOP <= ?m.dDateEnd ;
     And &cWhereTmp ;
   Into Cursor curEopInOper

  Index On RN Tag RN   
EndIf

Store "" To cColGet, cRowGet

* Колонка 4
cSymb = m.c18SymbCol4

nCol4Row321 = GetSum("4;321", "OBDB",      "101;107?1",,       cSymb,, "106?1;106?2;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?1;106?2",,     cSymb,, "INTERNAL",,,.T.)

nCol4Row322 = GetSum("4;322", "OBCR",      "106?1;106?2",,     cSymb,, "101;107?1;INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "101;107?1",,       cSymb,, "INTERNAL",,,.T.)           + ;
              GetSum("",      "OBCR-OBDB", "1041;1042;1043;1049!1042N;1042R;1042I;1042D;1043N;1043R;1043I;1043D;1049I",, cSymb) + ;
              GetSum("",      "OBCR-OBDB", "1141;1142;1143!1142N;1142R;1142I;1142D;1143N;1143R;1143I;1143D",, cSymb)
              
nCol4Row331 = GetSum("4;331", "OBDB",      "102",,             cSymb,, "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I",, cSymb,, "INTERNAL",,,.T.)

nCol4Row332 = GetSum("4;332", "OBCR",      "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I",, cSymb,, "102",,,.T.) + ;
              GetSum("",      "OBCR",      "102",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1042N;1042R;1042I;1042D;1043N;1043R;1043I;1043D;1049I",, cSymb) + ;
              GetSum("",      "OBCR-OBDB", "1142N;1142R;1142I;1142D;1143N;1143R;1143I;1143D",,       cSymb)

nCol4Row351 = GetSum("4;351", "OBDB",      "103",,             cSymb,, "106?3;10695;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?3;10695",,     cSymb,, "INTERNAL",,,.T.)

nCol4Row352 = GetSum("4;352", "OBCR",      "106?3;10695",,     cSymb,, "103",,,.T.)      + ;
              GetSum("",      "OBCR",      "103",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1147",,            cSymb)

nCol4Row371 = GetSum("4;371", "OBDB",      "111",,             cSymb,, "1066;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "1066",,            cSymb,, "INTERNAL",,,.T.)

nCol4Row372 = GetSum("4;372", "OBCR",      "111",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "1066",,            cSymb,, "111",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1044;1046;1144;1146",, cSymb)              

nCol4Row381 = GetSum("4;381", "OBDB",      "113;107?4",,       cSymb,, "106?7;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?7",,           cSymb,, "INTERNAL",,,.T.)

nCol4Row382 = GetSum("4;382", "OBCR",      "106?7",,           cSymb,, "113;107?4;INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "113;107?4",,       cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1149",,            cSymb)              

nCol4Row391 = GetSum("4;391", "OBDB",      "109",,             cSymb)

nCol4Row392 = GetSum("4;392", "OBCR",      "109",,             cSymb)

nCol4Row396 = GetSum("4;396", "OBDB",      "110",,             cSymb)

nCol4Row397 = GetSum("4;397", "OBCR",      "110",,             cSymb)

nCol4Row400 = GetSum("4;400", "OBDB-OBCR", "4015",,            cSymb)

nCol4Row431 = GetSum("4;431", "OBDB",      "201",,             cSymb)

nCol4Row432 = GetSum("4;432", "OBCR",      "201",,             cSymb)

nCol4Row441 = GetSum("4;441", "OBDB",      "2042;2152",,       cSymb,, "2152;INTERNAL",,,.T.)

nCol4Row442 = GetSum("4;442", "OBCR",      "2042;2152",,       cSymb,, "2152;INTERNAL",,,.T.)

nCol4Row451 = GetSum("4;451", "OBDB",      "2043;2153;2155Т;2155T",, cSymb,, "215;INTERNAL",,,.T.)

nCol4Row452 = GetSum("4;452", "OBCR",      "2043;2153;2155Т;2155T",, cSymb,, "215;INTERNAL",,,.T.)

nCol4Row461 = GetSum("4;461", "OBDB",      "207",,             cSymb)

nCol4Row462 = GetSum("4;462", "OBCR",      "207",,             cSymb)

nCol4Row471 = GetSum("4;471", "OBDB",      "2045;21552;21553",, cSymb,, "2155;INTERNAL",,,.T.)

nCol4Row472 = GetSum("4;472", "OBCR",      "2045;21552;21553",, cSymb,, "2155;INTERNAL",,,.T.)

nCol4Row481 = GetSum("4;481", "OBDB",      "205;206;208;209;2101;21003;21005;21006;210T5;210Т5",,cSymb)

nCol4Row482 = GetSum("4;482", "OBCR",      "205;206;208;209;2101;21003;21005;21006;210T5;210Т5",,cSymb)

nCol4Row541 = GetSum("4;541", "OBCR",      "302;303;304",, cSymb) - ;
              GetSum("",      "OBCR",      "30404;30406",, cSymb,, "4013")

nCol4Row542 = GetSum("4;542", "OBDB",      "302;303;304",, cSymb) - ;
              GetSum("",      "OBDB",      "30404;30406",, cSymb,,"4013")

nCol4Row550 = GetSum("4;550", "OBCR-OBDB", "4014",,        cSymb)

nCol4Row560 = GetSum("4;560", "OBCR-OBDB", "4016",,        cSymb)

* Колонка 5
cSymb = m.c18SymbCol5

nCol5Row303 = 0

nCol5Row321 = GetSum("5;321", "OBDB",      "101;107?1",,       cSymb,, "106?1;106?2;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?1;106?2",,     cSymb,, "INTERNAL",,,.T.)

nCol5Row322 = GetSum("5;322", "OBCR",      "106?1;106?2",,     cSymb,, "101;107?1;INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "101;107?1",,       cSymb,, "INTERNAL",,,.T.)           + ;
              GetSum("",      "OBCR-OBDB", "1041;1042;1043;1049!1042N;1042R;1042I;1042D;1043N;1043R;1043I;1043D;1049I",, cSymb) + ;
              GetSum("",      "OBCR-OBDB", "1141;1142;1143!1142N;1142R;1142I;1142D;1143N;1143R;1143I;1143D",, cSymb)

nCol5Row331 = GetSum("5;331", "OBDB",      "102",,             cSymb,, "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I",, cSymb,, "INTERNAL",,,.T.)

nCol5Row332 = GetSum("5;332", "OBCR",      "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I",, cSymb,, "102",,,.T.) + ;
              GetSum("",      "OBCR",      "102",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1042N;1042R;1042I;1042D;1043N;1043R;1043I;1043D;1049I",, cSymb) + ;
              GetSum("",      "OBCR-OBDB", "1142N;1142R;1142I;1142D;1143N;1143R;1143I;1143D",,       cSymb)

nCol5Row351 = GetSum("5;351", "OBDB",      "103",,             cSymb,, "106?3;10695;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?3;10695",,     cSymb,, "INTERNAL",,,.T.)

nCol5Row352 = GetSum("5;352", "OBCR",      "106?3;10695",,     cSymb,, "103",,,.T.)      + ;
              GetSum("",      "OBCR",      "103",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1147",,            cSymb)

nCol5Row371 = GetSum("5;371", "OBDB",      "111",,             cSymb,, "1066;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "1066",,            cSymb,, "INTERNAL",,,.T.)

nCol5Row372 = GetSum("5;372", "OBCR",      "111",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "1066",,            cSymb,, "111",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1044;1046;1144;1146",, cSymb)              

nCol5Row381 = GetSum("5;381", "OBDB",      "113;107?4",,       cSymb,, "106?7;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?7",,           cSymb,, "INTERNAL",,,.T.)

nCol5Row382 = GetSum("5;382", "OBCR",      "106?7",,           cSymb,, "113;107?4;INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "113;107?4",,       cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1149",,            cSymb)              

nCol5Row391 = GetSum("5;391", "OBDB",      "109",,             cSymb)

nCol5Row392 = GetSum("5;392", "OBCR",      "109",,             cSymb)
              
nCol5Row396 = GetSum("5;396", "OBDB",      "110",,             cSymb)

nCol5Row397 = GetSum("5;397", "OBCR",      "110",,             cSymb)

nCol5Row400 = GetSum("5;400", "OBDB-OBCR", "4015",,            cSymb)

nCol5Row431 = GetSum("5;431", "OBDB",      "201",,             cSymb)

nCol5Row432 = GetSum("5;432", "OBCR",      "201",,             cSymb)

nCol5Row441 = GetSum("5;441", "OBDB",      "2042;2152",,       cSymb,, "2152;INTERNAL",,,.T.)

nCol5Row442 = GetSum("5;442", "OBCR",      "2042;2152",,       cSymb,, "2152;INTERNAL",,,.T.)

nCol5Row451 = GetSum("5;451", "OBDB",      "2043;2153;2155Т;2155T",, cSymb,, "215;INTERNAL",,,.T.)

nCol5Row452 = GetSum("5;452", "OBCR",      "2043;2153;2155Т;2155T",, cSymb,, "215;INTERNAL",,,.T.)

nCol5Row461 = GetSum("5;461", "OBDB",      "207",,cSymb)

nCol5Row462 = GetSum("5;462", "OBCR",      "207",,cSymb)

nCol5Row471 = GetSum("5;471", "OBDB",      "2045;21552;21553",, cSymb,, "2155;INTERNAL",,,.T.)

nCol5Row472 = GetSum("5;472", "OBCR",      "2045;21552;21553",, cSymb,, "2155;INTERNAL",,,.T.)

nCol5Row481 = GetSum("5;481", "OBDB",      "205;206;208;209;2101;21003;21005;21006;210T5;210Т5",,cSymb)

nCol5Row482 = GetSum("5;482", "OBCR",      "205;206;208;209;2101;21003;21005;21006;210T5;210Т5",,cSymb)

nCol5Row521 = 0
nCol5Row522 = 0
nCol5Row531 = 0
nCol5Row532 = 0

nCol5Row541 = GetSum("5;541", "OBCR",      "302;303;304",, cSymb) - ;
              GetSum("",      "OBCR",      "30404;30406",, cSymb,, "4013")

nCol5Row542 = GetSum("5;542", "OBDB",      "302;303;304",, cSymb) - ;
              GetSum("",      "OBDB",      "30404;30406",, cSymb,,"4013")

nCol5Row550 = GetSum("5;550", "OBCR-OBDB", "4014",,        cSymb)

nCol5Row560 = GetSum("5;560", "OBCR-OBDB", "4016",,        cSymb)

* Колонка 6
cSymb = m.c18SymbCol6

nCol6Row302 = GetSum("6;302", "OBCR",      "30303",,      cSymb,, "4011;4012")

nCol6Row321 = GetSum("6;321", "OBDB",      "101;107?1",,       cSymb,, "106?1;106?2;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?1;106?2",,     cSymb,, "INTERNAL",,,.T.)

nCol6Row322 = GetSum("6;322", "OBCR",      "106?1;106?2",,     cSymb,, "101;107?1;INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "101;107?1",,       cSymb,, "INTERNAL",,,.T.)           + ;
              GetSum("",      "OBCR-OBDB", "1041;1042;1043;1049!1042N;1042R;1042I;1042D;1043N;1043R;1043I;1043D;1049I",, cSymb) + ;
              GetSum("",      "OBCR-OBDB", "1141;1142;1143!1142N;1142R;1142I;1142D;1143N;1143R;1143I;1143D",, cSymb)

nCol6Row331 = GetSum("6;331", "OBDB",      "102",,             cSymb,, "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I",, cSymb,, "INTERNAL",,,.T.)

nCol6Row332 = GetSum("6;332", "OBCR",      "1062N;1062R;1062I;1062D;1063N;1063R;1063I;1063D;1069I",, cSymb,, "102",,,.T.) + ;
              GetSum("",      "OBCR",      "102",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1042N;1042R;1042I;1042D;1043N;1043R;1043I;1043D;1049I",, cSymb) + ;
              GetSum("",      "OBCR-OBDB", "1142N;1142R;1142I;1142D;1143N;1143R;1143I;1143D",,       cSymb)

nCol6Row351 = GetSum("6;351", "OBDB",      "103",,             cSymb,, "106?3;10695;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?3;10695",,     cSymb,, "INTERNAL",,,.T.)

nCol6Row352 = GetSum("6;352", "OBCR",      "106?3;10695",,     cSymb,, "103",,,.T.)      + ;
              GetSum("",      "OBCR",      "103",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1147",,            cSymb)

nCol6Row371 = GetSum("6;371", "OBDB",      "111",,             cSymb,, "1066;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "1066",,            cSymb,, "INTERNAL",,,.T.)

nCol6Row372 = GetSum("6;372", "OBCR",      "111",,             cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "1066",,            cSymb,, "111",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1044;1046;1144;1146",, cSymb)              

nCol6Row381 = GetSum("6;381", "OBDB",      "113;107?4",,       cSymb,, "106?7;INTERNAL",,,.T.) + ;
              GetSum("",      "OBDB",      "106?7",,           cSymb,, "INTERNAL",,,.T.)

nCol6Row382 = GetSum("6;382", "OBCR",      "106?7",,           cSymb,, "113;107?4;INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR",      "113;107?4",,       cSymb,, "INTERNAL",,,.T.) + ;
              GetSum("",      "OBCR-OBDB", "1149",,            cSymb)              

nCol6Row391 = GetSum("6;391", "OBDB",      "109",,             cSymb)

nCol6Row392 = GetSum("6;392", "OBCR",      "109",,             cSymb)
              
nCol6Row396 = GetSum("6;396", "OBDB",      "110",,             cSymb)

nCol6Row397 = GetSum("6;397", "OBCR",      "110",,             cSymb)

nCol6Row400 = GetSum("6;400", "OBDB-OBCR", "4015",,            cSymb)

nCol6Row431 = GetSum("6;431", "OBDB",      "201",,             cSymb)

nCol6Row432 = GetSum("6;432", "OBCR",      "201",,             cSymb)

nCol6Row441 = GetSum("6;441", "OBDB",      "2042;2152",,        cSymb,, "2152;INTERNAL",,,.T.)

nCol6Row442 = GetSum("6;442", "OBCR",      "2042;2152",,        cSymb,, "2152;INTERNAL",,,.T.)

nCol6Row451 = GetSum("6;451", "OBDB",      "2043;2153;2155Т;2155T",, cSymb,, "215;INTERNAL",,,.T.)

nCol6Row452 = GetSum("6;452", "OBCR",      "2043;2153;2155Т;2155T",, cSymb,, "215;INTERNAL",,,.T.)

nCol6Row461 = GetSum("6;461", "OBDB",      "207",,              cSymb)

nCol6Row462 = GetSum("6;462", "OBCR",      "207",,              cSymb)

nCol6Row471 = GetSum("6;471", "OBDB",      "2045;21552;21553",, cSymb,, "2155;INTERNAL",,,.T.)

nCol6Row472 = GetSum("6;472", "OBCR",      "2045;21552;21553",, cSymb,, "2155;INTERNAL",,,.T.)

nCol6Row481 = GetSum("6;481", "OBDB",      "205;206;208;209;2101;21003;21005;21006;210T5;210Т5",,cSymb)

nCol6Row482 = GetSum("6;482", "OBCR",      "205;206;208;209;2101;21003;21005;21006;210T5;210Т5",,cSymb)

nCol6Row521 = IIF("2" $ cSymb, GetSum("6;521", "OBCR", "30112;30114",,"2"), 0)              

nCol6Row522 = IIF("2" $ cSymb, GetSum("6;522", "OBDB", "30112;30114",,"2"), 0)

nCol6Row531 = IIF("2" $ cSymb, GetSum("6;531", "OBCR", "30124;30144",,"2"), 0)

nCol6Row532 = IIF("2" $ cSymb, GetSum("6;532", "OBDB", "30124;30144",,"2"), 0)
              
nCol6Row541 = GetSum("6;541", "OBCR",      "302;303;304",, cSymb) - ;
              GetSum("",      "OBCR",      "30404;30406",, cSymb,, "4013")

nCol6Row542 = GetSum("6;542", "OBDB",      "302;303;304",, cSymb) - ;
              GetSum("",      "OBDB",      "30404;30406",, cSymb,,"4013")
              
nCol6Row550 = GetSum("6;550", "OBCR-OBDB", "4014",,        cSymb)

nCol6Row560 = GetSum("6;560", "OBCR-OBDB", "4016",,        cSymb)

oSystem.ShowMessage("")

CurClose("curEopInOper")

&& Формирую имя файла для выгрузки в МинФин
If !Empty(m.cUnlPath)
  Local Array aFiles(1)
  Local nNum, cNum, nN, i
  cUnlPath = AllTrim(m.cUnlPath)
  cFileName = "321"
  Do Case
    Case !Empty(m.dReoDate)
      cFileName = m.cFileName + "R"
    Otherwise &&год
      cFileName = m.cFileName + "Y"
  EndCase
  nNum = 0
  If ADir(aFiles, m.cUnlPath + m.cFileName + "??.txt") # 0
    For m.i = 1 To Alen(aFiles) / 5
      nN = At(".", aFiles(m.i, 1))
      cNum = SubStr(aFiles(m.i, 1), 5, m.nN - 5)
      If m.nNum < Val(m.cNum)
        nNum = Val(m.cNum)
      EndIf 
      If m.nNum = 99
        nNum = 0
      EndIf
    EndFor
  EndIf
  cFileName = m.cUnlPath + m.cFileName + PadL(Int(m.nNum) + 1, 2, "0") + ".txt"
EndIf

&& Формирую имя файла для выгрузки в ГНИ 4
*If !Empty(m.cUnlPath4)
*  Local Array aFiles[1], arrSender[1]
*  Local cOrgRN, cSender, nNum
*    
*  cFileId4  = "NO_BOUCHR7_" + 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, nSheet, i, j, s, lNoMistake
oPrint = objCaller.objExcelRep

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

* Доходы 030 - 110
For m.j = 12 To 19
  s = Str(m.j, 2)
  i = 1
  Select crs721
  Scan For KOSGU = m.s And (Sum4 # 0 Or Sum5 # 0 Or Sum6 # 0)
    If m.i # 1
      oPrint.InsertRange()
    EndIf
    oPrint.PrintRange("Spec" + m.s)
    i = m.i + 1
  EndScan
Next

* Расходы 160 - 270
For m.j = 21 To 29
  s = Str(m.j, 2)
  i = 1
  Select crs721
  Scan For KOSGU = m.s And (Sum4 # 0 Or Sum5 # 0 Or Sum6 # 0)
    If m.i # 1
      oPrint.InsertRange()
    EndIf
    oPrint.PrintRange("Spec" + m.s)
    i = m.i + 1
  EndScan
Next

* увеличение стоимости материальных запасов 361
i = 1
Select crs721
Scan For KOSGU = "347" And (Sum4 # 0 Or Sum5 # 0 Or Sum6 # 0)
  If m.i # 1
    oPrint.InsertRange()
  EndIf
  oPrint.PrintRange("Spec34")
  i = m.i + 1
EndScan

* уменьшение стоимости материальных запасов 362
i = 1
Select crs721
Scan For KOSGU = "447" And (Sum4 # 0 Or Sum5 # 0 Or Sum6 # 0)
  If m.i # 1
    oPrint.InsertRange()
  EndIf
  oPrint.PrintRange("Spec44")
  i = m.i + 1
EndScan

* Расшифровка показателей отчета
If !Empty(m.cDetailAnalit)
  Local ARRAY aRepParts(2)
  aRepParts[1] = "SpecDet"
  aRepParts[2] = "SpecDetA"

  oPrint.ReportPrepare(@aRepParts)

  Select crsDetail
  Scan
    lNoMistake = .T.
    If AllTrim(m.cDetailAnalit) == "*" And !InList(Analit, "347", "447")
      Select a.Code From crsDetail a ;
        Where a.Code  # crsDetail.Code ;
          And !InList(Analit, "347", "447") ;
          And a.Grafa = ?crsDetail.Grafa ;
          And a.VFODB = ?crsDetail.VFODB ;
          And a.DB    = ?crsDetail.DB ;
          And a.DBA1  = ?crsDetail.DBA1 ;
          And a.DBA2  = ?crsDetail.DBA2 ;
          And a.DBA3  = ?crsDetail.DBA3 ;
          And a.DBA4  = ?crsDetail.DBA4 ;
          And a.DBA5  = ?crsDetail.DBA5 ;
          And a.VFOKR = ?crsDetail.VFOKR ;
          And a.KR    = ?crsDetail.KR ;
          And a.KRA1  = ?crsDetail.KRA1 ;
          And a.KRA2  = ?crsDetail.KRA2 ;
          And a.KRA3  = ?crsDetail.KRA3 ;
          And a.KRA4  = ?crsDetail.KRA4 ;
          And a.KRA5  = ?crsDetail.KRA5 ;
        To SCREEN NOCONSOLE

      If _Tally = 0
        Select a.Code From crsDetail a ;
          Where a.Code  = crsDetail.Code ;
            And !InList(Analit, "347", "447") ;
            And a.Grafa = ?crsDetail.Grafa ;
            And a.VFODB = ?crsDetail.VFODB ;
            And a.DB    = ?crsDetail.DB ;
            And a.DBA1  = ?crsDetail.DBA1 ;
            And a.DBA2  = ?crsDetail.DBA2 ;
            And a.DBA3  = ?crsDetail.DBA3 ;
            And a.DBA4  = ?crsDetail.DBA4 ;
            And a.DBA5  = ?crsDetail.DBA5 ;
            And a.VFOKR = ?crsDetail.VFOKR ;
            And a.KR    = ?crsDetail.KR ;
            And a.KRA1  = ?crsDetail.KRA1 ;
            And a.KRA2  = ?crsDetail.KRA2 ;
            And a.KRA3  = ?crsDetail.KRA3 ;
            And a.KRA4  = ?crsDetail.KRA4 ;
            And a.KRA5  = ?crsDetail.KRA5 ;
            And a.Znak  # crsDetail.Znak ;
          To SCREEN NOCONSOLE

        lNoMistake = _Tally # 0
      EndIf
    EndIf

    If m.lNoMistake
      oPrint.PrintReportPart("SpecDet")
    Else
      oPrint.PrintReportPart("SpecDetA")
    EndIf
  EndScan

  oPrint.ReportFinal()
EndIf

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

CurClose("crs721;crsDetail")

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

*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*Ш Подсчёт сумм
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ

Procedure GetSum(cInfo, cOper, cAccMask, cAccSPMask, c18SymbWhere, nSPLevel, cCorrAccMask, cCorrAccSPMask, nSPCorrLevel, lCorrNot)

Local nPos, nALen, i, cAccMask1, cAccMask2, cWhereAcc, cWhereCorrAcc, cTmpWhere, cTmpWhereA
Local cIntMoveWhere, nRet, lExclCode, lInternal, lCorrWithInternal, cTmpStr, nObDb, nObCr
Local cDBJoin, cCorrKRJoin, cKrJoin, cCorrDbJoin, cCorrDbWhere, cCorrKrWhere, cOrgDbWhere, cOrgKrWhere
Local cWhereObDb, cWhereObKr, cJoinObDb, cJoinObKr

Store "" To cDBJoin, cCorrKRJoin, cKrJoin, cCorrDbJoin, cCorrDbWhere, cCorrKrWhere, cOrgDbWhere, cOrgKrWhere
Store "" To cTmpWhere, cWhereObDb, cWhereObKr, cJoinObDb, cJoinObKr, cIntMoveWhere
Store 0  To nRet
cOper = ChrTran(m.cOper, Space(1), Space(0))

lExclCode = m.nExclCode = 1
lInternal = !Empty(cCorrAccMask) And "INTERNAL" $ cCorrAccMask
lCorrWithInternal = m.lInternal And m.lExclCode

* Информация о строке и колонке
If !Empty(m.cInfo)
  Local ARRAY aTmpSymb[1]
  ALines(aTmpSymb, m.cInfo, ";")
  cColGet = AllTrim(aTmpSymb[1])
  cRowGet = AllTrim(aTmpSymb[2])
  oSystem.ShowMessage("Расчёт показателя: колонка " + m.cColGet + ", строка " + m.cRowGet + "...")
  DoEvents
EndIf    

* Условие для 18-го символа
If !Empty(c18SymbWhere)
  Dime aTmpSymb[1]
  ALines(aTmpSymb, c18SymbWhere, ";")
  c18SymbWhere = ""
  For i = 1 To ALen(aTmpSymb, 1)
    c18SymbWhere = IIF(Empty(c18SymbWhere), "InList(SubStr(Account," + c18Pos + ",1)", c18SymbWhere)
    c18SymbWhere = c18SymbWhere + ",'" + Allt(aTmpSymb[i] + "'")
  EndFor
  c18SymbWhere = c18SymbWhere + ")"
EndIf
   
* Отбираем все подходящие счета
nPos = AT("!", m.cAccMask)
cAccMask1 = Iif(m.nPos = 0, m.cAccMask, Left(m.cAccMask, m.nPos - 1))
cAccMask2 = Iif(m.nPos = 0, "", SubStr(m.cAccMask, m.nPos + 1))

Dimension aTmpSymb[1]
nALen = ALines(aTmpSymb, cAccMask1, ";")
For m.i = 1 To m.nALen
  If m.i > 1
    cTmpWhere = cTmpWhere + " Or "
  EndIf
  cTmpWhere = cTmpWhere + "Like('" + Repl("?", n18Pos) + Allt(aTmpSymb[i]) + "*', Account)"
EndFor
If m.nALen > 1
  cTmpWhere = "(" + m.cTmpWhere + ")"
EndIf

If !Empty(m.cAccMask2)
  nALen = ALines(aTmpSymb, cAccMask2, ";")
  For m.i = 1 To m.nALen
    cTmpWhere = cTmpWhere + " And !Like('" + Repl("?", n18Pos) + Allt(aTmpSymb[i]) + "*', Account)"
  EndFor  
EndIf

cTmpWhere = IIF(Empty(c18SymbWhere), "", Allt(c18SymbWhere) + " And ") + m.cTmpWhere

* для коррсчетов условие по контрагентам не должно сыграть
* без поля OptFld процедура работает медленнее
If m.lInternal And m.lExclCode
  Select RN, 1 As OptFld From AccBase Where &cTmpWhere Into Cursor curAccForCorrInOper
  Index On RN Tag RN  
EndIf  

* если есть условие по контрагентам, сразу отбросим счета, не имеющие привязку аналитики к контрагенту
If !Empty(cWhereOrg)
  cTmpWhere = cTmpWhere + " And At('1', Org_An) = " + Str(nOrgLevel,1)
EndIf  

If !Empty(cJournalOp)
  cTmpWhere = cTmpWhere + " And RN_MO # '" + cJournalOp + "'"
EndIf

* без поля OptFld процедура работает медленнее
Select RN, 1 As OptFld From AccBase Where &cTmpWhere Into Cursor curAccInOper
Index On RN Tag RN

* счетов нет, считать нечего
If _Tally = 0
  Return 0
EndIf  

* Если заданы учреждения, отбираем всю привязанную к ним аналитику. Если у счёта нет привязанной
* аналитике по контрагенту - такой счёт отбрасываем
If !Empty(cWhereOrg)
  Select AccSpec.RN From AccSpec ;
   Inner Join curAccInOper      On curAccInOper.RN     = AccSpec.Master_RN;
   Inner Join curOrgBaseInOper  On curOrgBaseInOper.RN = AccSpec.RN_TOrg  ;
  Where AccSpec.Level = nOrgLevel Into Cursor curOrgFromAccSpec 
  Index On RN Tag RN
EndIf

* Отбираем всю подходящую аналитику
lAccSPEmpty = Empty(cAccSPMask)
If !lAccSPEmpty
  Dime aTmpSymb[1]
  ALines(aTmpSymb, cAccSPMask, ";")
  cTmpWhereA = "("
  For i = 1 To ALen(aTmpSymb, 1)
    If i > 1
      cTmpWhereA = cTmpWhereA + " Or "
    EndIf
    cTmpWhereA = cTmpWhereA + "Like('" + Allt(aTmpSymb[i]) + "*', SAccount)"
  EndFor  
  cTmpWhereA = cTmpWhereA + ")"

  Select curAccInOper
  Scan All
    cTmpWhere = "Master_RN = '" + curAccInOper.RN + "' And LEVEL = " + Str(nSPLevel,1) + ;
                              " And " + cTmpWhereA
    Select RN From AccSpec Where &cTmpWhere Into Cursor crsTmp
    If Type("curAccSPInOper.RN") = "U"
      Select RN From crsTmp Into Cursor curAccSPInOper ReadWrite
      Index On RN Tag RN
    Else
      Scan All
        Insert Into curAccSPInOper (RN) Values (crsTmp.RN)
      EndScan
    EndIf  
  EndScan
EndIf

* Отбираем все подходящие коррсчета
lCorrAccEmpty = Empty(cCorrAccMask)
If !lCorrAccEmpty
  cTmpWhere = ""
  Dime aTmpSymb[1]
  ALines(aTmpSymb, cCorrAccMask, ";")  
  For i = 1 To ALen(aTmpSymb, 1)
    * для внутреннего перемещения - своя обработка 
    If aTmpSymb[i] = "INTERNAL"
      Loop
    EndIf
    If !Empty(cTmpWhere)
      cTmpWhere = cTmpWhere + " Or "
    EndIf
    cTmpWhere = cTmpWhere + "Like('" + Repl("?", n18Pos) + Allt(aTmpSymb[i]) + "*', Account)"
  EndFor  
  * Теоретически мы могли задать только INTERNAL, тогда никаких условий на коррсчета не нужно (ВП обработается дальше)
  * и вообще можно выставить признак коррсчетов в .F. (подразумеваем, что условие по ВП не может включать в себя аналитику)
  lCorrAccEmpty = Empty(cTmpWhere)
  If !lCorrAccEmpty
    Select RN From AccBase Where &cTmpWhere Into Cursor curCorrAccInOper
    Index On RN Tag RN  
  EndIf  
EndIf

* Выборка аналитики для коррсчёта
lCorrAccSPEmpty = lCorrAccEmpty Or Empty(cCorrAccSPMask)
If !lCorrAccSPEmpty 
  Select curCorrAccInOper
  Scan All
    cTmpWhere = "Master_RN = '" + curCorrAccInOper.RN + "' And LEVEL = " + Str(nSPCorrLevel,1) + ;
                              " And Like('" + AllTrim(cCorrAccSPMask) + "*', SAccount)"
    Select RN From AccSpec Where &cTmpWhere Into Cursor crsTmp
    If Type("curCorrAccSPInOper.RN") = "U"
      Select RN From crsTmp Into Cursor curCorrAccSPInOper ReadWrite
      Index On RN Tag RN
    Else
      Scan All
        Insert Into curCorrAccSPInOper (RN) Values (crsTmp.RN)
      EndScan
    EndIf  
  EndScan    
EndIf
  
* полное условие для счетов (дебет и кредит)
For i = 1 To 2
  If i = 1 
    cTmpField = "RN_DB"
    cTmpJoin  = "cDBJoin"
    cTmpWhere = "cOrgDbWhere"
  Else
    cTmpField = "RN_KR"
    cTmpJoin  = "cKRJoin"    
    cTmpWhere = "cOrgKrWhere"
  EndIf
  &cTmpJoin = " Inner Join curAccInOper On curAccInOper.RN = " + cTmpField
  If Type("curAccSPInOper.RN") # "U"
    &cTmpJoin  = &cTmpJoin + " Inner Join curAccSPInOper On curAccSPInOper.RN = " + cTmpField + "_A" + Str(nSPLevel,1)
  EndIf
  If !Empty(m.cWhereOrg)
    &cTmpWhere = m.cTmpField + "_A" + Str(m.nOrgLevel,1) + " In (Select RN From curOrgFromAccSpec)"   && НЕ ТРОГАТЬ! SQL-запрос не работает здесь с INNER JOIN
  EndIf
EndFor

* полное условие для коррсчетов (дебет и кредит). Если имеем исключение по коррсчетам
* вместо Join используем Where
If !lCorrAccEmpty Or lCorrWithInternal
  For i = 1 To 2
    If i = 1 
      cTmpField = "RN_KR"
      cTmpJoin  = "cCorrKRJoin"
      cTmpWhere = "cCorrKrWhere"
    Else
      cTmpField = "RN_DB"
      cTmpJoin  = "cCorrDBJoin"  
      cTmpWhere = "cCorrDbWhere"        
    EndIf
    * исключение коррсчетов
    If !lCorrAccEmpty And !lCorrNot
      &cTmpJoin = " Inner Join curCorrAccInOper On curCorrAccInOper.RN = " + cTmpField    
    EndIf
    * внутреннее перемещение
    If lCorrWithInternal And !lCorrNot
      &cTmpJoin = &cTmpJoin + " Inner Join curAccForCorrInOper On curAccForCorrInOper.RN = " + cTmpField    
    EndIf
    * аналитика  
    If !lCorrAccEmpty And Type("curCorrAccSPInOper.RN") # "U"
      &cTmpJoin = &cTmpJoin + " Inner Join curCorrAccSPInOper On curCorrAccSPInOper.RN = " + cTmpField + "_A" + Str(nSPCorrLevel,1)    
    EndIf
  EndFor
EndIf  

* внутреннее перемещение (без признака)
If m.lInternal And !m.lExclCode And (!m.lCorrNot Or m.nAccType = 1)
  cIntMoveWhere = "RN_DB = RN_KR And RN_DB_A" + m.cSPLevel + " = RN_KR_A" + m.cSPLevel
  If m.lCorrNot
    cIntMoveWhere = "!(" + m.cIntMoveWhere + ")"
  EndIf
EndIf  

* финальные условия отбора и join-ы
cJoinObDb  = cDBJoin + cCorrKRJoin 
cJoinObKr  = cKrJoin + cCorrDbJoin

cWhereObDb = cIntMoveWhere + IIF(!Empty(cIntMoveWhere) And !Empty(cCorrKrWhere),  IIF(lCorrNot, " And ", " Or "), "") + cCorrKrWhere
cWhereObKr = cIntMoveWhere + IIF(!Empty(cIntMoveWhere) And !Empty(cCorrDbWhere),  IIF(lCorrNot, " And ", " Or "), "") + cCorrDbWhere

If !Empty(m.cWhereOrg)
  cWhereObDb = m.cOrgDbWhere + Iif(!Empty(m.cWhereObDb), " And (" + m.cWhereObDb + ")", "")
  cWhereObKr = m.cOrgKrWhere + Iif(!Empty(m.cWhereObKr), " And (" + m.cWhereObKr + ")", "")
EndIf

cTmpStr = ".T."

* Заданы условия для исключения
* МО
If !Empty(m.cJournalOp)
  cTmpStr   = "EopSPMir.RN_MO # '" + m.cJournalOp + "' And C.RN_MO # '" + m.cJournalOp + "'"
  cJoinObDb = m.cJoinObDb + " Left Join AccBase C On EopSPMir.RN_KR = C.RN"
  cJoinObKr = m.cJoinObKr + " Left Join AccBase C On EopSPMir.RN_DB = C.RN"
EndIf

* Каталог ХО
If !Empty(m.cCatEO)
  cTmpStr = m.cTmpStr + " And PARENT_RN # '" + m.cCatEO + "' "
EndIf

If !(m.cTmpStr == ".T.")
  cWhereObDb = m.cWhereObDb + Iif(!Empty(m.cWhereObDb), " And ", "") + m.cTmpStr
  cWhereObKr = m.cWhereObKr + Iif(!Empty(m.cWhereObKr), " And ", "") + m.cTmpStr
EndIf

cWhereObKr = IIF(!Empty(cWhereObKr), cWhereObKr, ".T.")
cWhereObDb = IIF(!Empty(cWhereObDb), cWhereObDb, ".T.")

If RepG151.GetComRepPrm151("_0503721", @lNoError, m.cOper, @nRet, m.cJoinObDb, m.cJoinObKr, m.cWhereObDb, m.cWhereObKr)
  If "OBDB" $ m.cOper
    Select EopSPMir.* From EopSPMir ;
      &cJoinObDb ;
    Where DATE_EOP => ?m.dDateBegin And DATE_EOP <= ?m.dDateEnd And;
          (&cWhereObDb) Into CURSOR crsTmpDB READWRITE
    
    * исключение коррсчетов
    If !m.lCorrAccEmpty And m.lCorrNot
      Delete For Seek(RN_KR, "curCorrAccInOper")
    EndIf

    * внутреннее перемещение
    If m.lCorrWithInternal And m.lCorrNot
      Delete For Seek(RN_KR, "curAccForCorrInOper")
    EndIf
    If m.lInternal And !m.lExclCode
      DelInternal(!m.lCorrNot)
    EndIf

    * ОО ХО
    If !Empty(m.cRN_Mark) Or !Empty(m.cRN_MarkNOO)
      Delete For Seek(MASTER_RN, "curEopInOper")
    EndIf

    * Расшифровка
    MakeDetAnalit("crsTmpDB", m.cColGet, Iif(AT("OBDB", m.cOper) > 1 And SubStr(m.cOper, AT("OBDB", m.cOper) - 1, 1) = "-", "-", "+"), m.cRowGet)

    SeLect crsTmpDB
    Sum SUM_EQUAL To m.nObDb
    Use In crsTmpDB
  EndIf

  If "OBCR" $ m.cOper
    Select EopSPMir.* From EopSPMir ;
      &cJoinObKr ;
    Where DATE_EOP => ?m.dDateBegin And DATE_EOP <= ?m.dDateEnd And;
          (&cWhereObKr) Into CURSOR crsTmpKR READWRITE

    * исключение коррсчетов
    If !m.lCorrAccEmpty And m.lCorrNot
      Delete For Seek(RN_DB, "curCorrAccInOper")
    EndIf

    * внутреннее перемещение
    If m.lCorrWithInternal And m.lCorrNot
      Delete For Seek(RN_DB, "curAccForCorrInOper")
    EndIf
    If m.lInternal And !m.lExclCode
      DelInternal(!m.lCorrNot)
    EndIf

    * ОО ХО
    If !Empty(m.cRN_Mark) Or !Empty(m.cRN_MarkNOO)
      Delete For Seek(MASTER_RN, "curEopInOper")
    EndIf

    * Расшифровка
    MakeDetAnalit("crsTmpKR", m.cColGet, Iif(AT("OBCR", m.cOper) > 1 And SubStr(m.cOper, AT("OBCR", m.cOper) - 1, 1) = "-", "-", "+"), m.cRowGet)

    SeLect crsTmpKR
    Sum SUM_EQUAL To m.nObKr
    Use In crsTmpKR
  EndIf              

  cOper = StrTran(m.cOper, "OBDB", "m.nObDb")
  cOper = StrTran(m.cOper, "OBCR", "m.nObKr")

  nRet = Evaluate(m.cOper)
EndIf

CurClose("curAccInOper,curAccSPInOper,curCorrAccInOper,curCorrAccSPInOper,curOrgFromAccSpec,crsTmp,curAccForCorrInOper")

Return m.nRet


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Подсчёт сумм - Доходы 030 - 110, Расходы 160 - 270
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure SelAccFromBase(nOption, cCol, cAnalit, cCorrD)

 Local ARRAY aTmp[1]
 Local cSubs, cWhere, cWhereAnalit, cWhereCorrD, cWhereCorrK, nALen, i, cNot
 Private cJoinAn_D, cJoinAn_K, cWhereOrgPO
 Store "" To cJoinAn_D, cJoinAn_K, cWhereOrgPO, cWhereCorrD, cNot

 * Список счетов
 cSubs  = Iif(m.nOption = 1, "4011", "4012")
 cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
        + " And Like('" + Replicate("?", m.n18Pos) + m.cSubs + "*', Account)"

 Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc

 * Отбор аналитических счетов по контрагенту
 = GetCondOrg771()

 If _Tally # 0
   Select curAcc
   Index On RN Tag RN

   * Условие по аналитике
   cWhereAnalit = "And InList(Left(AllTrim(AN.SAccount), 2), '" + StrTran(m.cAnalit, ",", "','") + "')"

   * Условие по корреспонденции для оборотов по кредиту
   cWhereCorrK = "And !Like('" + Replicate("?", m.n18Pos) + "4013*', C.Account)"

   * Условие по корреспонденции для оборотов по дебету
   If !Empty(m.cCorrD)
     If m.cCorrD = "!"
       cNot   = "!"
       cCorrD = SubStr(m.cCorrD, 2)
     EndIf
     nALen = ALines(aTmp, m.cCorrD, ",")
     For m.i = 1 To m.nALen
       cWhereCorrD = m.cWhereCorrD + " Or Like('" + Replicate("?", m.n18Pos) + aTmp[m.i] + "*', C.Account)"
     Next
     cWhereCorrD = SubStr(m.cWhereCorrD, 5)
     If m.nALen # 1
       cWhereCorrD = "(" + m.cWhereCorrD + ")"
     EndIf
     cWhereCorrD = "And " + m.cNot + m.cWhereCorrD
   EndIf

   * Обороты
   If RepG151.GetComRepPrm151("_0503721", @lNoError, m.cWhereOrgPO, m.cWhereCorrD, m.cWhereAnalit)
     Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU ;
       From EopBase B ;
         Inner Join EopSpec S  On B.RN = S.Master_RN ;
         Inner Join curAcc  A  On S.RN_DB = A.RN ;
         Inner Join AccSpec AN On S.RN_DB_A&cSPLevel = AN.RN ;
         Inner Join AccBase C  On S.RN_KR = C.RN ;
         &cJoinAn_D ;
       Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereAnalit &cWhereCorrD ;
       Into CURSOR crsTmpDB

     Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU ;
       From EopBase B ;
         Inner Join EopSpec S  On B.RN = S.Master_RN ;
         Inner Join curAcc  A  On S.RN_KR = A.RN ;
         Inner Join AccSpec AN On S.RN_KR_A&cSPLevel = AN.RN ;
         Inner Join AccBase C  On S.RN_DB = C.RN ;
         &cJoinAn_K ;
       Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereAnalit &cWhereCorrK ;
       Into CURSOR crsTmpKR

     * Расшифровка
     MakeDetAnalit("crsTmpDB", m.cCol, Iif(m.nOption = 1, "-", "+"))
     MakeDetAnalit("crsTmpKR", m.cCol, Iif(m.nOption = 1, "+", "-"))

     Select KOSGU, SUM_EQUAL As Sum ;
       From crsTmpDB ;
     UNION ALL ;
     Select KOSGU, -SUM_EQUAL As Sum ;
       From crsTmpKR ;
       Into CURSOR crsTmp

     Select KOSGU, Sum(SUM) As SUM ;
       From crsTmp ;
       Group By 1 ;
       Into CURSOR crsTmp2

     Scan
       Select crs721
       If !Seek(crsTmp2.KOSGU)
         Insert Into crs721 (KOSGU) VALUES (crsTmp2.KOSGU)
       EndIf
       Replace Sum&cCol With Sum&cCol + Iif(m.nOption = 1, -crsTmp2.SUM, crsTmp2.SUM)
     EndScan
   EndIf
 EndIf
 
 CurClose("curAcc,crsAccSpRN,crsTmpDB,crsTmpKR,crsTmp,crsTmp2")

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Расходы. Уточнение алгоритма для строк 161-270
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure SelAccFromBaseR(cCol)

 Local ARRAY aTmp[1], aSum[1]
 Local cWhere, cWhereCorr, nALen, i
 Private cJoinAn_D, cJoinAn_K, cWhereOrgPO
 Store "" To cJoinAn_D, cJoinAn_K, cWhereOrgPO, cWhereCorr

 * Список счетов
 cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
        + " And Like('" + Replicate("?", m.n18Pos) + "4011*', Account)"

 Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc

 * Отбор аналитических счетов по контрагенту
 = GetCondOrg771()

 If _Tally # 0
   Select curAcc
   Index On RN Tag RN

   * Условие по корреспонденции
   nALen = ALines(aTmp, "1096,1098,1099,1106,1108", ",")
   For m.i = 1 To m.nALen
     cWhereCorr = m.cWhereCorr + " Or Like('" + Replicate("?", m.n18Pos) + aTmp[m.i] + "*', C.Account)"
   Next
   cWhereCorr = "And " + "(" + SubStr(m.cWhereCorr, 5) + ")"

   * Обороты
   If RepG151.GetComRepPrm151("_0503721", @lNoError, m.cWhereOrgPO, m.cWhereCorr)
     Select S.*, PadR(AllTrim(CA.SAccount), 3) As KOSGU ;
       From EopBase B ;
         Inner Join EopSpec S  On B.RN = S.Master_RN ;
         Inner Join curAcc  A  On S.RN_DB = A.RN ;
         Inner Join AccSpec AN On S.RN_DB_A&cSPLevel = AN.RN ;
         Inner Join AccBase C  On S.RN_KR = C.RN ;
         Inner Join AccSpec CA On S.RN_KR_A&cSPLevel = CA.RN ;
         &cJoinAn_D ;
       Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO And Left(AllTrim(AN.SAccount), 2) = "13" ;
             &cWhereCorr And InList(Left(AllTrim(CA.SAccount), 2), "21", "22", "23", "24", "25", "26", "27", "28", "29") ;
       Into CURSOR crsTmpDB

     * Расшифровка
     MakeDetAnalit("crsTmpDB", m.cCol, "+")

     Select KOSGU, Sum(SUM_EQUAL) As Sum ;
       From crsTmpDB ;
       Group By 1 ;
       Into CURSOR crsTmp

     Scan
       Select crs721
       If !Seek(crsTmp.KOSGU)
         Insert Into crs721 (KOSGU) VALUES (crsTmp.KOSGU)
       EndIf
       Replace Sum&cCol With Sum&cCol + crsTmp.SUM
     EndScan

     CurClose("crsTmpDB,crsTmp")
   EndIf

   * Доп. условие по корреспонденции для 250
   Store "" To cWhereCorr
   nALen = ALines(aTmp, "10527,10537,10528,10538,10539", ",")
   For m.i = 1 To m.nALen
     cWhereCorr = m.cWhereCorr + " Or Like('" + Replicate("?", m.n18Pos) + aTmp[m.i] + "*', C.Account)"
   Next
   cWhereCorr = "And " + "(" + SubStr(m.cWhereCorr, 5) + ")"

   * Доп. обороты для 250
   If RepG151.GetComRepPrm151("_0503721", @lNoError, m.cWhereOrgPO, m.cWhereCorr)
     Select S.*, "272" As KOSGU ;
       From EopBase B ;
         Inner Join EopSpec S  On B.RN = S.Master_RN ;
         Inner Join curAcc  A  On S.RN_DB = A.RN ;
         Inner Join AccSpec AN On S.RN_DB_A&cSPLevel = AN.RN ;
         Inner Join AccBase C  On S.RN_KR = C.RN ;
         &cJoinAn_D ;
       Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO And Left(AllTrim(AN.SAccount), 2) = "13" &cWhereCorr ;
       Into CURSOR crsTmpDB

     * Расшифровка
     MakeDetAnalit("crsTmpDB", m.cCol, "+")

     Select Sum(SUM_EQUAL) As Sum ;
       From crsTmpDB ;
       Into ARRAY aSum

     If _Tally # 0
       Select crs721
       If !Seek("272")
         Insert Into crs721 (KOSGU) VALUES ("272")
       EndIf
       Replace Sum&cCol With Sum&cCol + aSum[1]
     EndIf
   EndIf
 EndIf
 
 CurClose("curAcc,crsAccSpRN,crsTmpDB")

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* увеличение стоимости материальных запасов 361
* уменьшение стоимости материальных запасов 362
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure SelAccFromBase36(nRow, cCol)

 Local cRow, cWhere, cWhereCorr, cWhereInt, cKOSGU, nTmpSum
 Private cJoinAn_D, cJoinAn_K, cWhereOrgPO
 Store "" To cJoinAn_D, cJoinAn_K, cWhereOrgPO, cWhereInt
 cRow = Str(m.nRow, 1)

 * Условие по корреспонденции
 If m.nRow = 1   && 361
   cWhereCorr = "And !Like('" + Replicate("?", m.n18Pos) + "106?4*', C.Account)"
 Else            && 362
   cWhereCorr = "And !(Like('" + Replicate("?", m.n18Pos) + "105*', C.Account) Or Like('" + Replicate("?", m.n18Pos) + "107?3*', C.Account))"
 EndIf

 * из них
 cKOSGU = Iif(m.nRow = 1, "347", "447")
 
 * Условие по внутреннему перемещению
 If m.nExclCode = 0 And m.nAccType = 1
   cWhereInt = "And !(S.RN_DB = S.RN_KR And S.RN_DB_A" + m.cSPLevel + " = S.RN_KR_A" + m.cSPLevel + ")"
 EndIf

 * Список счетов 105??
 cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
        + " And Like('" + Replicate("?", m.n18Pos) + "105*', Account)"
 If m.nRow = 2 And m.cCol = "6"   && 362 колонка 6
   cWhere = m.cWhere + " And !Like('" + Replicate("?", m.n18Pos) + "10539*', Account)"
 EndIf
 Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc105

 * Список счетов 106?4
 cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
        + " And Like('" + Replicate("?", m.n18Pos) + "106?4*', Account)"
 Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc106

 * Список счетов 107?3
 cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
        + " And Like('" + Replicate("?", m.n18Pos) + "107?3*', Account)"
 Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc107

 If m.nRow = 2   && 362
   * Список счетов 1148?
   cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
          + " And Like('" + Replicate("?", m.n18Pos) + "1148*', Account)"
   Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc1148
 EndIf

 If m.cCol = "6"
   * Список счетов 10539
   cWhere = "SubStr(Account," + m.c18Pos + ",1) $ '" + ChrTran(m.c18SymbCol&cCol, ";", "") + "'" ;
          + " And Like('" + Replicate("?", m.n18Pos) + "10539*', Account)"
   Select RN, RN_MO, AT('1', ORG_AN) As OrgLevel From AccBase Where &cWhere Into CURSOR curAcc10539
 EndIf

 * Отбор аналитических счетов по контрагенту
 Select * From curAcc105 UNION ALL Select * From curAcc106 UNION ALL Select * From curAcc107 Into CURSOR curAcc
 If m.nRow = 2   && 362
   Select * From curAcc UNION ALL Select * From curAcc1148 Into CURSOR curAcc
 EndIf
 If m.nRow = 2 And m.cCol = "6"   && 362 колонка 6
   Select * From curAcc UNION ALL Select * From curAcc10539 Into CURSOR curAcc
 EndIf
 = GetCondOrg771()

 If _Tally # 0
   Select curAcc105
   Index On RN Tag RN
   Select curAcc106
   Index On RN Tag RN
   Select curAcc107
   Index On RN Tag RN
   If m.nRow = 2   && 362
     Select curAcc1148
     Index On RN Tag RN
   EndIf
   If m.cCol = "6"
     Select curAcc10539
     Index On RN Tag RN
   EndIf

   * Обороты
   If RepG151.GetComRepPrm151("_0503721", @lNoError, m.cWhereOrgPO, m.cWhereCorr)
     If m.nRow = 1   && 361
       Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec   S  On B.RN = S.Master_RN ;
           Inner Join curAcc105 A  On S.RN_DB = A.RN ;
           Inner Join AccSpec   AN On S.RN_DB_A&cSPLevel = AN.RN ;
           Inner Join AccBase   C  On S.RN_KR = C.RN ;
           &cJoinAn_D ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereCorr &cWhereInt ;
         Into CURSOR crsTmpDB105 READWRITE

       If m.nExclCode = 1
         Delete For Seek(RN_KR, "curAcc105")
       Else
         DelInternal()
       EndIf

       Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec   S  On B.RN = S.Master_RN ;
           Inner Join curAcc107 A  On S.RN_DB = A.RN ;
           Inner Join AccSpec   AN On S.RN_DB_A&cSPLevel = AN.RN ;
           Inner Join AccBase   C  On S.RN_KR = C.RN ;
           &cJoinAn_D ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereCorr &cWhereInt ;
         Into CURSOR crsTmpDB107 READWRITE

       If m.nExclCode = 1
         Delete For Seek(RN_KR, "curAcc107")
       Else
         DelInternal()
       EndIf

       Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec   S  On B.RN = S.Master_RN ;
           Inner Join curAcc106 A  On S.RN_DB = A.RN ;
           Inner Join AccSpec   AN On S.RN_DB_A&cSPLevel = AN.RN ;
           Inner Join AccBase   C  On S.RN_KR = C.RN ;
           &cJoinAn_D ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereInt ;
         Into CURSOR crsTmpDB106 READWRITE

       If m.nExclCode = 1
         Delete For Seek(RN_KR, "curAcc106")
       Else
         DelInternal()
       EndIf

       Select * From crsTmpDB105 UNION ALL Select * From crsTmpDB107 UNION ALL Select * From crsTmpDB106 ;
         Into CURSOR crsTmpDB

       CurClose("crsTmpDB105,crsTmpDB106,crsTmpDB107")

       * Расшифровка
       MakeDetAnalit("crsTmpDB", m.cCol, "+", "361")

       Select *, ?m.cKOSGU As KOSGU From crsTmpDB Where KOSGU_ = ?m.cKOSGU Into CURSOR crsTmp7
       MakeDetAnalit("crsTmp7", m.cCol, "+", "361")
       USE In crsTmp7

       Select KOSGU_, SUM_EQUAL As Sum ;
         From crsTmpDB ;
         Into CURSOR crsTmp

       If m.cCol = "6"
         Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
           From EopBase B ;
             Inner Join EopSpec     S  On B.RN = S.Master_RN ;
             Inner Join curAcc10539 A  On S.RN_KR = A.RN ;
             Inner Join AccSpec     AN On S.RN_KR_A&cSPLevel = AN.RN ;
             Inner Join AccBase     C  On S.RN_DB = C.RN ;
             &cJoinAn_K ;
           Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO ;
             And Left(AllTrim(AN.SAccount), 2) = "34" ;
           Into CURSOR crsTmpKR

         * Расшифровка
         MakeDetAnalit("crsTmpKR", m.cCol, "-", "361")

         Select *, ?m.cKOSGU As KOSGU From crsTmpKR Where KOSGU_ = ?m.cKOSGU Into CURSOR crsTmp7
         MakeDetAnalit("crsTmp7", m.cCol, "-", "361")
         USE In crsTmp7

         Select * From crsTmp ;
         UNION ALL ;
         Select KOSGU_, -SUM_EQUAL As Sum ;
           From crsTmpKR ;
           Into CURSOR crsTmp
       EndIf
     Else   && 362
       Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec   S  On B.RN = S.Master_RN ;
           Inner Join curAcc106 A  On S.RN_KR = A.RN ;
           Inner Join AccSpec   AN On S.RN_KR_A&cSPLevel = AN.RN ;
           Inner Join AccBase   C  On S.RN_DB = C.RN ;
           &cJoinAn_K ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereCorr &cWhereInt ;
         Into CURSOR crsTmpKR106 READWRITE

       If m.nExclCode = 1
         Delete For Seek(RN_DB, "curAcc106")
       Else
         DelInternal()
       EndIf

       Select  S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec   S  On B.RN = S.Master_RN ;
           Inner Join curAcc105 A  On S.RN_KR = A.RN ;
           Inner Join AccSpec   AN On S.RN_KR_A&cSPLevel = AN.RN ;
           Inner Join AccBase   C  On S.RN_DB = C.RN ;
           &cJoinAn_K ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereInt ;
         Into CURSOR crsTmpKR105 READWRITE

       If m.nExclCode = 1
         Delete For Seek(RN_DB, "curAcc105")
       Else
         DelInternal()
       EndIf

       Select  S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec   S  On B.RN = S.Master_RN ;
           Inner Join curAcc107 A  On S.RN_KR = A.RN ;
           Inner Join AccSpec   AN On S.RN_KR_A&cSPLevel = AN.RN ;
           Inner Join AccBase   C  On S.RN_DB = C.RN ;
           &cJoinAn_K ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO &cWhereInt ;
         Into CURSOR crsTmpKR107 READWRITE

       If m.nExclCode = 1
         Delete For Seek(RN_DB, "curAcc107")
       Else
         DelInternal()
       EndIf

       Select * From crsTmpKR106 UNION ALL Select * From crsTmpKR105 UNION ALL Select * From crsTmpKR107 ;
       UNION ALL ;
       Select  S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec    S  On B.RN = S.Master_RN ;
           Inner Join curAcc1148 A  On S.RN_KR = A.RN ;
           Inner Join AccSpec    AN On S.RN_KR_A&cSPLevel = AN.RN ;
           &cJoinAn_K ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereOrgPO ;
         Into CURSOR crsTmpKR

       CurClose("crsTmpKR105,crsTmpKR106,crsTmpKR107")

       Select  S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
         From EopBase B ;
           Inner Join EopSpec    S  On B.RN = S.Master_RN ;
           Inner Join curAcc1148 A  On S.RN_DB = A.RN ;
           Inner Join AccSpec    AN On S.RN_DB_A&cSPLevel = AN.RN ;
           &cJoinAn_D ;
         Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereOrgPO ;
         Into CURSOR crsTmpDB

       * Расшифровка
       MakeDetAnalit("crsTmpKR", m.cCol, "+", "362")
       MakeDetAnalit("crsTmpDB", m.cCol, "-", "362")

       Select *, ?m.cKOSGU As KOSGU From crsTmpKR Where KOSGU_ = ?m.cKOSGU Into CURSOR crsTmp7
       MakeDetAnalit("crsTmp7", m.cCol, "+", "362")
       USE In crsTmp7
       Select *, ?m.cKOSGU As KOSGU From crsTmpDB Where KOSGU_ = ?m.cKOSGU Into CURSOR crsTmp7
       MakeDetAnalit("crsTmp7", m.cCol, "-", "362")
       USE In crsTmp7

       Select KOSGU_, SUM_EQUAL As Sum ;
         From crsTmpKR ;
       UNION ALL ;
       Select KOSGU_, -SUM_EQUAL As Sum ;
         From crsTmpDB ;
         Into CURSOR crsTmp

       If m.cCol = "6"
         CurClose("crsTmpKR")

         Select S.*, PadR(AllTrim(AN.SAccount), 3) As KOSGU_ ;
           From EopBase B ;
             Inner Join EopSpec     S  On B.RN = S.Master_RN ;
             Inner Join curAcc10539 A  On S.RN_KR = A.RN ;
             Inner Join AccSpec     AN On S.RN_KR_A&cSPLevel = AN.RN ;
             Inner Join AccBase     C  On S.RN_DB = C.RN ;
             &cJoinAn_K ;
           Where Between(B.DATE_EOP, ?m.dDateBegin, ?m.dDateEnd) &cWhereExcl &cWhereOrgPO ;
             And Left(AllTrim(AN.SAccount), 2) = "44" ;
           Into CURSOR crsTmpKR

         * Расшифровка
         MakeDetAnalit("crsTmpKR", m.cCol, "+", "362")

         Select *, ?m.cKOSGU As KOSGU From crsTmpKR Where KOSGU_ = ?m.cKOSGU Into CURSOR crsTmp7
         MakeDetAnalit("crsTmp7", m.cCol, "+", "362")
         USE In crsTmp7

         Select * From crsTmp ;
         UNION ALL ;
         Select KOSGU_, SUM_EQUAL As Sum ;
           From crsTmpKR ;
           Into CURSOR crsTmp
       EndIf
     EndIf

     Select crsTmp
     Sum SUM To nCol&cCol.Row36&cRow
     nTmpSum = 0
     Sum SUM For KOSGU_ = m.cKOSGU To nTmpSum

    If m.nTmpSum # 0
       Select crs721
       If !Seek(m.cKOSGU)
         Insert Into crs721 (KOSGU) VALUES (m.cKOSGU)
       EndIf
       Replace Sum&cCol With m.nTmpSum
     EndIf
   EndIf
 EndIf
 
 CurClose("curAcc,curAcc105,curAcc106,curAcc107,curAcc1148,curAcc10539,crsAccSpRN,crsTmpDB,crsTmpKR,crsTmp")

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Отбор аналитических счетов по контрагенту
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure GetCondOrg771

 Local i, s

 Store "" To cJoinAn_D, cJoinAn_K, cWhereOrgPO

 If !Empty(m.cWhereOrg)
   Select AccSpec.RN, AccSpec.Master_RN ;
     From curAcc ;
       Inner Join AccSpec On curAcc.RN = AccSpec.Master_RN ;
       Inner Join OrgBase On AccSpec.RN_TOrg = OrgBase.RN ;
     Where &cWhereOrg And AccSpec.Level = curAcc.OrgLevel ;
     Into CURSOR crsAccSpRN

   If _Tally # 0
     Index On RN Tag RN
     For m.i = 1 To 5
       s = Str(m.i, 1)
       cJoinAn_D = m.cJoinAn_D + "Left Join crsAccSpRN A" + m.s + " On S.RN_DB_A" + m.s + " = A" + m.s + ".RN "
     Next
     cJoinAn_K   = StrTran(m.cJoinAn_D, "_DB_", "_KR_")
     cWhereOrgPO = " And (!IsNull(A1.RN) Or !IsNull(A2.RN) Or !IsNull(A3.RN) Or !IsNull(A4.RN) Or !IsNull(A5.RN))"
   Else
     cWhereOrgPO = " And .F."
   EndIf

   Select DISTINCT A.* ;
     From curAcc A ;
       Inner Join crsAccSpRN S On A.RN = S.Master_RN ;
     Into CURSOR curAcc
 EndIf

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Таблица соответствия кодов строк кодам аналитики
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure MakeDetAnArrays

 Dimension arrArrDetRow[55], arrArrDetAnl[55]
 * Доходы
 arrArrDetRow[01] = "030"
 arrArrDetAnl[01] = "12"
 arrArrDetRow[02] = "040"
 arrArrDetAnl[02] = "13"
 arrArrDetRow[03] = "050"
 arrArrDetAnl[03] = "14"
 arrArrDetRow[04] = "060"
 arrArrDetAnl[04] = "15"
 arrArrDetRow[05] = "070"
 arrArrDetAnl[05] = "16"
 arrArrDetRow[06] = "090"
 arrArrDetAnl[06] = "17"
 arrArrDetRow[07] = "100"
 arrArrDetAnl[07] = "18"
 arrArrDetRow[08] = "110"
 arrArrDetAnl[08] = "19"
 * Расходы
 arrArrDetRow[09] = "160"
 arrArrDetAnl[09] = "21"
 arrArrDetRow[10] = "170"
 arrArrDetAnl[10] = "22"
 arrArrDetRow[11] = "190"
 arrArrDetAnl[11] = "23"
 arrArrDetRow[12] = "210"
 arrArrDetAnl[12] = "24"
 arrArrDetRow[13] = "230"
 arrArrDetAnl[13] = "25"
 arrArrDetRow[14] = "240"
 arrArrDetAnl[14] = "26"
 arrArrDetRow[15] = "250"
 arrArrDetAnl[15] = "27"
 arrArrDetRow[16] = "260"
 arrArrDetAnl[16] = "28"
 arrArrDetRow[17] = "270"
 arrArrDetAnl[17] = "29"
 * Налог на прибыль
 arrArrDetRow[18] = "302"
 arrArrDetAnl[18] = ""
 * Операции с нефинансовыми активами
 arrArrDetRow[19] = "321"
 arrArrDetAnl[19] = "310"
 arrArrDetRow[20] = "322"
 arrArrDetAnl[20] = "41X"
 arrArrDetRow[21] = "331"
 arrArrDetAnl[21] = "320"
 arrArrDetRow[22] = "332"
 arrArrDetAnl[22] = "42X"
 arrArrDetRow[23] = "351"
 arrArrDetAnl[23] = "330"
 arrArrDetRow[24] = "352"
 arrArrDetAnl[24] = "43X"
 arrArrDetRow[25] = "361"
 arrArrDetAnl[25] = "340"
 arrArrDetRow[26] = "362"
 arrArrDetAnl[26] = "440"
 arrArrDetRow[27] = "371"
 arrArrDetAnl[27] = "35X"
 arrArrDetRow[28] = "372"
 arrArrDetAnl[28] = "45X"
 arrArrDetRow[29] = "381"
 arrArrDetAnl[29] = "360"
 arrArrDetRow[30] = "382"
 arrArrDetAnl[30] = "46X"
 arrArrDetRow[31] = "391"
 arrArrDetAnl[31] = "x"
 arrArrDetRow[32] = "392"
 arrArrDetAnl[32] = "x"
 arrArrDetRow[33] = "396"
 arrArrDetAnl[33] = "x"
 arrArrDetRow[34] = "397"
 arrArrDetAnl[34] = "x"
 arrArrDetRow[35] = "400"
 arrArrDetAnl[35] = "x"
 * Операции с финансовыми активами
 arrArrDetRow[36] = "431"
 arrArrDetAnl[36] = "510"
 arrArrDetRow[37] = "432"
 arrArrDetAnl[37] = "610"
 arrArrDetRow[38] = "441"
 arrArrDetAnl[38] = "520"
 arrArrDetRow[39] = "442"
 arrArrDetAnl[39] = "620"
 arrArrDetRow[40] = "451"
 arrArrDetAnl[40] = "530"
 arrArrDetRow[41] = "452"
 arrArrDetAnl[41] = "630"
 arrArrDetRow[42] = "461"
 arrArrDetAnl[42] = "540"
 arrArrDetRow[43] = "462"
 arrArrDetAnl[43] = "640"
 arrArrDetRow[44] = "471"
 arrArrDetAnl[44] = "550"
 arrArrDetRow[45] = "472"
 arrArrDetAnl[45] = "650"
 arrArrDetRow[46] = "481"
 arrArrDetAnl[46] = "560"
 arrArrDetRow[47] = "482"
 arrArrDetAnl[47] = "660"
 * Операции с обязательствами
 arrArrDetRow[48] = "521"
 arrArrDetAnl[48] = "710"
 arrArrDetRow[49] = "522"
 arrArrDetAnl[49] = "810"
 arrArrDetRow[50] = "531"
 arrArrDetAnl[50] = "720"
 arrArrDetRow[51] = "532"
 arrArrDetAnl[51] = "820"
 arrArrDetRow[52] = "541"
 arrArrDetAnl[52] = "730"
 arrArrDetRow[53] = "542"
 arrArrDetAnl[53] = "830"
 arrArrDetRow[54] = "550"
 arrArrDetAnl[54] = "x"
 arrArrDetRow[55] = "560"
 arrArrDetAnl[55] = "x"

EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Формирование расшифровки показателей отчета с кодами аналитики
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure MakeDetAnalit(cAlias, cCol, cZnak, cRow)

 If m.nDetAnalit = 0
   Return
 EndIf

 Local cKOSGU, i, j, cSubs, s, cAnl, nKBKLevel
 Local cCode, cVFODB, cDB, cDBA1, cDBA2, cDBA3, cDBA4, cDBA5, cVFOKR, cKR, cKRA1, cKRA2, cKRA3, cKRA4, cKRA5

 Select (m.cAlias)
 Scan
   If Empty(m.cRow)
     cKOSGU = KOSGU
     cCode  = arrArrDetRow[AScan(arrArrDetAnl, Left(KOSGU, 2))]
   Else
     cCode  = m.cRow
     cKOSGU = Iif(Type(m.cAlias + ".KOSGU") = "C", KOSGU, PadR(arrArrDetAnl[AScan(arrArrDetRow, m.cCode)], 3))
   EndIf

   If !CheckAnalitDet(ChrTran(m.cKOSGU, "xХх", "XXX"))
     Loop
   EndIf

   Store Space(15) To cDBA1, cDBA2, cDBA3, cDBA4, cDBA5, cKRA1, cKRA2, cKRA3, cKRA4, cKRA5

   CurOpen("AccSpec")

   For m.i = 1 To 2
     cSubs = Iif(m.i = 1, "DB", "KR")
     c&cSubs = Iif(Seek(&cAlias..RN_&cSubs, "AccBase", "RN"), AccBase.Account, Space(29))
     cVFO&cSubs = SubStr(c&cSubs, m.n18Pos, 1)
     If !Empty(c&cSubs)
       nKBKLevel  = 0
       If m.nOnlyKBKK = 1 And m.nAccType = 2
         nKBKLevel = AT("9", AccBase.SMETA_AN)
         If m.nKBKLevel = 0
           nKBKLevel = AT("3", AccBase.ORG_AN)
         EndIf
       EndIf
       For m.j = 1 To 5
         s = Str(m.j, 1)
         cAnl = Evaluate(m.cAlias + ".RN_" + m.cSubs + "_A" + m.s)
         If !Empty(m.cAnl) And (m.nOnlyKBKK = 0 Or m.j = m.nSPLevel Or m.j = m.nKBKLevel) And Seek(m.cAnl, "AccSpec", "RN")
           c&cSubs.A&s = AccSpec.SAccount
         EndIf
       Next
     EndIf
   Next

   If !Seek(m.cCode + m.cKOSGU + m.cCol + m.cVFODB + m.cDB + m.cDBA1 + m.cDBA2 + m.cDBA3 + m.cDBA4 + m.cDBA5 + m.cVFOKR + m.cKR + m.cKRA1 + m.cKRA2 + m.cKRA3 + m.cKRA4 + m.cKRA5 + m.cZnak, "crsDetail")
     Insert Into crsDetail (Code, Analit, Grafa, VFODB, DB, DBA1, DBA2, DBA3, DBA4, DBA5, VFOKR, KR, KRA1, KRA2, KRA3, KRA4, KRA5, Znak) ;
        VALUES (m.cCode, m.cKOSGU, m.cCol, m.cVFODB, m.cDB, m.cDBA1, m.cDBA2, m.cDBA3, m.cDBA4, m.cDBA5, m.cVFOKR, m.cKR, m.cKRA1, m.cKRA2, m.cKRA3, m.cKRA4, m.cKRA5, m.cZnak)
   EndIf

   Replace Sum With Sum + &cAlias..Sum_Equal In crsDetail
 EndScan
 
EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Проверка кода аналитики для расшифровки показателей отчета
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure CheckAnalitDet(cKOSGU)

 Local i, lOk

 For m.i = 1 To m.nDetAnalit
   If arrDetAnalit[m.i] == "*" Or !Empty(m.cKOSGU) And Like(arrDetAnalit[m.i], AllTrim(m.cKOSGU)) Or Empty(m.cKOSGU) And arrDetAnalit[m.i] == "()"
     lOk = .T.
     Exit
   EndIf
 Next

 Return m.lOk
EndProc


*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
* Удаление проводок по внутреннему перемещению для короткого плана счетов
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure DelInternal
 LParameters lCorrYes

 Local nKBKLevel, cKBKLevel, lIsInternal

 If m.nAccType = 2
   Scan For RN_DB = RN_KR And RN_DB_A&cSPLevel = RN_KR_A&cSPLevel
     nKBKLevel = 0
     If Seek(RN_DB, "AccBase", "RN")
       nKBKLevel = AT("9", AccBase.SMETA_AN)
       If m.nKBKLevel = 0
         nKBKLevel = AT("3", AccBase.ORG_AN)
       EndIf
     EndIf
     lIsInternal = m.nKBKLevel = 0
     If !m.lIsInternal
       cKBKLevel = Str(m.nKBKLevel, 1)
       lIsInternal = RN_DB_A&cKBKLevel = RN_KR_A&cKBKLevel
     EndIf
     If m.lIsInternal And !m.lCorrYes Or !m.lIsInternal And m.lCorrYes
       Delete
     EndIf
   EndScan
 EndIf

EndProc
]]></FPC_></MSE>
  <FPC_><![CDATA[*[VFP]
RepG151.GetOutS(.T.)
*RepG151.GetOutS(.T., .T.)
]]></FPC_>
  </печать>
  </отчет>
  <форма>
    <ид>f_0503721_33n_183n_2023</ид>
    <тип>XML</тип>
    <описание>
      <дополнительно>
        <desc_version>1.0</desc_version>
      </дополнительно>
      <VFP_свойство имя="Name">f_0503721</VFP_свойство>
      <VFP_свойство имя="Caption">Форма 0503721-33н_ред183н_2023</VFP_свойство>
      <VFP_свойство имя="Height">485</VFP_свойство>
      <VFP_свойство имя="Width">470</VFP_свойство>
      <VFP_метод имя="Valid"><![CDATA[LParam oThis, oThisform
Local oPg1, oPg2, oPg3, oPg31, oPg32, cUsl18B, cUsl18VB, cUsl18R, cUsl18ZB, cUsl18VZB, c18B, c18VB, c18R, nLenVB, nLenR
Store "" To cUsl18B, cUsl18VB, cUsl18R
oPg1 = oThisForm.PF.Page1
oPg2 = oThisForm.PF.Page2
oPg3 = oThisForm.PF.Page3

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

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

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

c18B  = oPg1.Txt18B1.Value + oPg1.Txt18B2.Value + oPg1.Txt18B3.Value + oPg1.Txt18B4.Value + ;
        oPg1.Txt18B5.Value + oPg1.Txt18B6.Value + oPg1.Txt18B7.Value + oPg1.Txt18B8.Value + ;
        oPg1.Txt18B9.Value + oPg1.Txt18B10.Value 

c18VB = oPg1.Txt18VB1.Value + oPg1.Txt18VB2.Value + oPg1.Txt18VB3.Value + oPg1.Txt18VB4.Value + ;
        oPg1.Txt18VB5.Value + oPg1.Txt18VB6.Value + oPg1.Txt18VB7.Value + oPg1.Txt18VB8.Value + ;
        oPg1.Txt18VB9.Value + oPg1.Txt18VB10.Value 

c18R  = oPg1.Txt18R1.Value + oPg1.Txt18R2.Value + oPg1.Txt18R3.Value + oPg1.Txt18R4.Value + ;
        oPg1.Txt18R5.Value + oPg1.Txt18R6.Value + oPg1.Txt18R7.Value + oPg1.Txt18R8.Value + ;
        oPg1.Txt18R9.Value + oPg1.Txt18R10.Value 

if empty(m.c18B)
   =exclmes("Не указан вид финансового обеспечения для деятельности с целевыми средствами!")
   oThisForm.PF.ActivePage = 1
   oPg1.Txt18B1.SetFocus()
   return .F.
endif

if empty(m.c18VB)
   =exclmes("Не указан вид финансового обеспечения для деятельности по оказанию услуг (работ)!")
   oThisForm.PF.ActivePage = 1
   oPg1.Txt18VB1.SetFocus()
   return .F.
endif

if empty(m.c18R)
   =exclmes("Не указан вид финансового обеспечения для средств во временном распоряжении!")
   oThisForm.PF.ActivePage = 1
   oPg1.Txt18R1.SetFocus()
   return .F.
endif

c18B   = strtran(c18B,  " ", "")
c18VB  = strtran(c18VB, " ", "")
c18R   = strtran(c18R,  " ", "")
nLenVB = len(m.c18VB)
nLenR  = len(m.c18R)

for i = 1 to len(m.c18B)
    c18VB = strtran(c18VB, substr(m.c18B, m.i, 1), "")
    c18R = strtran(c18R, substr(m.c18B, m.i, 1), "")
endfor

if m.nLenVB # len(m.c18VB)
   =exclmes("Указан одинаковый вид финансового обеспечения для деятельности с целевыми средствами и деятельности по оказанию услуг (работ)!")
   oThisForm.PF.ActivePage = 1
   oPg1.Txt18B1.SetFocus()
   return .F.
endif

if m.nLenR # len(m.c18R)
   =exclmes("Указан одинаковый вид финансового обеспечения для деятельности с целевыми средствами и средств во временном распоряжении!")
   oThisForm.PF.ActivePage = 1
   oPg1.Txt18B1.SetFocus()
   return .F.
endif

for m.i = 1 to len(m.c18VB)
    c18R = strtran(c18R, substr(m.c18VB, m.i, 1), "")
endfor

if m.nLenR # len(m.c18R)
   =exclmes("Указан одинаковый вид финансового обеспечения для деятельности по оказанию услуг (работ) и средств во временном распоряжении!")
   oThisForm.PF.ActivePage = 1
   oPg1.Txt18VB1.SetFocus()
   return .F.
endif

Store "" To c18SymbCol4, c18SymbCol5, c18SymbCol6

* Деятельность с целевыми средствами
For m.i = 1 to Len(m.c18B)
  c18SymbCol4 = c18SymbCol4 + Iif(Empty(c18SymbCol4), "", ";") + substr(m.c18B, m.i, 1)
Next

* Деятельность по оказанию услуг (работ)
For m.i = 1 to Len(m.c18VB)
  c18SymbCol5 = c18SymbCol5 + Iif(Empty(c18SymbCol5), "", ";") + substr(m.c18VB, m.i, 1)
Next

* Средства во временном распоряжении
For m.i = 1 to Len(m.c18R)
  c18SymbCol6 = c18SymbCol6 + Iif(Empty(c18SymbCol6), "", ";") + substr(m.c18R, m.i, 1)
Next

*
cWhereOrg = oPg1.OrgFrom.GetCond()
cOrg      = oPg1.OrgFrom.GetSaveValue()
cRN_Found = oPg1.Founder.Value

If !Empty(m.cWhereOrg) And oPg1.cOrgLevel.Value = 0
   =exclmes("При заданном учреждении должен быть задан уровень аналитики для учреждений!")
   oThisForm.PF.ActivePage = 1
   oPg1.cOrgLevel.SetFocus()
   return .F.
EndIf

* отбор по контрагенту
If !Empty(cWhereOrg)
  Select RN From OrgBase Where &cWhereOrg Into Cursor curOrgBaseInOper
  Index On RN Tag RN
EndIf

cCatEO = oPg2.CmbCatEO.Value

oPg31 = oPg3.Export.Page1
oPg32 = oPg3.Export.Page2

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

* Каталог для выгрузки в ГНИ 4
cUnlPath4 = oPg32.Catalog4.Text.Value
*If !Empty(m.cUnlPath4) And !Directory(m.cUnlPath4, 1)
*   =exclmes("Каталог " + AllTrim(m.cUnlPath4) + Chr(13) + "не существует!")
*   oThisForm.PF.ActivePage = 3
*   oPg3.Export.ActivePage = 2
*   oPg32.Catalog4.SetFocus()
*   Return .F.
*EndIf
cAgent_RN = oPg32.DicAgent4.Value
]]></VFP_метод>
      <VFP_метод имя="PostInit"><![CDATA[LParam oThis, oThisform
Local cIspolnitel
Local oPg1, oPg2, oPg3, oPg31, oPg32
oPg1 = oThisForm.PF.Page1
oPg2 = oThisForm.PF.Page2
oPg3 = oThisForm.PF.Page3

oPg1.OrgFrom.setsavevalue(m.cOrg)
oPg1.Founder.InitThis(m.cRN_Found)
oPg1.cntReoDate.Text.ValueChanged()
cIspolnitel = m.cIspName

oPg2.CmbMark.SetSource(UnitRn("EconOp"))
oPg2.CmbMark.Value = m.cRN_Mark
oPg2.CmbCatEO.UnitCode = "EconOp"
oPg2.CmbCatEO.InitThis(m.cCatEO)
oPg2.JournalOp.Value = m.cJournalOp
oPg2.CmbMarkNOO.SetSource(UnitRn("EconOp"))
oPg2.CmbMarkNOO.Value = m.cRN_MarkNOO
oPg2.fldDetailAnalit.ValueChanged()

oPg31 = oPg3.Export.Page1
oPg31.Catalog.Text.value = m.cUnlPath
oPg31.DicIsp.setsavevalue(m.cDicIsp)
oPg31.fldIspName.Value = m.cIspolnitel

oPg32 = oPg3.Export.Page2
oPg32.Catalog4.Text.Value = m.cUnlPath4
oPg32.DicAgent4.InitThis(m.cAgent_RN)
oPg32.DicAgent4.AddUpdate()

]]></VFP_метод>
      <элемент>
        <VFP_имя>Tbtndialog1</VFP_имя>
        <VFP_свойство имя="Left">190</VFP_свойство>
        <VFP_свойство имя="Top">448</VFP_свойство>
      </элемент>
      <элемент>
        <VFP_класс>TPageFrame</VFP_класс>
        <VFP_свойство имя="Name">PF</VFP_свойство>
        <VFP_свойство имя="Height">445</VFP_свойство>
        <VFP_свойство имя="Width">470</VFP_свойство>
        <VFP_свойство имя="PageCount">3</VFP_свойство>
        <элемент>
          <VFP_имя>Page1</VFP_имя>
          <VFP_свойство имя="Caption">Параметры формирования</VFP_свойство>
          <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
          <VFP_свойство имя="FontSize">8</VFP_свойство>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">200</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">10</VFP_свойство>
            <VFP_свойство имя="Width">450</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">5</VFP_свойство>
            <VFP_свойство имя="Caption">Параметры</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Дата расчета показателей вступительного баланса:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">30</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TdicDate</VFP_класс>
            <VFP_свойство имя="Name">cntBalOpen</VFP_свойство>
            <VFP_свойство имя="Left">355</VFP_свойство>
            <VFP_свойство имя="Top">25</VFP_свойство>
            <элемент>
              <VFP_имя>Text</VFP_имя>
              <VFP_свойство имя="ControlSource">dBalOpen</VFP_свойство>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Отчетный год:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">60</VFP_свойство>
          </элемент>                        
          <элемент>
            <VFP_класс>tYear</VFP_класс>
            <VFP_свойство имя="Name">cntSelYear</VFP_свойство>
            <VFP_свойство имя="ControlSource">nSelYear</VFP_свойство>
            <VFP_свойство имя="Left">110</VFP_свойство>
            <VFP_свойство имя="Top">55</VFP_свойство>
          </элемент>            
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Дата реорганизации:</VFP_свойство>
            <VFP_свойство имя="Left">225</VFP_свойство>
            <VFP_свойство имя="Top">60</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TdicDate</VFP_класс>
            <VFP_свойство имя="Name">cntReoDate</VFP_свойство>
            <VFP_свойство имя="Left">355</VFP_свойство>
            <VFP_свойство имя="Top">55</VFP_свойство>
            <элемент>
              <VFP_имя>Text</VFP_имя>
              <VFP_свойство имя="ControlSource">dReoDate</VFP_свойство>
              <VFP_метод имя="ValueChanged"><![CDATA[LParam oThis, oThisForm
Local oObj
oObj = oThisForm.PF.Page1.cntSelYear
If Empty(oThis.Value)
  oObj.ReceiveMessage(oThisForm, "ReInit")
Else
  oObj.ReceiveMessage(oThisForm, "ViewMode")
EndIf
]]></VFP_метод>
            </элемент>
          </элемент>            
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">90</VFP_свойство>
            <VFP_свойство имя="Caption">Учреждение:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TDicHist</VFP_класс>
            <VFP_свойство имя="Name">OrgFrom</VFP_свойство>
            <VFP_свойство имя="Left">175</VFP_свойство>
            <VFP_свойство имя="Top">85</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_AGENTS721_183N_2023</VFP_свойство>
            <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
            <VFP_свойство имя="condfield" тип="C">orgbase.rmnemo_org</VFP_свойство>
            <VFP_свойство имя="condfieldrn" тип="C">orgbase.rn</VFP_свойство>
            <VFP_свойство имя="enablewildcards" тип="L">.T.</VFP_свойство>
            <элемент>
              <VFP_имя>DicTable</VFP_имя>
              <дополнительно>
                <отложенная_инициализация/>
              </дополнительно>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">120</VFP_свойство>
            <VFP_свойство имя="Caption">Учредитель:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TDicHist</VFP_класс>
            <VFP_свойство имя="Name">Founder</VFP_свойство>
            <VFP_свойство имя="Left">175</VFP_свойство>
            <VFP_свойство имя="Top">115</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_FOUND721_183N_2023</VFP_свойство>
            <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
            <элемент>
              <VFP_имя>DicTable</VFP_имя>
              <дополнительно>
                <отложенная_инициализация/>
              </дополнительно>
            </элемент>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">150</VFP_свойство>
            <VFP_свойство имя="Caption">Размерность плана счетов:</VFP_свойство>
          </элемент>            
          <элемент>
            <VFP_класс>TComboBox</VFP_класс>
            <VFP_свойство имя="Left">330</VFP_свойство>
            <VFP_свойство имя="Name">Cmb_AccType</VFP_свойство>
            <VFP_свойство имя="Top">145</VFP_свойство>
            <VFP_свойство имя="Height">23</VFP_свойство>
            <VFP_свойство имя="Width">120</VFP_свойство>
            <VFP_свойство имя="BoundTo">2</VFP_свойство>
            <VFP_свойство имя="RowSourceType">1</VFP_свойство>
            <VFP_свойство имя="RowSource">26 символов,9 символов</VFP_свойство>
            <VFP_свойство имя="Style">2</VFP_свойство>
            <VFP_свойство имя="ControlSource">nAccType</VFP_свойство>
            <VFP_свойство имя="Delenabled">.F.</VFP_свойство>
            <VFP_свойство имя="NotEmpty">.T.</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TCheckBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">180</VFP_свойство>
            <VFP_свойство имя="ControlSource">nExclCode</VFP_свойство>
            <VFP_свойство имя="Name">chkExclCode</VFP_свойство>
            <VFP_свойство имя="Caption">Исключать обороты по коду счета при внутреннем перемещении</VFP_свойство>
          </элемент>                    
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">105</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">220</VFP_свойство>
            <VFP_свойство имя="Width">450</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">215</VFP_свойство>
            <VFP_свойство имя="Caption">Вид финансового обеспечения</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">235</VFP_свойство>
            <VFP_свойство имя="Caption">Деятельность с целевыми средствами:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">246</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B1</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B1</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">267</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B2</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B2</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">288</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B3</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B3</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">309</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B4</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B4</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">330</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B5</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B5</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">351</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B6</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B6</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">372</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B7</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B7</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">393</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B8</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B8</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">414</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B9</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B9</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">435</VFP_свойство>
            <VFP_свойство имя="Top">230</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18B10</VFP_свойство>
            <VFP_свойство имя="Name">Txt18B10</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">265</VFP_свойство>
            <VFP_свойство имя="Caption">Деятельность по гос. заданию:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">246</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB1</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB1</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">267</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB2</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB2</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">288</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB3</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB3</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">309</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB4</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB4</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">330</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB5</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB5</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">351</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB6</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB6</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">372</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB7</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB7</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">393</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB8</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB8</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">414</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB9</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB9</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">435</VFP_свойство>
            <VFP_свойство имя="Top">260</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18VB10</VFP_свойство>
            <VFP_свойство имя="Name">Txt18VB10</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">295</VFP_свойство>
            <VFP_свойство имя="Caption">Приносящая доход деятельность:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">246</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R1</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R1</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">267</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R2</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R2</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">288</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R3</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R3</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">309</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R4</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R4</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">330</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R5</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R5</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">351</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R6</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R6</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">372</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R7</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R7</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">393</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R8</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R8</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">414</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R9</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R9</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">435</VFP_свойство>
            <VFP_свойство имя="Top">290</VFP_свойство>
            <VFP_свойство имя="Width">16</VFP_свойство>
            <VFP_свойство имя="InputMask">N</VFP_свойство>
            <VFP_свойство имя="ControlSource">cTxt18R10</VFP_свойство>
            <VFP_свойство имя="Name">Txt18R10</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">75</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">335</VFP_свойство>
            <VFP_свойство имя="Width">450</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Аналитика</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">330</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Уровень аналитики кодов поступлений (выбытий):</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">350</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TSpinner</VFP_класс>
            <VFP_свойство имя="ControlSource">nSPLevel</VFP_свойство>
            <VFP_свойство имя="Height">24</VFP_свойство>
            <VFP_свойство имя="Inputmask">9</VFP_свойство>
            <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
            <VFP_свойство имя="KeyboardLowValue">1</VFP_свойство>
            <VFP_свойство имя="Left">410</VFP_свойство>
            <VFP_свойство имя="Name">aLevel</VFP_свойство>
            <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
            <VFP_свойство имя="SpinnerLowValue">1.00</VFP_свойство>
            <VFP_свойство имя="Top">345</VFP_свойство>
            <VFP_свойство имя="Width">40</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Caption">Уровень аналитики для учреждений:</VFP_свойство>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">380</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TSpinner</VFP_класс>
            <VFP_свойство имя="ControlSource">nOrgLevel</VFP_свойство>
            <VFP_свойство имя="Height">24</VFP_свойство>
            <VFP_свойство имя="Inputmask">9</VFP_свойство>
            <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
            <VFP_свойство имя="KeyboardLowValue">0</VFP_свойство>
            <VFP_свойство имя="Left">410</VFP_свойство>
            <VFP_свойство имя="Name">cOrgLevel</VFP_свойство>
            <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
            <VFP_свойство имя="SpinnerLowValue">0.00</VFP_свойство>
            <VFP_свойство имя="Top">375</VFP_свойство>
            <VFP_свойство имя="Width">40</VFP_свойство>
          </элемент>
        </элемент>
        <элемент>
          <VFP_имя>Page2</VFP_имя>
          <VFP_свойство имя="Caption">Детализация</VFP_свойство>
          <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
          <VFP_свойство имя="FontSize">8</VFP_свойство>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">75</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">10</VFP_свойство>
            <VFP_свойство имя="Width">440</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>            
            <VFP_свойство имя="Top">5</VFP_свойство>
            <VFP_свойство имя="Caption">Операции межотчетного периода</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">25</VFP_свойство>
            <VFP_свойство имя="Caption">Особая отметка:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">285</VFP_свойство>
            <VFP_свойство имя="Top">20</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Height">23</VFP_свойство>
            <VFP_свойство имя="Name">CmbMark</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_Mark</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">55</VFP_свойство>
            <VFP_свойство имя="Caption">Каталог хозяйственных операций:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>tdictree</VFP_класс>
            <VFP_свойство имя="Left">285</VFP_свойство>
            <VFP_свойство имя="Top">50</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Name">CmbCatEO</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">45</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">95</VFP_свойство>
            <VFP_свойство имя="Width">440</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">90</VFP_свойство>
            <VFP_свойство имя="Caption">Операции по исправлению ошибок прошлых лет</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">110</VFP_свойство>
            <VFP_свойство имя="Caption">Журнал операций:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>ordera</VFP_класс>
            <VFP_свойство имя="Left">285</VFP_свойство>
            <VFP_свойство имя="Top">105</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Height">23</VFP_свойство>
            <VFP_свойство имя="Name">JournalOp</VFP_свойство>
            <VFP_свойство имя="ControlSource">cJournalOp</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">45</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">150</VFP_свойство>
            <VFP_свойство имя="Width">440</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">145</VFP_свойство>
            <VFP_свойство имя="Caption">Не отражать в отчете</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">165</VFP_свойство>
            <VFP_свойство имя="Caption">Особая отметка:</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>mark</VFP_класс>
            <VFP_свойство имя="Left">285</VFP_свойство>
            <VFP_свойство имя="Top">160</VFP_свойство>
            <VFP_свойство имя="Width">155</VFP_свойство>
            <VFP_свойство имя="Height">23</VFP_свойство>
            <VFP_свойство имя="Name">CmbMarkNOO</VFP_свойство>
            <VFP_свойство имя="ControlSource">cRN_MarkNOO</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>T3dShape</VFP_класс>
            <VFP_свойство имя="Height">65</VFP_свойство>
            <VFP_свойство имя="Left">10</VFP_свойство>
            <VFP_свойство имя="Top">205</VFP_свойство>
            <VFP_свойство имя="Width">440</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TLabel</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>            
            <VFP_свойство имя="Top">200</VFP_свойство>
            <VFP_свойство имя="Caption">Формировать расшифровку показателей отчета с кодами аналитики</VFP_свойство>
          </элемент>
          <элемент>
            <VFP_класс>TTextBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">215</VFP_свойство>
            <VFP_свойство имя="Width">420</VFP_свойство>
            <VFP_свойство имя="MaxLength">240</VFP_свойство>
            <VFP_свойство имя="ControlSource">cDetailAnalit</VFP_свойство>
            <VFP_свойство имя="Name">fldDetailAnalit</VFP_свойство>
            <VFP_метод имя="ValueChanged"><![CDATA[LParam oThis, oThisForm
oThis.Parent.Chk_OnlyKBKK.Enabled = !Empty(oThis.Value)
]]></VFP_метод>
          </элемент>
          <элемент>
            <VFP_класс>TCheckBox</VFP_класс>
            <VFP_свойство имя="Left">20</VFP_свойство>
            <VFP_свойство имя="Top">245</VFP_свойство>
            <VFP_свойство имя="ControlSource">nOnlyKBKK</VFP_свойство>
            <VFP_свойство имя="Name">Chk_OnlyKBKK</VFP_свойство>
            <VFP_свойство имя="Caption">Заполнять в расшифровке показателей только аналитику по КБК и КОСГУ</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">422</VFP_свойство>
            <VFP_свойство имя="Width">470</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">190</VFP_свойство>
                <VFP_свойство имя="Left">10</VFP_свойство>
                <VFP_свойство имя="Top">10</VFP_свойство>
                <VFP_свойство имя="Width">450</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">5</VFP_свойство>
                <VFP_свойство имя="Caption">Параметры</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Каталог:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">25</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TDirSelect</VFP_класс>
                <VFP_свойство имя="Name">Catalog</VFP_свойство>
                <VFP_свойство имя="Left">80</VFP_свойство>
                <VFP_свойство имя="Top">20</VFP_свойство>
                <VFP_свойство имя="Width">370</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">ИСТ:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">55</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TTextBox</VFP_класс>
                <VFP_свойство имя="Left">390</VFP_свойство>
                <VFP_свойство имя="Top">50</VFP_свойство>
                <VFP_свойство имя="Width">60</VFP_свойство>
                <VFP_свойство имя="MaxLength">3</VFP_свойство>
                <VFP_свойство имя="ControlSource">cIST</VFP_свойство>
                <VFP_свойство имя="Name">IST</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Исполнитель:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">85</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TDicHist</VFP_класс>
                <VFP_свойство имя="Name">dicIsp</VFP_свойство>
                <VFP_свойство имя="Left">200</VFP_свойство>
                <VFP_свойство имя="Top">80</VFP_свойство>
                <VFP_свойство имя="Width">250</VFP_свойство>
                <VFP_свойство имя="AreaName" тип="C">OrgBase</VFP_свойство>
                <VFP_свойство имя="DictName" тип="C">Agnt_bms</VFP_свойство>
                <VFP_свойство имя="RetField" тип="C">rmnemo_org</VFP_свойство>
                <VFP_свойство имя="HistoryName" тип="C">H_AgentsFIO721_183N_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">200</VFP_свойство>
                <VFP_свойство имя="Top">110</VFP_свойство>
                <VFP_свойство имя="Width">250</VFP_свойство>
                <VFP_свойство имя="ControlSource">cIspName</VFP_свойство>
                <VFP_свойство имя="Name">fldIspName</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Телефон:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">145</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TTextBox</VFP_класс>
                <VFP_свойство имя="Left">200</VFP_свойство>
                <VFP_свойство имя="Top">140</VFP_свойство>
                <VFP_свойство имя="Width">250</VFP_свойство>
                <VFP_свойство имя="ControlSource">cIspTel</VFP_свойство>
                <VFP_свойство имя="Name">fldIspTel</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TCheckBox</VFP_класс>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">175</VFP_свойство>
                <VFP_свойство имя="ControlSource">nEmptyRows</VFP_свойство>
                <VFP_свойство имя="Name">chkEmptyRows</VFP_свойство>
                <VFP_свойство имя="Caption">Выгружать строки с нулевыми значениями</VFP_свойство>
              </элемент>
            </элемент>
            <элемент>
              <VFP_имя>Page2</VFP_имя>
              <VFP_свойство имя="Caption">Выгрузка в ГНИ 4</VFP_свойство>
              <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
              <VFP_свойство имя="FontSize">8</VFP_свойство>
              <VFP_свойство имя="Enabled">.F.</VFP_свойство>
              <элемент>
                <VFP_класс>T3dShape</VFP_класс>
                <VFP_свойство имя="Height">180</VFP_свойство>
                <VFP_свойство имя="Left">10</VFP_свойство>
                <VFP_свойство имя="Top">10</VFP_свойство>
                <VFP_свойство имя="Width">450</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">5</VFP_свойство>
                <VFP_свойство имя="Caption">Параметры</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Каталог:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">25</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TDirSelect</VFP_класс>
                <VFP_свойство имя="Name">Catalog4</VFP_свойство>
                <VFP_свойство имя="Left">80</VFP_свойство>
                <VFP_свойство имя="Top">20</VFP_свойство>
                <VFP_свойство имя="Width">370</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TLabel</VFP_класс>
                <VFP_свойство имя="Caption">Идентификатор получателя информации:</VFP_свойство>
                <VFP_свойство имя="Left">20</VFP_свойство>
                <VFP_свойство имя="Top">55</VFP_свойство>
              </элемент>
              <элемент>
                <VFP_класс>TTextBox</VFP_класс>
                <VFP_свойство имя="Left">390</VFP_свойство>
                <VFP_свойство имя="Top">50</VFP_свойство>
                <VFP_свойство имя="Width">60</VFP_свойство>
                <VFP_свойство имя="MaxLength">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">390</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">200</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_Agents4FIO721_183N_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">430</VFP_свойство>
                <VFP_свойство имя="MaxLength">120</VFP_свойство>
                <VFP_свойство имя="ControlSource">cAgentDoc</VFP_свойство>
                <VFP_свойство имя="Name">AgentDoc</VFP_свойство>
              </элемент>
            </элемент>
          </элемент>
        </элемент>
      </элемент>
    </описание>
  </форма>
</Модуль>
