<?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">
  <интерфейс>
    <отчет>
      <наименование>Форма 0503768-33н_ред183н_2023</наименование>
      <код_раздела>Reports5n</код_раздела>
      <номер_код>f0503768_183n_2023</номер_код>
      <шаблон>
        <тип>MSE</тип>
        <мнемокод>ar_form0503768_183n_2023</мнемокод>
        <файл>Форма0503768_33н_ред183н_2023.xlt</файл>
      </шаблон>
    </отчет>
  </интерфейс>
  <отчет>
    <реализует>f0503768_183n_2023</реализует>
      <дополнительно>
      <запомнить_переменные>
        <список_переменных>dBalOpen;nSelYear;dReoDate;cOrg;nAccType;cVFO;cBalUnits;cRN_Mark;cCatEO;cJournalOp;cRN_Mark1;nSPLevel;nAnLevel;cExclCode;cUnlPath;cIST;cDicIsp;cIspName;cIspTel;nEmptyRows</список_переменных>
        <мемофайл>ar_form0503768_33n_183n_2023;ar_form0503768_33n_78n_2022;ar_form0503768_33n_170n_2021;ar_form0503768_33n_292n_2020;ar_form0503768_33n_73n_2019</мемофайл>
      </запомнить_переменные>
      </дополнительно>
    <переменные>
      <переменная>
        <имя>dBalOpen</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата расчета показателей вступительного баланса-->
      </переменная>
      <переменная>
        <имя>nSelYear</имя>
        <начальное_значение>Year(oSystem.Date)</начальное_значение>
        <!--Отчетный год-->
      </переменная>
      <переменная>
        <имя>dReoDate</имя>
        <начальное_значение>{}</начальное_значение>
        <!--Дата реорганизации-->
      </переменная>
      <переменная>
        <имя>cOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Учреждение-->
      </переменная>
      <переменная>
        <имя>cWhereOrg</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по учреждениям-->
      </переменная>
      <переменная>
        <имя>glBK</имя>
        <начальное_значение>""</начальное_значение>
        <!--Глава по БК-->
      </переменная>
      <переменная>
        <имя>nAccType</имя>
        <начальное_значение>1</начальное_значение>
        <!--Размерность плана счетов-->
      </переменная>
      <переменная>
        <имя>cVFO</имя>
        <начальное_значение>"4"</начальное_значение>
        <!--вид деятельности-->
      </переменная>
      <переменная>
        <имя>arrVFO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Массив видов деятельности-->
      </переменная>
      <переменная>
        <имя>cBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Балансовые единицы-->
      </переменная>
      <переменная>
        <имя>cWhereBalUnits</имя>
        <начальное_значение>""</начальное_значение>
        <!--Условие по балансовым единицам-->
      </переменная>
      <переменная>
        <имя>cRN_Mark</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка-->
      </переменная>
      <переменная>
        <имя>cCatEO</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог ХО-->
      </переменная>
      <переменная>
        <имя>cJournalOp</имя>
        <начальное_значение>""</начальное_значение>
        <!--Журнал операций-->
      </переменная>            
      <переменная>
        <имя>cRN_Mark1</имя>
        <начальное_значение>""</начальное_значение>
        <!--Особая отметка (хищения/недостачи)-->
      </переменная>
      <переменная>
        <имя>nSPLevel</имя>
        <начальное_значение>5</начальное_значение>
        <!--Уровень аналитики кодов поступлений/выбытий-->
      </переменная>
      <переменная>
        <имя>nAnLevel</имя>
        <начальное_значение>0</начальное_значение>
        <!--Уровень аналитики для забалансовых счетов-->
      </переменная>
      <переменная>
        <имя>cExclCode</имя>
        <начальное_значение>"18-22"</начальное_значение>
        <!--Разряды номера счета для определения внутреннего перемещения-->
      </переменная>
      <переменная>
        <имя>dDateBegin</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата с-->
      </переменная>
      <переменная>
        <имя>dDateEnd</имя>
        <начальное_значение>""</начальное_значение>
        <!--Дата По-->
      </переменная>
      <переменная>
        <имя>cUnlPath</имя>
        <начальное_значение>""</начальное_значение>
        <!--Каталог выгрузки-->
      </переменная>
      <переменная>
        <имя>cFileName</имя>
        <начальное_значение>""</начальное_значение>
        <!--Файл выгрузки-->
      </переменная>
      <переменная>
        <имя>cFormCode</имя>
        <начальное_значение>""</начальное_значение>
        <!--Код формы-->
      </переменная>
      <переменная>
        <имя>cIST</имя>
        <начальное_значение>""</начальное_значение>
        <!--ИСТ-->
      </переменная>
      <переменная>
        <имя>cDicIsp</имя>
        <начальное_значение>""</начальное_значение>
        <!--Исполнитель-->
      </переменная>
      <переменная>
        <имя>cIspName</имя>
        <начальное_значение>""</начальное_значение>
        <!--ФИО исполнителя-->
      </переменная>
      <переменная>
        <имя>cIspTel</имя>
        <начальное_значение>""</начальное_значение>
        <!--Телефон исполнителя-->
      </переменная>
      <переменная>
        <имя>nEmptyRows</имя>
        <начальное_значение>0</начальное_значение>
        <!--Выгружать строки с нулевыми значениями-->
      </переменная>
      <переменная>
        <имя>RepG151</имя>
        <начальное_значение>CreateObject("form0503buxrepd")</начальное_значение>
      </переменная>
      <переменная>
        <имя>dReportDate</имя>
        <начальное_значение>Date(2023,06,30)</начальное_значение>
      </переменная>
      <переменная>
        <имя>lNoError</имя>
        <начальное_значение>.T.</начальное_значение>
      </переменная>            
    </переменные>
    <запуск_формы>
      <ид>f_0503768_33n_183n_2023</ид>
    </запуск_формы>
    <вычисление>
      <сообщение>Ждите, идет выборка данных ...</сообщение>
      <FPC_><![CDATA[*[VFP]
dDateBegin = Iif(Empty(m.dBalOpen), DOX(DATE(m.nSelYear, 1, 1),3), m.dBalOpen)
dDateEnd   = Iif(Empty(m.dReoDate), DOX(DATE(m.nSelYear, 12, 31),4)+1, m.dReoDate)
                    ]]></FPC_>
    </вычисление>
    <печать>
      <!--Печать отчета--><MSE>
        <!--Печать в MS Excel-->
        <FPC_><![CDATA[*[VFP]
*ON ERROR
Private ALL Like nCol*
Local cAcc30404, cAcc40110, cAcc4014, cAcc40120

Dimension nCol4Row[999], nCol5Row[999], nCol6Row[999], nCol7Row[999], nCol8Row[999], nCol9Row[999], nCol10Row[999], nCol11Row[999]
Store 0 To nCol4Row, nCol5Row, nCol6Row, nCol7Row, nCol8Row, nCol9Row, nCol10Row, nCol11Row

* Особые отметки и корр. счета
Private cSPLevel, dFinish, cOMP, cOIspr, cSubPos, cSubPos1
cAcc30404 = Iif(m.nAccType = 1, Replicate("?", 17), "") + "?30404" + "*"
cAcc40110 = Iif(m.nAccType = 1, Replicate("?", 17), "") + "?40110" + "*"
cAcc4014  = Iif(m.nAccType = 1, Replicate("?", 17), "") + "?4014"  + "*"
cAcc40120 = Iif(m.nAccType = 1, Replicate("?", 17), "") + "?40120" + "*"
cSPLevel  = Str(m.nSPLevel, 1)

Select RN From AccBase Where Like(?m.cAcc30404, Account) Into CURSOR crs30404

Select RN From AccBase Where Like(?m.cAcc40110, Account) Into CURSOR crs40110_
Select RN From AccBase Where Like(?m.cAcc4014,  Account) Into CURSOR crs4014_

Select S.RN ;
  From crs40110_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where (Like("191*", S.SAccount) Or Like("192*", S.SAccount) Or Like("193*", S.SAccount) Or Like("194*", S.SAccount) Or Like("195*", S.SAccount) Or Like("196*", S.SAccount) Or Like("197*", S.SAccount) Or Like("198*", S.SAccount)) ;
    And S.Level = ?m.nSPLevel ;
UNION ALL ;
Select S.RN ;
  From crs4014_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where (Like("182*", S.SAccount) Or Like("185*", S.SAccount) Or Like("186*", S.SAccount) Or Like("187*", S.SAccount)) ;
    And S.Level = ?m.nSPLevel ;
  Into CURSOR crs401_6

Select S.RN ;
  From crs40110_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where Like("199*", S.SAccount) And S.Level = ?m.nSPLevel ;
  Into CURSOR crs40110_7

Select S.RN ;
  From crs40110_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where Like("19*", S.SAccount) And S.Level = ?m.nSPLevel ;
  Into CURSOR crs40110_9

Select RN From crs40110_9 ;
UNION ALL ;
Select S.RN ;
  From crs40110_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where Like("15*", S.SAccount) And S.Level = ?m.nSPLevel ;
  Into CURSOR crs40110_9o

Select RN From AccBase Where Like(?m.cAcc40120, Account) Into CURSOR crs40120_

Select S.RN ;
  From crs40120_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where (Like("24*", S.SAccount) Or Like("25*", S.SAccount) Or Like("28*", S.SAccount)) And S.Level = ?m.nSPLevel ;
  Into CURSOR crs40120

Select S.RN ;
  From crs40120_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where Like("274*", S.SAccount) And S.Level = ?m.nSPLevel ;
  Into CURSOR crs40120_5

Select S.RN ;
  From crs40110_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where Like("172*", S.SAccount) And S.Level = ?m.nSPLevel ;
UNION ALL ;
Select S.RN ;
  From crs40120_ A ;
    Inner Join AccSpec S On A.RN = S.Master_RN ;
  Where Like("273*", S.SAccount) And S.Level = ?m.nSPLevel ;
  Into CURSOR crs401_10

CurClose("crs40110_,crs4014_,crs40120_")

Store ".F." To cOMP, cOIspr
cSubPos  = Iif(m.nAccType = 1, "19", "2")
cSubPos1 = Iif(m.nAccType = 1, "18", "1")
dFinish  = m.dDateEnd - 1

* Операции межотчетного периода
Do Case
  Case !Empty(m.cRN_Mark) And !Empty(m.cCatEO)
    cOMP = "(B.RN_MARK = '" + m.cRN_Mark + "' Or B.PARENT_RN = '" + m.cCatEO + "')"
  Case !Empty(m.cRN_Mark)
    cOMP = "B.RN_MARK = '" + m.cRN_Mark + "'"
  Case !Empty(m.cCatEO)
    cOMP = "B.PARENT_RN = '" + m.cCatEO + "'"
EndCase

* Операции по исправлению ошибок прошлых лет (периодов)
If !Empty(m.cJournalOp)
  cOIspr = "S.RN_MO = ?m.cJournalOp Or ?A.RN_MO = ?m.cJournalOp Or Nvl(C.RN_MO, Space(4)) = ?m.cJournalOp"
EndIf

* 1. Нефинансовые активы
&& 011 - 018
=SelAccFromBase("011", "101?1")
=SelAccFromBase("012", "101?2")
=SelAccFromBase("013", "101?3")
=SelAccFromBase("014", "101?4")
=SelAccFromBase("015", "101?5")
=SelAccFromBase("016", "101?6")
=SelAccFromBase("017", "101?7")
=SelAccFromBase("018", "101?8")

&& 051 - 058
=SelAccFromBase("051", "104?1!10441",, 1)
=SelAccFromBase("052", "104?2!10442",, 1)
=SelAccFromBase("053", "104?3",, 1)
=SelAccFromBase("054", "104?4!10444",, 1)
=SelAccFromBase("055", "104?5!10445",, 1)
=SelAccFromBase("056", "104?6!10446",, 1)
=SelAccFromBase("057", "104?7!10447",, 1)
=SelAccFromBase("058", "104?8!10448",, 1)

&& 061 - 068
=SelAccFromBase("061", "114?1!11471,11441",, 2)
=SelAccFromBase("062", "114?2!11472,11442",, 2)
=SelAccFromBase("063", "114?3!11473",, 2)
=SelAccFromBase("064", "114?4!11444",, 2)
=SelAccFromBase("065", "114?5!11445",, 2)
=SelAccFromBase("066", "114?6!11446",, 2)
=SelAccFromBase("067", "114?7!11447,11487",, 2)
=SelAccFromBase("068", "114?8!11448,11488",, 2)

&& 071 - 076
=SelAccFromBase("071", "10611")
=SelAccFromBase("072", "10621")
=SelAccFromBase("073", "10631")
=SelAccFromBase("074", "10641")
=SelAccFromBase("075", "10691")
=SelAccFromBase("076", "10692")

&& 081 - 083 
=SelAccFromBase("081", "10711")
=SelAccFromBase("082", "10721")
=SelAccFromBase("083", "10731")

&& 111 - 114
=SelAccFromBase("111", "102?N")
=SelAccFromBase("112", "102?R")
=SelAccFromBase("113", "102?I")
=SelAccFromBase("114", "102?D")

&& 121 - 124
=SelAccFromBase("121", "1042N,1043N",, 1)
=SelAccFromBase("122", "1042R,1043R",, 1)
=SelAccFromBase("123", "1042I,1043I,1049I",, 1)
=SelAccFromBase("124", "1042D,1043D",, 1)

&& 130
=SelAccFromBase("130", "1142N,1142R,1142I,1142D,1143N,1143R,1143I,1143D",, 2)

&& 140, 145
=SelAccFromBase("140", "1062N,1062R,1062I,1062D,1063N,1063R,1063I,1063D,1069I")
=SelAccFromBase("145", "1069I")

&& 151 - 153
=SelAccFromBase("151", "103?1")
=SelAccFromBase("152", "103?2")
=SelAccFromBase("153", "103?3")

&& 161 - 163
=SelAccFromBase("161", "11471",, 2)
=SelAccFromBase("162", "11472",, 2)
=SelAccFromBase("163", "11473",, 2)

&& 170, 172
=SelAccFromBase("170", "106?3,10695")
=SelAccFromBase("172", "10695")

&& 190
=SelAccFromBase("190", "105")

&& 230
=SelAccFromBase("230", "106?4")

&& 250
=SelAccFromBase("250", "107?3")

&& 255
=SelAccFromBase("255", "1148")

&& 261 - 268
=SelAccFromBase("261", "11141")
=SelAccFromBase("262", "11142")
=SelAccFromBase("263", "11144")
=SelAccFromBase("264", "11145")
=SelAccFromBase("265", "11146")
=SelAccFromBase("266", "11147")
=SelAccFromBase("267", "11148")
=SelAccFromBase("268", "11149")

&& 271 - 278
=SelAccFromBase("271", "10441",, 1)
=SelAccFromBase("272", "10442",, 1)
=SelAccFromBase("273", "10444",, 1)
=SelAccFromBase("274", "10445",, 1)
=SelAccFromBase("275", "10446",, 1)
=SelAccFromBase("276", "10447",, 1)
=SelAccFromBase("277", "10448",, 1)
=SelAccFromBase("278", "10449",, 1)

&& 280
=SelAccFromBase("280", "1144")

&& 291 - 294
=SelAccFromBase("291", "1116N")
=SelAccFromBase("292", "1116R")
=SelAccFromBase("293", "1116I")
=SelAccFromBase("294", "1116D")

&& 301 - 304
=SelAccFromBase("301", "1046N",, 1)
=SelAccFromBase("302", "1046R",, 1)
=SelAccFromBase("303", "1046I",, 1)
=SelAccFromBase("304", "1046D",, 1)

&& 310
=SelAccFromBase("310", "1146",, 2)

&& 320
=SelAccFromBase("320", "1066")

&& 331 - 339
=SelAccFromBase("331", "113?1")
=SelAccFromBase("332", "113?2")
=SelAccFromBase("333", "113?3")
=SelAccFromBase("334", "113?4")
=SelAccFromBase("335", "113?5")
=SelAccFromBase("336", "113?6")
=SelAccFromBase("337", "113?7")
=SelAccFromBase("338", "113?8")
=SelAccFromBase("339", "113?9")

&& 340
=SelAccFromBase("340", "1149",, 2)

&& 350
=SelAccFromBase("350", "106?7")

&& 360
=SelAccFromBase("360", "107?4")

* 2. Недвижимое и особо ценное имущество учреждения
&& 601
=SelAccFromBase("311", "1011")
&& 602
=SelAccFromBase("312", "1012")
&& 611
=SelAccFromBase("321", "1041",,1)
&& 612
=SelAccFromBase("322", "1042!1042N,1042R,1042I,1042D",,1)
&& 621
=SelAccFromBase("326", "1141",,2)
&& 622
=SelAccFromBase("327", "1142!1142N,1142R,1142I,1142D",,2)
&& 672
=SelAccFromBase("352", "1022")
&& 682
=SelAccFromBase("362", "1042N,1042R,1042I,1042D",,1)
&& 692
=SelAccFromBase("366", "1142N,1142R,1142I,1142D",,2)
&& 702
=SelAccFromBase("372", "1062N,1062R,1062I,1062D")
&& 711
=SelAccFromBase("381", "1031")
&& 731
=SelAccFromBase("391", "10613")
&& 742
=SelAccFromBase("412", "1052")
&& 752
=SelAccFromBase("422", "10624")
&& 762
=SelAccFromBase("432", "10723")
&& 771
=SelAccFromBase("771", "1132")
&& 791
=SelAccFromBase("791", "10724")

CurClose("crsAccount;crsAnOrg;crsDb;crsKr")
CurClose("crs30404;crs401_6;crs40110_7;crs40110_9;crs40110_9o;crs40120;crs40120_5;crs401_10")

* 3. Справка по забалансовым счетам
&& 800
=SelAccFromBase("450", "01", ,, .T.)
=SelAccFromBase("451", "01", "011,012,451,453,801,802",, .T.)
=SelAccFromBase("453", "01", "012,453,802s",, .T.)
=SelAccFromBase("454", "01", "015,016,454,455,803,804",, .T.)
=SelAccFromBase("455", "01", "016,455,804",, .T.)

&& 810
=SelAccFromBase("460", "02", ,, .T.)
=SelAccFromBase("464", "02", "464,811",, .T.)
=SelAccFromBase("465", "02", "465,812",, .T.)

&& 820
=SelAccFromBase("470", "03", ,, .T.)

&& 830
=SelAccFromBase("480", "05", ,, .T.)
=SelAccFromBase("481", "05", "051,052,481,482,831,832",, .T.)
=SelAccFromBase("482", "05", "052,482,832",, .T.)
=SelAccFromBase("483", "05", "054,055,483,484,833,834",, .T.)
=SelAccFromBase("484", "05", "055,484,834",, .T.)

&& 840
=SelAccFromBase("490", "07", ,, .T.)

&& 850
=SelAccFromBase("510", "21", ,, .T.)
=SelAccFromBase("511", "21", "211,511,851",, .T.)
=SelAccFromBase("512", "21", "212,512,852",, .T.)

&& 860
=SelAccFromBase("520", "22", ,, .T.)
=SelAccFromBase("521", "22", "221,222,521,522,861,862",, .T.)
=SelAccFromBase("522", "22", "222,522,862",, .T.)
=SelAccFromBase("523", "22", "224,225,523,524,863,864",, .T.)
=SelAccFromBase("524", "22", "225,524,864",, .T.)

&& 880
=SelAccFromBase("540", "24", ,, .T.)
=SelAccFromBase("541", "24", "241,242,243,541,542,543,881,882,883",, .T.)
=SelAccFromBase("542", "24", "242,542,882",, .T.)
=SelAccFromBase("543", "24", "243,543,883",, .T.)
=SelAccFromBase("544", "24", "244,245,544,545,884,885",, .T.)
=SelAccFromBase("545", "24", "245,545,885",, .T.)
=SelAccFromBase("546", "24", "246,247,546,547,886,887",, .T.)
=SelAccFromBase("547", "24", "247,547,887",, .T.)
=SelAccFromBase("548", "24", "248,548,888",, .T.)
=SelAccFromBase("549", "24", "249,549,889",, .T.)

&& 890
=SelAccFromBase("550", "25", ,, .T.)
=SelAccFromBase("551", "25", "251,252,253,551,552,553,891,892,893",, .T.)
=SelAccFromBase("552", "25", "252,552,892",, .T.)
=SelAccFromBase("553", "25", "253,553,893",, .T.)
=SelAccFromBase("554", "25", "254,255,554,555,894,895",, .T.)
=SelAccFromBase("555", "25", "255,555,895",, .T.)
=SelAccFromBase("556", "25", "256,257,556,557,896,897",, .T.)
=SelAccFromBase("557", "25", "257,557,897",, .T.)
=SelAccFromBase("558", "25", "258,558,898",, .T.)

&& 900
=SelAccFromBase("560", "26", ,, .T.)

&& 902
=SelAccFromBase("580", "26", "261,262,263,58,902,903,904",, .T.)
=SelAccFromBase("581", "26", "262,581,903",, .T.)
=SelAccFromBase("582", "26", "263,582,904",, .T.)

&& 905
=SelAccFromBase("590", "26", "264,265,59,905,906",, .T.)
=SelAccFromBase("591", "26", "265,591,906",, .T.)

&& 907
=SelAccFromBase("600", "26", "266,267,60,907,908",, .T.)
=SelAccFromBase("601", "26", "267,601,908",, .T.)

&& 909
=SelAccFromBase("610", "26", "268,610,909",, .T.)

&& 911
=SelAccFromBase("630", "26", "63,911,912,913",, .T.)
=SelAccFromBase("631", "26", "631,912",, .T.)
=SelAccFromBase("632", "26", "632,913",, .T.)

&& 914
=SelAccFromBase("640", "26", "64,914,915",, .T.)
=SelAccFromBase("641", "26", "641,915",, .T.)

&& 916
=SelAccFromBase("650", "26", "65,916,917",, .T.)
=SelAccFromBase("651", "26", "651,917",, .T.)

&& 918
=SelAccFromBase("660", "26", "660,918",, .T.)

* Глава по БК
Local Array arBP(1)
If !Empty(m.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

* Имя файла для выгрузки
If !Empty(m.cUnlPath)
  Local Array aFiles(1)
  Local nNum, cNum, nN, i
  cUnlPath  = AllTrim(m.cUnlPath)
  cFormCode = "368" + Iif(Empty(m.cVFO), "", RTrim(arrVFO(AScan(arrVFO, m.cVFO) + 1)))
  cFileName = m.cFormCode + Iif(Empty(m.dReoDate), "Y", "R")
  nNum = 0
  If ADir(aFiles, m.cUnlPath + m.cFileName + "??.txt") # 0
    For m.i = 1 To ALen(aFiles) / 5
      nN = At(".", aFiles(m.i, 1))
      cNum = SubStr(aFiles(m.i, 1), m.nN - 2, 2)
      If m.nNum < Val(m.cNum)
        nNum = Val(m.cNum)
      EndIf 
      If m.nNum = 99
        nNum = 0
      EndIf
    Next
  EndIf
  cFileName = m.cUnlPath + m.cFileName + PadL(Int(m.nNum) + 1, 2, "0") + ".txt"
EndIf

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

oPrint.PrintRange("Header")
oPrint.PrintRange("Footer")

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

oPrint = NULL

Return

*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*     Удаление листа из отчета     *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure DeleteSheets
Parameters oPrint, cSheetName

Local nSheet
nSheet = oPrint.GetSheetNum(m.cSheetName)

If m.nSheet > 0 
  oPrint.Book.Sheet = m.nSheet
  oPrint.Book.EditDeleteSheets()
EndIf  

EndProc

*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
*            Подсчёт сумм по строке отчета          *
*ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ
Procedure SelAccFromBase
LParameters cNLine, cAcc, cAnl, lIsExcl, lZabal
* cNLine  - код строки
* cAcc    - код счета бюджетного учета
* cAnl    - код аналитики
* lIsExcl - признак амортизации
* lZabal  - вызов из Справки (забалансовые счета)

lIsExcl = Iif(Type("m.lIsExcl")= "N", m.lIsExcl, 0)

Local ARRAY aSum[1]
Local cPerem, cUslAcc, i, s, cInitPos, lOrgPO, cWhereAnPU, cJoinAnRst, cJoinAnalit, cJoinAnalitDb, cJoinAnalitKr, cJoinAnPU, cJoinAnDB, cJoinAnKR, ;
      dStart, cAlias, cWhereExcl, cWhereMark, cAnalit, n1, n2, nPos, cSubs1, cSubs2, cSubsS, lZpt, lNot, dFinishTmp, cS, cOrgAnDB, cOrgAnKR, cKBKAnDB, cKBKAnKR
Store "" To cWhereAnPU, cJoinAnRst, cJoinAnalit, cJoinAnalitDb, cJoinAnalitKr, cJoinAnPU, cJoinAnDB, cJoinAnKR, cWhereMark, cAnalit, cOrgAnDB, cOrgAnKR, cKBKAnDB, cKBKAnKR
lOrgPO = !Empty(m.cWhereOrg)

* развязки для короткого и длинного плана счетов и условия отбора
If m.lZabal
  cUslAcc = "!AccBase.L_Balance"
  If !Empty(m.cVFO)
    cUslAcc = m.cUslAcc + ;
                " And (AT('з', AccBase.Account) > 1 And SubStr(AccBase.Account, AT('з', AccBase.Account) - 1, 1) = '" + m.cVFO + "'" + ;
                " Or AT('з', AccBase.Account) = 0 And Left(AccBase.Account, 1) = '" + m.cVFO +"')"
  EndIf
  cUslAcc = m.cUslAcc + ;
              " And (AT('з', AccBase.Account) # 0 And SubStr(AccBase.Account, AT('з', AccBase.Account) + 1, 2) = '" + m.cAcc + "'" + ;
              " Or AT('з', AccBase.Account) = 0 And SubStr(AccBase.Account, 2, 2) = '" + m.cAcc + "')"
Else
  nPos    = AT("!", m.cAcc)
  cSubs1  = Iif(m.nPos = 0, m.cAcc, Left(m.cAcc, m.nPos - 1))
  cSubs2  = Iif(m.nPos = 0, "", SubStr(m.cAcc, m.nPos + 1))
  cUslAcc = ""

  Do While "," $ m.cSubs1
    nPos    = AT(",", m.cSubs1)
    cSubsS  = Left(m.cSubs1, m.nPos - 1)
    cSubs1  = SubStr(m.cSubs1, m.nPos + 1)
    cUslAcc = m.cUslAcc + "Like('"  + m.cSubsS +  "', SubStr(AccBase.Account, " + m.cSubPos + ", " + LTrim(Str(Len(m.cSubsS))) + ")) OR "
    lZpt    = .T.
  EndDo
  cUslAcc = m.cUslAcc + "Like('"  + m.cSubs1 +  "', SubStr(AccBase.Account, " + m.cSubPos + ", " + LTrim(Str(Len(m.cSubs1))) + "))"
  If m.lZpt
    cUslAcc = "(" + m.cUslAcc + ")"
  EndIf

  If !Empty(m.cSubs2)
    Do While "," $ m.cSubs2
      nPos    = AT(",", m.cSubs2)
      cSubsS  = Left(m.cSubs2, m.nPos - 1)
      cSubs2  = SubStr(m.cSubs2, m.nPos + 1)
      cUslAcc = m.cUslAcc + " And !Like('"  + m.cSubsS +  "', SubStr(AccBase.Account, " + m.cSubPos + ", " + LTrim(Str(Len(m.cSubsS))) + "))"
    EndDo
    cUslAcc = m.cUslAcc + " And !Like('"  + m.cSubs2 +  "', SubStr(AccBase.Account, " + m.cSubPos + ", " + LTrim(Str(Len(m.cSubs2))) + "))"
  EndIf

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

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

EndIf

RepG151.GetComRepPrm151("_0503768", @lNoError, .T., m.cUslAcc)

If !m.lNoError
  Return
EndIf

* Выборка счетов
Select AccBase.RN, AccBase.Account, AccBase.RN_MO, ;
       Iif(?m.lOrgPO, AT("1", AccBase.Org_An), 0) As Org_Level, ;
       Iif(AT("9", AccBase.SMETA_AN) # 0, AT("9", AccBase.Smeta_An), AT("3", AccBase.Org_An)) As KBK_Level ;
  From AccBase ;
    Left Join BalUnit On AccBase.Rn_BalUnit = BalUnit.RN ;
  Where &cUslAcc ;
  Into CURSOR crsAccount

If _Tally = 0
  Return
EndIf

* Аналитика для справки
If m.lZabal And !IsNull(m.cAnl) And !Empty(m.cAnl)
  lNot = Left(m.cAnl, 1) = "!"

  If m.nAnLevel = 0
    Return
  EndIf

  If m.lNot
    cAnl = SubStr(m.cAnl, 2)
  EndIf

  lZpt = .F.
  cUslAcc =  ""

  Do While "," $ m.cAnl
    nPos    = AT(",", m.cAnl)
    cSubsS  = Left(m.cAnl, m.nPos - 1)
    cAnl    = SubStr(m.cAnl, m.nPos + 1)
    cUslAcc = m.cUslAcc + "Left(AllTrim(S.SAccount), " + LTrim(Str(Len(m.cSubsS))) + ") = '" + m.cSubsS + "' OR "
    lZpt    = .T.
  EndDo
  cUslAcc = m.cUslAcc + "Left(AllTrim(S.SAccount), " + LTrim(Str(Len(m.cAnl))) + ") = '" + m.cAnl + "'"
  If m.lZpt
    cUslAcc = "(" + m.cUslAcc + ")"
  EndIf

  Select S.RN, S.Master_RN ;
    From crsAccount A ;
      Inner Join AccSpec S On A.RN = S.Master_RN ;
    Where S.Level = ?m.nAnLevel And &cUslAcc ;
    Into CURSOR crsAnalit

  If _Tally = 0
    Return
  EndIf

  Select * From crsAccount Where RN In (Select Master_RN From crsAnalit) Into CURSOR crsAccount

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

  cJoinAnRst    = "Inner Join AcAnRest S On R.RN = S.Master_RN"
  cJoinAnalit   = "Inner Join crsAnalit Anl On S.RN_AC_A" + Str(m.nAnLevel, 1) + " = Anl.RN"
  cJoinAnalitDb = StrTran(m.cJoinAnalit, "RN_AC_A", "RN_DB_A")
  cJoinAnalitKr = StrTran(m.cJoinAnalit, "RN_AC_A", "RN_KR_A")
  cAnalit       = "S.RN_DB_A" + Str(m.nAnLevel, 1) + " As RN_DB_ANL, S.RN_KR_A" + Str(m.nAnLevel, 1) + " As RN_KR_ANL,"
EndIf

* Аналитические счета для бюджетных учреждений
If m.lOrgPO
  Select S.RN, S.Master_RN ;
    From crsAccount A ;
      Inner Join AccSpec S On A.RN = S.Master_RN ;
      Inner Join OrgBase   On S.RN_TOrg = OrgBase.RN ;
    Where &cWhereOrg And S.Level = A.Org_Level ;
    Into CURSOR crsAnOrg

  If _Tally = 0
    Return
  EndIf

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

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

  cJoinAnRst = "Inner Join AcAnRest S On R.RN = S.Master_RN"
  For m.i = 1 To 5
    s = Str(m.i, 1)
    cJoinAnPU = m.cJoinAnPU + "Left Join crsAnOrg An" + m.s + " On S.RN_AC_A" + m.s + " = An" + m.s + ".RN "
    cOrgAnDB  = m.cOrgAnDB + "Iif(A.Org_Level = " + m.s + ", S.RN_DB_A" + m.s + ", "
  Next
  cJoinAnDB  = StrTran(m.cJoinAnPU, "RN_AC_A", "RN_DB_A")
  cJoinAnKR  = StrTran(m.cJoinAnPU, "RN_AC_A", "RN_KR_A")
  cOrgAnDB   = m.cOrgAnDB + "Space(4)))))) As RN_DB_ORG,"
  cOrgAnKR   = StrTran(m.cOrgAnDB, "DB", "KR")
  cWhereAnPU = " And (!IsNull(An1.RN) OR !IsNull(An2.RN) OR !IsNull(An3.RN) OR !IsNull(An4.RN) OR !IsNull(An5.RN))"
EndIf

* ШФ/КБК (для короткого плана счетов)
If m.nAccType = 2
  For m.i = 1 To 5
    s = Str(m.i, 1)
    cKBKAnDB = m.cKBKAnDB + "Iif(A.KBK_Level = " + m.s + ", S.RN_DB_A" + m.s + ", "
  Next
  cKBKAnDB = m.cKBKAnDB + "Space(4)))))) As RN_DB_KBK,"
  cKBKAnKR = StrTran(m.cKBKAnDB, "DB", "KR")
EndIf

Select crsAccount
Index On RN Tag RN

** Колонка 4 - наличие на начало года (периода)
** Колонка 11 (7) - наличие на конец года (периода)
For m.i = 1 To 2
  cPerem     = "nCol" +  Iif(m.i = 1, "4", Iif(m.lZabal, "7", "11")) + "Row[" + m.cNLine + "]"
  dStart     = DOX(Iif(m.i = 1, m.dDateBegin, m.dDateEnd), 3)
  dFinishTmp = Iif(m.i = 1, m.dDateBegin - 1, m.dFinish)  
  cAlias     = Iif(Empty(m.cJoinAnRst), "R", "S")

  Select Sum(&cAlias..SUMM_DB_EQUAL - &cAlias..SUMM_KR_EQUAL) As SUMM ;
    From crsAccount A ;
      Inner Join AcRest R On A.RN = R.RN_Account ;
      &cJoinAnRst ;
      &cJoinAnalit ;
      &cJoinAnPU ;
    Where R.DATE_REST = ?m.dStart &cWhereAnPU ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, aSum[1], -aSum[1])
  EndIf

  * если вдруг посреди месяца случилась реорганизация 
  If m.dFinishTmp >= m.dStart
    Select Sum(S.SUM_EQUAL) As SUMM ;
      From EopBase B ;
        Inner Join EopSpec    S On B.RN = S.Master_RN ;
        Inner Join crsAccount A On S.RN_DB = A.RN ;
        &cJoinAnalitDB ;
        &cJoinAnDB ;
      Where Between(B.Date_EOP, ?m.dStart, ?m.dFinishTmp) &cWhereAnPU And !(&cOMP);
      Into ARRAY aSum

    If _Tally # 0
      &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, aSum[1], -aSum[1])
    EndIf

    Select Sum(S.SUM_EQUAL) As SUMM ;
      From EopBase B ;
        Inner Join EopSpec    S On B.RN = S.Master_RN ;
        Inner Join crsAccount A On S.RN_KR = A.RN ;
        &cJoinAnalitKR ;
        &cJoinAnKR ;
      Where Between(B.Date_EOP, ?m.dStart, ?m.dFinishTmp) &cWhereAnPU And !(&cOMP);
      Into ARRAY aSum

    If _Tally # 0
      &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, -aSum[1], aSum[1])
    EndIf
  EndIf
EndFor

** Обороты по дебету
Select S.SUM_EQUAL, S.RN_DB, A.Account As DB, S.RN_DB_A&cSPLevel As RN_DB_AN, ;
       S.RN_KR, Nvl(C.Account, Space(29)) As KR, S.RN_KR_A&cSPLevel As RN_KR_AN, B.RN_MARK, ;
       &cAnalit ;
       &cOrgAnDB &cOrgAnKR ;
       &cKBKAnDB &cKBKAnKR ;
       &cOMP And B.Date_EOP = ??m.dFinish As L_OMP, ;
       &cOIspr As L_Ispr ;
  From EopBase B ;
    Inner Join EopSpec    S On B.RN = S.Master_RN ;
    Inner Join crsAccount A On S.RN_DB = A.RN ;
    &cJoinAnalitDB ;
    &cJoinAnDB ;
    Left  Join AccBase    C On S.RN_KR = C.RN ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dFinish) &cWhereAnPU ;
  Into CURSOR crsDb READWRITE

** Обороты по кредиту
Select S.SUM_EQUAL, S.RN_KR, A.Account As KR, S.RN_KR_A&cSPLevel As RN_KR_AN, ;
       S.RN_DB, Nvl(C.Account, Space(29)) As DB, S.RN_DB_A&cSPLevel As RN_DB_AN, B.RN_MARK, ;
       &cAnalit ;
       &cOrgAnDB &cOrgAnKR ;
       &cKBKAnDB &cKBKAnKR ;
       &cOMP And B.Date_EOP = ??m.dFinish As L_OMP, ;
       &cOIspr As L_Ispr ;
  From EopBase B ;
    Inner Join EopSpec    S On B.RN = S.Master_RN ;
    Inner Join crsAccount A On S.RN_KR = A.RN ;
    &cJoinAnalitKR ;
    &cJoinAnKR ;
    Left  Join AccBase    C On S.RN_DB = C.RN ;
  Where Between(B.Date_EOP, ?m.dDateBegin, ?m.dFinish) &cWhereAnPU ;
  Into CURSOR crsKr READWRITE

* Операции по исправлению ошибок прошлых лет (периодов)
If m.cOIspr # ".F."
  cPerem = "nCol4Row[" + m.cNLine + "]"

  Select Sum(SUM_EQUAL) As SUMM From crsDb Where L_Ispr Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, aSum[1], -aSum[1])
  EndIf

  Select Sum(SUM_EQUAL) As SUMM From crsKr Where L_Ispr Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, -aSum[1], aSum[1])
  EndIf
EndIf

* Операции межотчетного периода
If m.cOMP # ".F."
  cPerem = "nCol" +  Iif(m.lZabal, "7", "11") + "Row[" + m.cNLine + "]"

  Select Sum(SUM_EQUAL) As SUMM From crsDb Where L_OMP Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, -aSum[1], aSum[1])
  EndIf

  Select Sum(SUM_EQUAL) As SUMM From crsKr Where L_OMP Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lIsExcl = 0 And !m.lNot, aSum[1], -aSum[1])
  EndIf
EndIf

* Удаляем обособленные операции из курсоров
If m.cOIspr # ".F." Or m.cOMP # ".F."
  Select crsDb
  Delete For L_Ispr Or L_OMP
  Select crsKr
  Delete For L_Ispr Or L_OMP
EndIf

* Исключать обороты по коду счета при внутреннем перемещении
If !Empty(m.cExclCode)
  n1 = Val(m.cExclCode)
  n2 = Val(SubStr(m.cExclCode, AT("-", m.cExclCode) + 1)) - m.n1 + 1
  cWhereExcl = "SubStr(DB," + Str(m.n1, 2) + "," + Str(m.n2, 2) + ") # SubStr(KR," + Str(m.n1, 2) + "," + Str(m.n2, 2) + ")"
Else
  cWhereExcl = "RN_DB = RN_KR"
  If m.lOrgPO
    cWhereExcl = m.cWhereExcl + " And RN_DB_ORG = RN_KR_ORG"
  EndIf
  If m.lZabal And !Empty(m.cAnalit)
    cWhereExcl = m.cWhereExcl + " And RN_DB_ANL = RN_KR_ANL"
  EndIf
  If !m.lZabal
    cWhereExcl = m.cWhereExcl + " And RN_DB_AN = RN_KR_AN"
    If m.nAccType = 2   && короткий план счетов
      cWhereExcl = m.cWhereExcl + " And RN_DB_KBK = RN_KR_KBK"
    EndIf
  EndIf
  cWhereExcl = "!(" + m.cWhereExcl + ")"
EndIf

* Колонка 5 - поступление всего
cPerem = "nCol5Row[" + m.cNLine + "]"
If m.lIsExcl = 0
  Select Sum(SUM_EQUAL) As SUMM From crsDb Where &cWhereExcl Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lNot, -aSum[1], aSum[1])
  EndIf
EndIf

If m.lIsExcl = 2   && Обесценение
  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsKr S ;
      Inner Join crs40120_5 C On S.RN_DB_AN = C.RN ;
    Where &cWhereExcl And SUM_EQUAL < 0 ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = aSum[1]
  EndIf
EndIf

* Колонка 8 (6) - выбытие всего
cPerem = "nCol" + Iif(m.lZabal, "6", "8") + "Row[" + m.cNLine + "]"

If m.lIsExcl # 2
  Select Sum(SUM_EQUAL) As SUMM From crsKr Where &cWhereExcl Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + Iif(m.lNot, -aSum[1], aSum[1])
  EndIf
EndIf

If m.lZabal   && Для Справки дальше не считаем
  Return
EndIf

If m.lIsExcl # 0   && Амортизация и Обесценение
  Select Sum(SUM_EQUAL) As SUMM From crsDb Where &cWhereExcl Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem - aSum[1]
  EndIf
EndIf

If m.lIsExcl = 2   && Обесценение
  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsKr S ;
      Inner Join crs40120_5 C On S.RN_DB_AN = C.RN ;
    Where &cWhereExcl And SUM_EQUAL > 0 ;
    Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + aSum[1]
  EndIf

  Select Sum(SUM_EQUAL) As SUMM ;
    From crsKr ;
    Where &cWhereExcl And RN_DB_AN Not In (Select RN From crs40120_5) ;
    Into ARRAY aSum
  If _Tally # 0
    &cPerem = &cPerem + aSum[1]
  EndIf
EndIf

If !Empty(m.cRN_Mark1)
  cWhereMark = "Where S.RN_MARK # ?m.cRN_Mark1"
EndIf

* Колонка 6 - приобретено безвоздмездно
If m.lIsExcl = 0
  cPerem = "nCol6Row[" + m.cNLine + "]"

  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsDb S ;
      Inner Join crs30404 C On S.RN_KR = C.RN ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = aSum[1]
  EndIf

  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsDb S ;
      Inner Join crs401_6 C On S.RN_KR_AN = C.RN ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem + aSum[1]
  EndIf
EndIf

* Колонка 9 - передано безвоздмездно
cPerem = "nCol9Row[" + m.cNLine + "]"

Select Sum(S.SUM_EQUAL) As SUMM ;
  From crsKr S ;
    Inner Join crs30404 C On S.RN_DB = C.RN ;
  &cWhereMark ;
  Into ARRAY aSum

If _Tally # 0
  &cPerem = aSum[1]
EndIf

If m.lIsExcl # 0   && Амортизация и Обесценение
  cS = Iif(m.lIsExcl = 2, "o", "")
  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsKr S ;
      Inner Join crs40110_9&cS C On S.RN_DB_AN = C.RN ;
    &cWhereMark ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem + aSum[1]
  EndIf

  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsDb S ;
      Inner Join crs30404 C On S.RN_KR = C.RN ;
    &cWhereMark ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem - aSum[1]
  EndIf

  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsDb S ;
      Inner Join crs40120 C On S.RN_KR_AN = C.RN ;
    &cWhereMark ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem - aSum[1]
  EndIf
Else
  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsKr S ;
      Inner Join crs40120 C On S.RN_DB_AN = C.RN ;
    &cWhereMark ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem + aSum[1]
  EndIf
EndIf

* Колонка 7 - излишки
If m.lIsExcl = 0
  cPerem = "nCol7Row[" + m.cNLine + "]"
  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsDb S ;
      Inner Join crs40110_7 C On S.RN_KR_AN = C.RN ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = aSum[1]
  EndIf
EndIf

If Empty(m.cRN_Mark1)
  Return
EndIf

* Колонка 10 - хищения, недостачи
cPerem = "nCol10Row[" + m.cNLine + "]"

Select Sum(S.SUM_EQUAL) As SUMM ;
  From crsKr S ;
    Inner Join crs401_10 C On S.RN_DB_AN = C.RN ;
  Where S.RN_MARK = ?m.cRN_Mark1 ;
  Into ARRAY aSum

If _Tally # 0
  &cPerem = aSum[1]
EndIf

If m.lIsExcl # 0   && Амортизация и Обесценение
  Select Sum(S.SUM_EQUAL) As SUMM ;
    From crsDb S ;
      Inner Join crs401_10 C On S.RN_KR_AN = C.RN ;
    Where S.RN_MARK = ?m.cRN_Mark1 ;
    Into ARRAY aSum

  If _Tally # 0
    &cPerem = &cPerem - aSum[1]
  EndIf
EndIf

EndProc

]]></FPC_></MSE>
  <FPC_><![CDATA[*[VFP]
RepG151.GetOutS(.T.)
]]></FPC_>
  </печать>
  </отчет>
  <форма>
    <ид>f_0503768_33n_183n_2023</ид>
    <тип>XML</тип>
    <описание>
      <дополнительно>
        <desc_version>1.0</desc_version>
      </дополнительно>
      <VFP_свойство имя="Name">f_0503768</VFP_свойство>
      <VFP_свойство имя="Caption">Форма 0503768-33н_ред183н_2023</VFP_свойство>
      <VFP_свойство имя="Height">415</VFP_свойство>
      <VFP_свойство имя="Width">500</VFP_свойство>
      <VFP_метод имя="Valid"><![CDATA[LParam oThis, oThisform
Local oPg1, oPg2, oPg3, lOk, cSub, n1, n2, cS
oPg1 = oThisForm.PF.Page1
oPg2 = oThisForm.PF.Page2
oPg3 = oThisForm.PF.Page3

If !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 Year(oPg1.cntReoDate.Text.Value) # oPg1.cntSelYear.Value
   =ExclMes("Дата реорганизации должна относиться к отчетному году!")
   oThisForm.PF.ActivePage = 1
   oPg1.cntReoDate.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

cWhereOrg = oPg1.OrgFrom.GetCond()
cOrg      = oPg1.OrgFrom.GetSaveValue()

cWhereBalUnits = oPg1.BalUnits.GetCond()
cBalUnits = oPg1.BalUnits.GetSaveValue()

cCatEO    = oPg2.CmbCatEO.Value

* Разряды номера счета для определения внутреннего перемещения
If !Empty(m.cExclCode)
  cSub = m.cExclCode
  n1   = Val(m.cSub)
  n2   = 0
  lOk  = Between(m.n1, 1, 29)
  cS   = LTrim(Str(m.n1))
  cSub = SubStr(m.cSub, Len(m.cS) + 1)
  lOk  = m.lOk And !Empty(m.cSub)
  cS   = Left(m.cSub, 1)
  If m.lOk And m.cS = "-" And m.n1 # 0 And m.n2 = 0
    cSub = SubStr(m.cSub, 2)
    n2   = Val(m.cSub)
    cS   = LTrim(Str(m.n2, 15))
    cSub = SubStr(m.cSub, Len(m.cS) + 1)
    lOk  = Between(m.n2, m.n1, 29) And Empty(m.cSub)
  Else
    lOk = .F.
  EndIf
  *
  If !m.lOk
    = ExclMes("Диапазон разрядов номера счета для определения внутреннего перемещения задан некорректно!")
    oThisForm.PF.ActivePage = 1
    oPg1.ExclCode.SetFocus()
    Return .F.
  EndIf
EndIf

* Каталог для выгрузки
cUnlPath = oPg3.Catalog.Text.Value
if !Empty(m.cUnlPath) And !Directory(m.cUnlPath, 1)
   =exclmes("Каталог " + AllTrim(m.cUnlPath) + Chr(13) + "не существует!")
   oThisForm.PF.ActivePage = 2
   oPg3.Catalog.SetFocus()
   return .F.
endif
cDicIsp = oPg3.DicIsp.GetSaveValue()
]]></VFP_метод>
      <VFP_метод имя="PostInit"><![CDATA[LParam oThis, oThisform
    * Виды деятельности
    Dimension arrVFO[5, 3]
    arrVFO[1, 1] = PadR("Собственные доходы учреждения (код вида - 2)", 80)
    arrVFO[1, 2] = "2"
    arrVFO[1, 3] = "d"
    arrVFO[2, 1] = PadR("Субсидия на выполнение государственного (муниципального) задания (код вида - 4)", 80)
    arrVFO[2, 2] = "4"
    arrVFO[2, 3] = "z"
    arrVFO[3, 1] = PadR("Субсидии на иные цели (код вида - 5)", 80)
    arrVFO[3, 2] = "5"
    arrVFO[3, 3] = "c"
    arrVFO[4, 1] = PadR("Субсидии на цели осуществления капитальных вложений (код вида - 6)", 80)
    arrVFO[4, 2] = "6"
    arrVFO[4, 3] = "i"
    arrVFO[5, 1] = PadR("Средства по обязательному медицинскому страхованию (код вида - 7)", 80)
    arrVFO[5, 2] = "7"
    arrVFO[5, 3] = "m"

    Local cIspolnitel, oPg1, oPg2, oPg3
    oPg1 = oThisForm.PF.Page1
    oPg2 = oThisForm.PF.Page2
    oPg3 = oThisForm.PF.Page3
    
    oPg1.OrgFrom.setsavevalue(m.cOrg)
    oPg1.Cmb_VFO.RowSource = "arrVFO"
    oPg1.Cmb_VFO.BackColor = oPg1.Cmb_VFO.SaveBackColor
    oPg1.Cmb_VFO.Init()
    oPg1.BalUnits.SetSaveValue(m.cBalUnits)
    oPg1.CmbMark1.SetSource(UnitRN("EconOp"))

    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

    cIspolnitel = m.cIspName    
    oPg3.Catalog.Text.value = m.cUnlPath
    oPg3.DicIsp.setsavevalue(m.cDicIsp)
    oPg3.fldIspName.Value = m.cIspolnitel
]]></VFP_метод>
      <элемент>
        <VFP_имя>Tbtndialog1</VFP_имя>
        <VFP_свойство имя="Left">222</VFP_свойство>
        <VFP_свойство имя="Top">378</VFP_свойство>
      </элемент>
      <элемент>
          <VFP_класс>TPageFrame</VFP_класс>
          <VFP_свойство имя="Name">PF</VFP_свойство>
          <VFP_свойство имя="Height">375</VFP_свойство>
          <VFP_свойство имя="Width">500</VFP_свойство>
          <VFP_свойство имя="PageCount">3</VFP_свойство>
          <элемент>
            <VFP_имя>Page1</VFP_имя>
            <VFP_свойство имя="Caption">Параметры формирования</VFP_свойство>
            <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
            <VFP_свойство имя="FontSize">8</VFP_свойство>
            <элемент>
              <VFP_класс>T3dShape</VFP_класс>
              <VFP_свойство имя="Height">330</VFP_свойство>
              <VFP_свойство имя="Left">10</VFP_свойство>
              <VFP_свойство имя="Top">10</VFP_свойство>
              <VFP_свойство имя="Width">480</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">5</VFP_свойство>
              <VFP_свойство имя="Caption">Параметры</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Дата расчета показателей вступительного баланса:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">25</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TdicDate</VFP_класс>
              <VFP_свойство имя="Name">cntBalOpen</VFP_свойство>
              <VFP_свойство имя="Left">385</VFP_свойство>
              <VFP_свойство имя="Top">20</VFP_свойство>
              <элемент>
                <VFP_имя>Text</VFP_имя>
                <VFP_свойство имя="ControlSource">dBalOpen</VFP_свойство>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Отчетный год:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">55</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>tYear</VFP_класс>
              <VFP_свойство имя="Name">cntSelYear</VFP_свойство>
              <VFP_свойство имя="ControlSource">nSelYear</VFP_свойство>
              <VFP_свойство имя="Left">115</VFP_свойство>
              <VFP_свойство имя="Top">50</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Дата реорганизации:</VFP_свойство>
              <VFP_свойство имя="Left">250</VFP_свойство>
              <VFP_свойство имя="Top">55</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TdicDate</VFP_класс>
              <VFP_свойство имя="Name">cntReoDate</VFP_свойство>
              <VFP_свойство имя="Left">385</VFP_свойство>
              <VFP_свойство имя="Top">50</VFP_свойство>
              <элемент>
                <VFP_имя>Text</VFP_имя>
                <VFP_свойство имя="ControlSource">dReoDate</VFP_свойство>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">85</VFP_свойство>
              <VFP_свойство имя="Caption">Учреждение:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TDicHist</VFP_класс>
              <VFP_свойство имя="Name">OrgFrom</VFP_свойство>
              <VFP_свойство имя="Left">205</VFP_свойство>
              <VFP_свойство имя="Top">80</VFP_свойство>
              <VFP_свойство имя="Width">275</VFP_свойство>
              <VFP_свойство имя="AreaName" тип="C">OrgBase</VFP_свойство>
              <VFP_свойство имя="DictName" тип="C">Agnt_bms</VFP_свойство>
              <VFP_свойство имя="RetField" тип="C">rmnemo_org</VFP_свойство>
              <VFP_свойство имя="HistoryName" тип="C">H_AGENTS768_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">115</VFP_свойство>
              <VFP_свойство имя="Caption">Размерность плана счетов:</VFP_свойство>
            </элемент>            
            <элемент>
              <VFP_класс>TComboBox</VFP_класс>
              <VFP_свойство имя="Left">360</VFP_свойство>
              <VFP_свойство имя="Name">Cmb_AccType</VFP_свойство>
              <VFP_свойство имя="Top">110</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_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Caption">Вид деятельности:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TComboBox</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Name">Cmb_VFO</VFP_свойство>
              <VFP_свойство имя="Top">155</VFP_свойство>
              <VFP_свойство имя="Height">23</VFP_свойство>
              <VFP_свойство имя="Width">460</VFP_свойство>
              <VFP_свойство имя="BoundColumn">2</VFP_свойство>
              <VFP_свойство имя="RowSourceType">5</VFP_свойство>
              <VFP_свойство имя="Style">2</VFP_свойство>
              <VFP_свойство имя="DisplayCount">5</VFP_свойство>
              <VFP_свойство имя="ControlSource">cVFO</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Балансовая единица:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">190</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>S_balunits</VFP_класс>
              <VFP_свойство имя="Name">Balunits</VFP_свойство>
              <VFP_свойство имя="Left">205</VFP_свойство>
              <VFP_свойство имя="Top">185</VFP_свойство>
              <VFP_свойство имя="Width">275</VFP_свойство>
              <VFP_свойство имя="sourceIsVar" тип="L">.T.</VFP_свойство>
              <VFP_свойство имя="condfield" тип="C">balunit.mnemo</VFP_свойство>
              <VFP_свойство имя="condfieldrn" тип="C">balunit.rn</VFP_свойство>
              <VFP_свойство имя="enablewildcards" тип="L">.T.</VFP_свойство>
              <элемент>
                <VFP_имя>DicTable</VFP_имя>
                <дополнительно>
                  <отложенная_инициализация/>
                </дополнительно>
              </элемент>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">220</VFP_свойство>
              <VFP_свойство имя="Caption">Особая отметка (хищения/недостачи):</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>mark</VFP_класс>
              <VFP_свойство имя="Left">325</VFP_свойство>
              <VFP_свойство имя="Top">215</VFP_свойство>
              <VFP_свойство имя="Width">155</VFP_свойство>
              <VFP_свойство имя="Name">CmbMark1</VFP_свойство>
              <VFP_свойство имя="ControlSource">cRN_Mark1</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Уровень аналитики кодов поступлений/выбытий:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">250</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TSpinner</VFP_класс>
              <VFP_свойство имя="ControlSource">nSPLevel</VFP_свойство>
              <VFP_свойство имя="Inputmask">9</VFP_свойство>
              <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
              <VFP_свойство имя="KeyboardLowValue">1</VFP_свойство>
              <VFP_свойство имя="Left">440</VFP_свойство>
              <VFP_свойство имя="Name">aSPLevel</VFP_свойство>
              <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
              <VFP_свойство имя="SpinnerLowValue">1.00</VFP_свойство>
              <VFP_свойство имя="Top">245</VFP_свойство>
              <VFP_свойство имя="Width">40</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Уровень аналитики для забалансовых счетов:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">280</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TSpinner</VFP_класс>
              <VFP_свойство имя="ControlSource">nAnLevel</VFP_свойство>
              <VFP_свойство имя="Inputmask">9</VFP_свойство>
              <VFP_свойство имя="KeyboardHighValue">5</VFP_свойство>
              <VFP_свойство имя="KeyboardLowValue">0</VFP_свойство>
              <VFP_свойство имя="Left">440</VFP_свойство>
              <VFP_свойство имя="Name">aLevel</VFP_свойство>
              <VFP_свойство имя="SpinnerHighValue">5.00</VFP_свойство>
              <VFP_свойство имя="SpinnerLowValue">0.00</VFP_свойство>
              <VFP_свойство имя="Top">275</VFP_свойство>
              <VFP_свойство имя="Width">40</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Разряды номера счета для определения внутреннего перемещения:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">310</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">420</VFP_свойство>
              <VFP_свойство имя="Top">305</VFP_свойство>
              <VFP_свойство имя="Width">60</VFP_свойство>
              <VFP_свойство имя="MaxLength">5</VFP_свойство>
              <VFP_свойство имя="ControlSource">cExclCode</VFP_свойство>
              <VFP_свойство имя="Name">ExclCode</VFP_свойство>
            </элемент>
          </элемент>
          <элемент>
            <VFP_имя>Page2</VFP_имя>
            <VFP_свойство имя="Caption">Обособленные операции</VFP_свойство>
            <VFP_свойство имя="FontName">MS Sans Serif</VFP_свойство>
            <VFP_свойство имя="FontSize">8</VFP_свойство>
            <VFP_свойство имя="PageOrder">2</VFP_свойство>          
            <элемент>
              <VFP_класс>T3dShape</VFP_класс>
              <VFP_свойство имя="Height">75</VFP_свойство>
              <VFP_свойство имя="Left">10</VFP_свойство>
              <VFP_свойство имя="Top">10</VFP_свойство>
              <VFP_свойство имя="Width">480</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>            
              <VFP_свойство имя="Top">5</VFP_свойство>
              <VFP_свойство имя="Caption">Операции межотчетного периода</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">25</VFP_свойство>
              <VFP_свойство имя="Caption">Особая отметка:</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>mark</VFP_класс>
              <VFP_свойство имя="Left">325</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">325</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">480</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">325</VFP_свойство>
              <VFP_свойство имя="Top">105</VFP_свойство>
              <VFP_свойство имя="Width">155</VFP_свойство>
              <VFP_свойство имя="Height">23</VFP_свойство>
              <VFP_свойство имя="Name">JournalOp</VFP_свойство>
              <VFP_свойство имя="ControlSource">cJournalOp</VFP_свойство>
            </элемент>
          </элемент>                           
          <элемент>
            <VFP_имя>Page3</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">480</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">5</VFP_свойство>
              <VFP_свойство имя="Caption">Параметры</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Каталог:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">25</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TDirSelect</VFP_класс>
              <VFP_свойство имя="Name">Catalog</VFP_свойство>
              <VFP_свойство имя="Left">80</VFP_свойство>
              <VFP_свойство имя="Top">20</VFP_свойство>
              <VFP_свойство имя="Width">400</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">ИСТ:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">55</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">420</VFP_свойство>
              <VFP_свойство имя="Top">50</VFP_свойство>
              <VFP_свойство имя="Width">60</VFP_свойство>
              <VFP_свойство имя="MaxLength">3</VFP_свойство>
              <VFP_свойство имя="ControlSource">cIST</VFP_свойство>
              <VFP_свойство имя="Name">IST</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Исполнитель:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">85</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TDicHist</VFP_класс>
              <VFP_метод имя="AddUpdate"><![CDATA[LParam oThis, oThisform
= CurOpen("orgbase, person")
Local oPg3
oPg3 = oThisForm.PF.Page3
If !Empty(oPg3.dicIsp.Value)
  = Seek(oPg3.dicIsp.Value, "orgbase", "RN")
  If orgbase.type # '2'
    errmes("Выбранный контрагент не является физическим лицом.")
    oPg3.dicIsp.Clear()
  Else    
    = Seek(oPg3.dicIsp.Value, "person", "RN")
    oPg3.fldIspName.Value = Alltrim(person.SURName) + " " + Left(Alltrim(person.FIRSTName), 1) + "." + Left(Alltrim(person.SECONDName), 1) + "."
  ENDIF
EndIf
]]></VFP_метод>
              <VFP_свойство имя="Name">dicIsp</VFP_свойство>
              <VFP_свойство имя="Left">230</VFP_свойство>
              <VFP_свойство имя="Top">80</VFP_свойство>
              <VFP_свойство имя="Width">250</VFP_свойство>
              <VFP_свойство имя="AreaName" тип="C">OrgBase</VFP_свойство>
              <VFP_свойство имя="DictName" тип="C">Agnt_bms</VFP_свойство>
              <VFP_свойство имя="RetField" тип="C">rmnemo_org</VFP_свойство>
              <VFP_свойство имя="HistoryName" тип="C">H_AgentsFIO768_183N_2023</VFP_свойство>
              <VFP_свойство имя="Filter">orgbase.type='2'</VFP_свойство>
              <элемент>
                <VFP_имя>DicTable</VFP_имя>
                <дополнительно>
                  <отложенная_инициализация/>
                </дополнительно>
              </элемент>                
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">ФИО:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">115</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">230</VFP_свойство>
              <VFP_свойство имя="Top">110</VFP_свойство>
              <VFP_свойство имя="Width">250</VFP_свойство>
              <VFP_свойство имя="ControlSource">cIspName</VFP_свойство>
              <VFP_свойство имя="Name">fldIspName</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TLabel</VFP_класс>
              <VFP_свойство имя="Caption">Телефон:</VFP_свойство>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">145</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TTextBox</VFP_класс>
              <VFP_свойство имя="Left">230</VFP_свойство>
              <VFP_свойство имя="Top">140</VFP_свойство>
              <VFP_свойство имя="Width">250</VFP_свойство>
              <VFP_свойство имя="ControlSource">cIspTel</VFP_свойство>
              <VFP_свойство имя="Name">fldIspTel</VFP_свойство>
            </элемент>
            <элемент>
              <VFP_класс>TCheckBox</VFP_класс>
              <VFP_свойство имя="Left">20</VFP_свойство>
              <VFP_свойство имя="Top">175</VFP_свойство>
              <VFP_свойство имя="ControlSource">nEmptyRows</VFP_свойство>
              <VFP_свойство имя="Name">chkEmptyRows</VFP_свойство>
              <VFP_свойство имя="Caption">Выгружать строки с нулевыми значениями</VFP_свойство>
            </элемент>
          </элемент>
       </элемент>
    </описание>
  </форма>
</Модуль>
