БЛАНКСШАБЛОНОМ "ф.0503121 Отчет о финансовых результатах деятельности";

-- Зона авто-идентификации отчета
Ф_ОКУД: STRING = '0503121';
Ф_ИНСТР_КОД: STRING = '191н';
Ф_РЕД_КОД: STRING = '138н';
Ф_ДЕЙСТВ_С: DATE = 01.01.2014;
Ф_ДЕЙСТВ_ПО: DATE = 01.01.2014;
-- конец зоны авто-идентификации отчета

2--Общие переменные-----
var ДН:D=РАБ.ПАРАМ_ОТЧ.ДН;
var ДК:D=РАБ.ПАРАМ_ОТЧ.ДК;

Учреждение:S;
ОКПО:S;
ГлаваБК:S;
ОКАТО:S;
var Buf[] :String;  
НаимБюдж:S;
УЧРИНН:S;

ФИОРук:S;
ФИОБух:S;

cb_ВыгружатьВсеСтроки :Object;
flgВыгружатьВсеСтроки :Logical;

var УслВал:S=РАБ.ПАРАМ_ОТЧ.УслВал;
var Вал :S=РАБ.ПАРАМ_ОТЧ.Вал;
var Вал_:S=Вал;
var Показатель:S=РАБ.ПАРАМ_ОТЧ.Показатель;

var ЕдИзм:I=РАБ.ПАРАМ_ОТЧ.ЕдИзм;
var ЕдИзм_:S=if(ЕдИзм=1,Показатель,if(ЕдИзм=1000,"Тыс. "+Показатель,Str(ЕдИзм)+" "+Показатель));
var ОКЕИ:S=РАБ.ПАРАМ_ОТЧ.ОКЕИ;

var Точн:I=РАБ.ПАРАМ_ОТЧ.Точн;

var ОбщУслАн:S=РАБ.ПАРАМ_ОТЧ.ОбщУслАн;
var ОбщУслКД:S=РАБ.ПАРАМ_ОТЧ.ОбщУслКД;
var ОбщУслКР:S=РАБ.ПАРАМ_ОТЧ.ОбщУслКР;
var ОбщУслКИФД:S=РАБ.ПАРАМ_ОТЧ.ОбщУслКИФД;
var ОбщУслБС:S=РАБ.ПАРАМ_ОТЧ.ОбщУслБС;
var ОбщУслВБС:S=РАБ.ПАРАМ_ОТЧ.ОбщУслВБС;
var ОбщУслСВР:S=РАБ.ПАРАМ_ОТЧ.ОбщУслСВР;

var Стр_УслСчБС[]:S;
var Стр_УслСчБС2[]:S;
var Стр_УслСчВБС[]:S;
var Стр_УслСчВБС2[]:S;
var Стр_УслСчСВР[]:S;
var Стр_УслСчСВР2[]:S;
var Стр_УслАнБС[]:S;
var Стр_УслАнБС2[]:S;
var Стр_УслАнВБС[]:S;
var Стр_УслАнВБС2[]:S;
var Стр_УслАнСВР[]:S;
var Стр_УслАнСВР2[]:S;
var ВыгружаемыеСтроки[]:S;
var КОСГУ[] : S;

var Count:I; --Счетчик градусника

ОбщУслСч:S;

ОтчGUID:S;

Табл1:Section;

var НеУчитЗаклПр:L=True;

var Buf1[]:S;
var Buf2[]:S;
2--Данные таблицы-----
-- ОПЕРАЦИИ С ДОХОДАМИ
RГ4С020:N; RГ6С020:N; var RГ7С020:N=RГ4С020+RГ6С020;
RГ4С030:N; RГ6С030:N; var RГ7С030:N=RГ4С030+RГ6С030;
RГ4С040:N; RГ6С040:N; var RГ7С040:N=RГ4С040+RГ6С040;
RГ4С050:N; RГ6С050:N; var RГ7С050:N=RГ4С050+RГ6С050;
RГ4С061:N; RГ6С061:N; var RГ7С061:N=RГ4С061+RГ6С061;
RГ4С062:N; RГ6С062:N; var RГ7С062:N=RГ4С062+RГ6С062;
RГ4С063:N; RГ6С063:N; var RГ7С063:N=RГ4С063+RГ6С063;
RГ4С080:N; RГ6С080:N; var RГ7С080:N=RГ4С080+RГ6С080;
RГ4С091:N; RГ6С091:N; var RГ7С091:N=RГ4С091+RГ6С091;
RГ4С092:N; RГ6С092:N; var RГ7С092:N=RГ4С092+RГ6С092;
RГ4С093:N; RГ6С093:N; var RГ7С093:N=RГ4С093+RГ6С093;
RГ4С100:N; RГ6С100:N; var RГ7С100:N=RГ4С100+RГ6С100;
RГ4С110:N; RГ6С110:N; var RГ7С110:N=RГ4С110+RГ6С110;

var RГ4С060:N=RГ4С061+RГ4С062+RГ4С063;
var RГ6С060:N=RГ6С061+RГ6С062+RГ6С063;
var RГ7С060:N=RГ4С060+RГ6С060;
var RГ4С090:N=RГ4С091+RГ4С092+RГ4С093;
var RГ6С090:N=RГ6С091+RГ6С092+RГ6С093;
var RГ7С090:N=RГ4С090+RГ6С090;
var RГ4С010:N=RГ4С020+RГ4С030+RГ4С040+RГ4С050+RГ4С060+RГ4С080+RГ4С090+RГ4С100+RГ4С110;
var RГ6С010:N=RГ6С020+RГ6С030+RГ6С040+RГ6С050+RГ6С060+RГ6С080+RГ6С090+RГ6С100+RГ6С110;
var RГ7С010:N=RГ4С010+RГ6С010;

-- РАСХОДЫ
RГ4С161:N; RГ6С161:N; var RГ7С161:N=RГ4С161+RГ6С161;
RГ4С162:N; RГ6С162:N; var RГ7С162:N=RГ4С162+RГ6С162;
RГ4С163:N; RГ6С163:N; var RГ7С163:N=RГ4С163+RГ6С163;
RГ4С171:N; RГ6С171:N; var RГ7С171:N=RГ4С171+RГ6С171;
RГ4С172:N; RГ6С172:N; var RГ7С172:N=RГ4С172+RГ6С172;
RГ4С173:N; RГ6С173:N; var RГ7С173:N=RГ4С173+RГ6С173;
RГ4С174:N; RГ6С174:N; var RГ7С174:N=RГ4С174+RГ6С174;
RГ4С175:N; RГ6С175:N; var RГ7С175:N=RГ4С175+RГ6С175;
RГ4С176:N; RГ6С176:N; var RГ7С176:N=RГ4С176+RГ6С176;
RГ4С191:N; RГ6С191:N; var RГ7С191:N=RГ4С191+RГ6С191;
RГ4С192:N; RГ6С192:N; var RГ7С192:N=RГ4С192+RГ6С192;
RГ4С211:N; RГ6С211:N; var RГ7С211:N=RГ4С211+RГ6С211;
RГ4С212:N; RГ6С212:N; var RГ7С212:N=RГ4С212+RГ6С212;
RГ4С231:N; RГ6С231:N; var RГ7С231:N=RГ4С231+RГ6С231;
RГ4С232:N; RГ6С232:N; var RГ7С232:N=RГ4С232+RГ6С232;
RГ4С233:N; RГ6С233:N; var RГ7С233:N=RГ4С233+RГ6С233;
RГ4С241:N; RГ6С241:N; var RГ7С241:N=RГ4С241+RГ6С241;
RГ4С242:N; RГ6С242:N; var RГ7С242:N=RГ4С242+RГ6С242;
RГ4С243:N; RГ6С243:N; var RГ7С243:N=RГ4С243+RГ6С243;
RГ4С261:N; RГ6С261:N; var RГ7С261:N=RГ4С261+RГ6С261;
RГ4С262:N; RГ6С262:N; var RГ7С262:N=RГ4С262+RГ6С262;
RГ4С263:N; RГ6С263:N; var RГ7С263:N=RГ4С263+RГ6С263;
RГ4С270:N; RГ6С270:N; var RГ7С270:N=RГ4С270+RГ6С270;
RГ4С280:N; RГ6С280:N; var RГ7С280:N=RГ4С280+RГ6С280;
--RГ4С291:N; RГ6С291:N; var RГ7С291:N=RГ4С291+RГ6С291;
RГ4С292:N; RГ6С292:N; var RГ7С292:N=RГ4С292+RГ6С292;

var RГ4С160:N=RГ4С161+RГ4С162+RГ4С163;
var RГ6С160:N=RГ6С161+RГ6С162+RГ6С163;
var RГ7С160:N=RГ4С160+RГ6С160;
var RГ4С170:N=RГ4С171+RГ4С172+RГ4С173+RГ4С174+RГ4С175+RГ4С176;
var RГ6С170:N=RГ6С171+RГ6С172+RГ6С173+RГ6С174+RГ6С175+RГ6С176;
var RГ7С170:N=RГ4С170+RГ6С170;
var RГ4С190:N=RГ4С191+RГ4С192;
var RГ6С190:N=RГ6С191+RГ6С192;
var RГ7С190:N=RГ4С190+RГ6С190;
var RГ4С210:N=RГ4С211+RГ4С212;
var RГ6С210:N=RГ6С211+RГ6С212;
var RГ7С210:N=RГ4С210+RГ6С210;
var RГ4С230:N=RГ4С231+RГ4С232+RГ4С233;
var RГ6С230:N=RГ6С231+RГ6С232+RГ6С233;
var RГ7С230:N=RГ4С230+RГ6С230;
var RГ4С240:N=RГ4С241+RГ4С242+RГ4С243;
var RГ6С240:N=RГ6С241+RГ6С242+RГ6С243;
var RГ7С240:N=RГ4С240+RГ6С240;
var RГ4С260:N=RГ4С261+RГ4С262+RГ4С263;
var RГ6С260:N=RГ6С261+RГ6С262+RГ6С263;
var RГ7С260:N=RГ4С260+RГ6С260;
var RГ4С150:N=RГ4С160+RГ4С170+RГ4С190+RГ4С210+RГ4С230+RГ4С240+RГ4С260+RГ4С270+RГ4С280;
var RГ6С150:N=RГ6С160+RГ6С170+RГ6С190+RГ6С210+RГ6С230+RГ6С240+RГ6С260+RГ6С270+RГ6С280;
var RГ7С150:N=RГ4С150+RГ6С150;
-- ОПЕРАЦИОННЫЙ РЕЗУЛЬТАТ ДО НАЛОГООБЛОЖЕНИЯ
var RГ4С291:N=RГ4С010-RГ4С150;
var RГ6С291:N=RГ6С010-RГ6С150;
var RГ7С291:N=RГ4С291+RГ6С291;
-- ЧИСТЫЙ ОПЕРАЦИОННЫЙ РЕЗУЛЬТАТ
var RГ4С290:N=RГ4С291-RГ4С292;
var RГ6С290:N=RГ6С291-RГ6С292;
var RГ7С290:N=RГ4С290+RГ6С290;

-- ОПЕРАЦИИ С НЕФИНАНСОВЫМИ АКТИВАМИ
RГ4С321:N; RГ6С321:N; var RГ7С321:N=RГ4С321+RГ6С321;
RГ4С322:N; RГ6С322:N; var RГ7С322:N=RГ4С322+RГ6С322;
RГ4С331:N; RГ6С331:N; var RГ7С331:N=RГ4С331+RГ6С331;
RГ4С332:N; RГ6С332:N; var RГ7С332:N=RГ4С332+RГ6С332;
RГ4С351:N; RГ6С351:N; var RГ7С351:N=RГ4С351+RГ6С351;
RГ4С352:N; RГ6С352:N; var RГ7С352:N=RГ4С352+RГ6С352;
RГ4С361:N; RГ6С361:N; var RГ7С361:N=RГ4С361+RГ6С361;
RГ4С362:N; RГ6С362:N; var RГ7С362:N=RГ4С362+RГ6С362;
RГ4С371:N; RГ6С371:N; var RГ7С371:N=RГ4С371+RГ6С371;
RГ4С372:N; RГ6С372:N; var RГ7С372:N=RГ4С372+RГ6С372;

var RГ4С320:N=RГ4С321-RГ4С322;
var RГ6С320:N=RГ6С321-RГ6С322;
var RГ7С320:N=RГ4С320+RГ6С320;
var RГ4С330:N=RГ4С331-RГ4С332;
var RГ6С330:N=RГ6С331-RГ6С332;
var RГ7С330:N=RГ4С330+RГ6С330;
var RГ4С350:N=RГ4С351-RГ4С352;
var RГ6С350:N=RГ6С351-RГ6С352;
var RГ7С350:N=RГ4С350+RГ6С350;
var RГ4С360:N=RГ4С361-RГ4С362;
var RГ6С360:N=RГ6С361-RГ6С362;
var RГ7С360:N=RГ4С360+RГ6С360;
var RГ4С370:N=RГ4С371-RГ4С372;
var RГ6С370:N=RГ6С371-RГ6С372;
var RГ7С370:N=RГ4С370+RГ6С370;
var RГ4С310:N=RГ4С320+RГ4С330+RГ4С350+RГ4С360+RГ4С370;
var RГ6С310:N=RГ6С320+RГ6С330+RГ6С350+RГ6С360+RГ6С370;
var RГ7С310:N=RГ4С310+RГ6С310;
-- ОПЕРАЦИИ С ФИНАНСОВЫМИ АКТИВАМИ И ОБЯЗАТЕЛЬСТВАМИ
-- Операции с финансовыми активами
RГ4С411:N; RГ5С411:N; RГ6С411:N; var RГ7С411:N=RГ4С411+RГ6С411;
RГ4С412:N; RГ5С412:N; RГ6С412:N; var RГ7С412:N=RГ4С412+RГ6С412;
RГ4С421:N; RГ5С421:N; RГ6С421:N; var RГ7С421:N=RГ4С421+RГ6С421;
RГ4С422:N; RГ5С422:N; RГ6С422:N; var RГ7С422:N=RГ4С422+RГ6С422;
RГ4С441:N; RГ5С441:N; RГ6С441:N; var RГ7С441:N=RГ4С441+RГ6С441;
RГ4С442:N; RГ5С442:N; RГ6С442:N; var RГ7С442:N=RГ4С442+RГ6С442;
RГ4С461:N; RГ5С461:N; RГ6С461:N; var RГ7С461:N=RГ4С461+RГ6С461;
RГ4С462:N; RГ5С462:N; RГ6С462:N; var RГ7С462:N=RГ4С462+RГ6С462;
RГ4С471:N; RГ5С471:N; RГ6С471:N; var RГ7С471:N=RГ4С471+RГ6С471;
RГ4С472:N; RГ5С472:N; RГ6С472:N; var RГ7С472:N=RГ4С472+RГ6С472;
RГ4С481:N; RГ5С481:N; RГ6С481:N; var RГ7С481:N=RГ4С481+RГ6С481;
RГ4С482:N; RГ5С482:N; RГ6С482:N; var RГ7С482:N=RГ4С482+RГ6С482;
var RГ4С410:N=RГ4С411-RГ4С412;
var RГ6С410:N=RГ6С411-RГ6С412;
var RГ7С410:N=RГ4С410+RГ6С410;
var RГ4С420:N=RГ4С421-RГ4С422;
var RГ6С420:N=RГ6С421-RГ6С422;
var RГ7С420:N=RГ4С420+RГ6С420;
var RГ4С440:N=RГ4С441-RГ4С442;
var RГ6С440:N=RГ6С441-RГ6С442;
var RГ7С440:N=RГ4С440+RГ6С440;
var RГ4С460:N=RГ4С461-RГ4С462;
var RГ6С460:N=RГ6С461-RГ6С462;
var RГ7С460:N=RГ4С460+RГ6С460;
var RГ4С470:N=RГ4С471-RГ4С472;
var RГ6С470:N=RГ6С471-RГ6С472;
var RГ7С470:N=RГ4С470+RГ6С470;
var RГ4С480:N=RГ4С481-RГ4С482;
var RГ6С480:N=RГ6С481-RГ6С482;
var RГ7С480:N=RГ4С480+RГ6С480;
var RГ4С390:N=RГ4С410+RГ4С420+RГ4С440+RГ4С460+RГ4С470+RГ4С480;
var RГ6С390:N=RГ6С410+RГ6С420+RГ6С440+RГ6С460+RГ6С470+RГ6С480;
var RГ7С390:N=RГ4С390+RГ6С390;
  -- Операции с обязательствами
RГ4С521:N; RГ6С521:N; var RГ7С521:N=RГ4С521+RГ6С521;
RГ4С522:N; RГ6С522:N; var RГ7С522:N=RГ4С522+RГ6С522;
RГ4С531:N; RГ6С531:N; var RГ7С531:N=RГ4С531+RГ6С531;
RГ4С532:N; RГ6С532:N; var RГ7С532:N=RГ4С532+RГ6С532;
RГ4С541:N; RГ6С541:N; var RГ7С541:N=RГ4С541+RГ6С541;
RГ4С542:N; RГ6С542:N; var RГ7С542:N=RГ4С542+RГ6С542;
var RГ4С520:N=RГ4С521-RГ4С522;
var RГ6С520:N=RГ6С521-RГ6С522;
var RГ7С520:N=RГ4С520+RГ6С520;
var RГ4С530:N=RГ4С531-RГ4С532;
var RГ6С530:N=RГ6С531-RГ6С532;
var RГ7С530:N=RГ4С530+RГ6С530;
var RГ4С540:N=RГ4С541-RГ4С542;
var RГ6С540:N=RГ6С541-RГ6С542;
var RГ7С540:N=RГ4С540+RГ6С540;
var RГ4С510:N=RГ4С520+RГ4С530+RГ4С540;
var RГ6С510:N=RГ6С520+RГ6С530+RГ6С540;
var RГ7С510:N=RГ4С510+RГ6С510;
var RГ4С380:N=RГ4С390-RГ4С510;
var RГ6С380:N=RГ6С390-RГ6С510;
var RГ7С380:N=RГ4С380+RГ6С380;

var RГ4С290_1:N=RГ4С291-RГ4С292;
var RГ6С290_1:N=RГ6С291-RГ6С292;
var RГ7С290_1:N=RГ4С290_1+RГ6С290_1;

var RГ4С290_2:N=RГ4С310+RГ4С380;
var RГ6С290_2:N=RГ6С310+RГ6С380;
var RГ7С290_2:N=RГ4С290_2+RГ6С290_2;

var RГ4С290_3:N=RГ4С290_1-RГ4С290_2;
var RГ6С290_3:N=RГ6С290_1-RГ6С290_2;
var RГ7С290_3:N=RГ4С290_3+RГ6С290_3;

var FlagНастр:L;

var SelfBln:S="ОТЧЕТЫ.БАЛАНС.191Н.0503121";
var НастрGUID:S;
var НастрВерсия:I=120109;
var ТекущаяВерсия:I;

btnНастр :Object;
2--Процедуры и функции-----



Proc ЗадатьВыгружаемыеСтроки;
var Iter : Integer;
 ClearVariable(ВыгружаемыеСтроки);
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "010";   КОСГУ[Iter] ="100";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "020";   КОСГУ[Iter] ="110";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "030";   КОСГУ[Iter] ="120";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "040";   КОСГУ[Iter] ="130";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "050";   КОСГУ[Iter] ="140";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "060";   КОСГУ[Iter] ="150";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "061";   КОСГУ[Iter] ="151";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "062";   КОСГУ[Iter] ="152";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "063";   КОСГУ[Iter] ="153";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "080";   КОСГУ[Iter] ="160";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "090";   КОСГУ[Iter] ="170";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "091";   КОСГУ[Iter] ="171";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "092";   КОСГУ[Iter] ="172";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "093";   КОСГУ[Iter] ="173";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "100";   КОСГУ[Iter] ="180";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "110";   КОСГУ[Iter] ="130";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "150";   КОСГУ[Iter] ="200";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "160";   КОСГУ[Iter] ="210";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "161";   КОСГУ[Iter] ="211";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "162";   КОСГУ[Iter] ="212";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "163";   КОСГУ[Iter] ="213";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "170";   КОСГУ[Iter] ="220";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "171";   КОСГУ[Iter] ="221";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "172";   КОСГУ[Iter] ="222";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "173";   КОСГУ[Iter] ="223";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "174";   КОСГУ[Iter] ="224";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "175";   КОСГУ[Iter] ="225";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "176";   КОСГУ[Iter] ="226";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "190";   КОСГУ[Iter] ="230";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "191";   КОСГУ[Iter] ="231";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "192";   КОСГУ[Iter] ="232";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "210";   КОСГУ[Iter] ="240";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "211";   КОСГУ[Iter] ="241";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "212";   КОСГУ[Iter] ="242";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "230";   КОСГУ[Iter] ="250";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "231";   КОСГУ[Iter] ="251";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "232";   КОСГУ[Iter] ="252";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "233";   КОСГУ[Iter] ="253";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "240";   КОСГУ[Iter] ="260";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "241";   КОСГУ[Iter] ="261";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "242";   КОСГУ[Iter] ="262";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "243";   КОСГУ[Iter] ="263";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "260";   КОСГУ[Iter] ="270";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "261";   КОСГУ[Iter] ="271";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "262";   КОСГУ[Iter] ="272";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "263";   КОСГУ[Iter] ="273";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "270";   КОСГУ[Iter] ="290";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "280";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "290";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "291";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "292";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "310";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "320";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "321";   КОСГУ[Iter] ="310";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "322";   КОСГУ[Iter] ="410";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "350";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "351";   КОСГУ[Iter] ="320";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "352";   КОСГУ[Iter] ="420";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "360";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "361";   КОСГУ[Iter] ="330";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "362";   КОСГУ[Iter] ="430";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "370";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "371";   КОСГУ[Iter] ="340";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "372";   КОСГУ[Iter] ="440";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "380";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "390";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "410";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "411";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "412";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "420";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "421";   КОСГУ[Iter] ="510";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "422";   КОСГУ[Iter] ="610";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "440";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "441";   КОСГУ[Iter] ="530";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "442";   КОСГУ[Iter] ="630";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "460";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "461";   КОСГУ[Iter] ="540";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "462";   КОСГУ[Iter] ="640";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "470";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "471";   КОСГУ[Iter] ="550";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "472";   КОСГУ[Iter] ="650";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "480";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "481";   КОСГУ[Iter] ="650";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "482";   КОСГУ[Iter] ="660";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "510";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "520";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "521";   КОСГУ[Iter] ="710";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "522";   КОСГУ[Iter] ="810";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "530";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "531";   КОСГУ[Iter] ="720";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "532";   КОСГУ[Iter] ="820";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "540";   КОСГУ[Iter] ="***";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "541";   КОСГУ[Iter] ="730";
 Iter=Iter+1;ВыгружаемыеСтроки[Iter] = "542";   КОСГУ[Iter] ="830";

end;













Proc ЗадатьСтр_Усл;
 ClearVariable(Стр_УслСчБС);
 ClearVariable(Стр_УслСчБС2);
 ClearVariable(Стр_УслСчВБС);
 ClearVariable(Стр_УслСчВБС2);
 ClearVariable(Стр_УслСчСВР);
 ClearVariable(Стр_УслСчСВР2);
 ClearVariable(Стр_УслАнБС);
 ClearVariable(Стр_УслАнБС2);
 ClearVariable(Стр_УслАнВБС);
 ClearVariable(Стр_УслАнВБС2);
 ClearVariable(Стр_УслАнСВР);
 ClearVariable(Стр_УслАнСВР2);
 --Бюджетная деятельность
 Стр_УслСчБС[020]="*.401.10.110";
 Стр_УслСчБС[030]="*.401.10.120";
 Стр_УслСчБС[040]="*.401.10.130";
 Стр_УслСчБС[050]="*.401.10.140";

 Стр_УслСчБС[061]="*.401.10.151";
 Стр_УслСчБС[062]="*.401.10.152";
 Стр_УслСчБС[063]="*.401.10.153";
 Стр_УслСчБС[080]="*.401.10.160";

 Стр_УслСчБС[091]="*.401.10.171";
 Стр_УслСчБС[092]="*.401.10.172";
 Стр_УслСчБС[093]="*.401.10.173";
 Стр_УслСчБС[100]="*.401.10.180";
 Стр_УслСчБС[110]="";

 Стр_УслСчБС[161]="*.401.20.211";
 Стр_УслСчБС[162]="*.401.20.212";
 Стр_УслСчБС[163]="*.401.20.213";

 Стр_УслСчБС[171]="*.401.20.221";
 Стр_УслСчБС[172]="*.401.20.222";
 Стр_УслСчБС[173]="*.401.20.223";
 Стр_УслСчБС[174]="*.401.20.224";
 Стр_УслСчБС[175]="*.401.20.225";
 Стр_УслСчБС[176]="*.401.20.226";

 Стр_УслСчБС[191]="*.401.20.231";
 Стр_УслСчБС[192]="*.401.20.232";

 Стр_УслСчБС[211]="*.401.20.241";
 Стр_УслСчБС[212]="*.401.20.242";

 Стр_УслСчБС[231]="*.401.20.251";
 Стр_УслСчБС[232]="*.401.20.252";
 Стр_УслСчБС[233]="*.401.20.253";

 Стр_УслСчБС[241]="*.401.20.261";
 Стр_УслСчБС[242]="*.401.20.262";
 Стр_УслСчБС[243]="*.401.20.263";

 Стр_УслСчБС[261]="*.401.20.271";
 Стр_УслСчБС[262]="*.401.20.272";
 Стр_УслСчБС[263]="*.401.20.273";

 Стр_УслСчБС[270]="*.401.20.290";

 Стр_УслСчБС[280]="*.401.50.000";

 Стр_УслСчБС[292]="";

 Стр_УслСчБС[321]="*.101.??.310|*.106.?1.310|*.107.?1.310|*.108.51.310|*.108.52.310|*.108.53.310";
 Стр_УслСчБС[322]="*.101.??.410|*.104.1?.410|(*.104.3?.410&~*.104.39.*)|(*.104.4?.410&~*.104.49.*)|*.104.51.410|*.104.58.410|*.106.?1.410|*.107.?1.410|*.108.51.410|*.108.52.410|*.108.53.410";

 Стр_УслСчБС[331]="*.102.30.320|*.102.40.320|*.106.32.320|*.106.42.320|*.108.54.320";
 Стр_УслСчБС[332]="*.102.30.420|*.102.40.420|*.104.39.420|*.106.32.420|*.106.42.420|*.108.54.420";

 Стр_УслСчБС[351]="*.103.??.330|*.106.13.330|*.108.55.330";
 Стр_УслСчБС[352]="*.103.??.430|*.106.13.430|*.108.55.430";

 Стр_УслСчБС[361]="*.105.??.340|*.106.34.340|*.106.44.340|*.107.33.340|*.107.43.340|*.108.56.340";
 Стр_УслСчБС[362]="*.105.??.440|*.106.34.440|*.106.44.440|*.107.33.440|*.107.43.440|*.108.56.440";

 Стр_УслСчБС[371]="+*.109.??.*";
 Стр_УслСчБС[372]="-*.109.??.*";

 Стр_УслСчБС[411]="*.201.??.510|*.1.210.02.*";
 Стр_УслСчБС[412]="*.201.??.610|*.1.304.05.*";

 Стр_УслСчБС[421]="*.204.21.520|*.204.22.520|*.204.23.520|*.215.21.520|*.215.22.520|*.215.23.520";
 Стр_УслСчБС[422]="*.204.21.620|*.204.22.620|*.204.23.620|*.215.21.620|*.215.22.620|*.215.23.620";

 Стр_УслСчБС[441]="*.204.31.530|*.204.32.530|*.204.33.530|*.204.34.530|*.215.31.530|*.215.32.530|*.215.33.530|*.215.34.530";
 Стр_УслСчБС[442]="*.204.31.630|*.204.32.630|*.204.33.630|*.204.34.630|*.215.31.630|*.215.32.630|*.215.33.630|*.215.34.630";

 Стр_УслСчБС[461]="*.207.??.540";
 Стр_УслСчБС[462]="*.207.??.640";

 Стр_УслСчБС[471]="*.204.51.550|*.204.52.550|*.204.53.550|*.215.51.550|*.215.52.550|*.215.53.550";
 Стр_УслСчБС[472]="*.204.51.650|*.204.52.650|*.204.53.650|*.215.51.650|*.215.52.650|*.215.53.650";

 Стр_УслСчБС[481]="*.205.??.560|*.206.??.560|*.208.??.560|*.209.??.560|*.210.01.560|*.210.03.560|*.210.05.560";
 Стр_УслСчБС[482]="*.205.??.660|*.206.??.660|*.208.??.660|*.209.??.660|*.210.01.660|*.210.03.660|*.210.05.660";

 Стр_УслСчБС[521]="*.1.301.11.710|*.1.301.12.710|*.1.301.13.710|*.1.301.14.710|*.1.301.21.710|*.1.301.31.710";
 Стр_УслСчБС[522]="*.1.301.11.810|*.1.301.12.810|*.1.301.13.810|*.1.301.14.810|*.1.301.21.810|*.1.301.31.810";

 Стр_УслСчБС[531]="*.1.301.23.720|*.1.301.33.720|*.1.301.42.720|*.1.301.43.720|*.1.301.44.720";
 Стр_УслСчБС[532]="*.1.301.23.820|*.1.301.33.820|*.1.301.42.820|*.1.301.43.820|*.1.301.44.820";

 Стр_УслСчБС[541]="(*.302.??.730|*.303.??.730|*.304.??.730)|(-*.304.04.*)";
 Стр_УслСчБС[542]="(*.302.??.830|*.303.??.830|*.304.??.830)|(+*.304.04.*)";
 --Приносящая доход деятельность
 Стр_УслСчВБС[020]="";
 Стр_УслСчВБС[030]="*.401.10.120";
 Стр_УслСчВБС[040]="(-*.401.10.130)|(+*.401.10.130/*.303.04.*)";
 Стр_УслСчВБС[050]="";

 Стр_УслСчВБС[061]="";
 Стр_УслСчВБС[062]="";
 Стр_УслСчВБС[063]="";
 Стр_УслСчВБС[080]="";

 Стр_УслСчВБС[091]="*.401.10.171";
 Стр_УслСчВБС[092]="(*.401.10.172/~*.303.03.730)|(*.401.02.172)";
 Стр_УслСчВБС[093]="*.401.10.173";
 Стр_УслСчВБС[100]="(*.401.10.180/~*.303.03.730)|(*.401.02.180)";
 Стр_УслСчВБС[110]="*.401.40.130";

 Стр_УслСчВБС[161]="*.401.20.211";  Стр_УслСчВБС2[161]="+*.401.10.130/*.2.109.61.211|*.2.109.91.211"; Стр_УслАнВБС2[161]="";
 Стр_УслСчВБС[162]="*.401.20.212";  Стр_УслСчВБС2[162]="+*.401.10.130/*.2.109.61.212|*.2.109.91.212"; Стр_УслАнВБС2[162]="";
 Стр_УслСчВБС[163]="*.401.20.213";  Стр_УслСчВБС2[163]="+*.401.10.130/*.2.109.61.213|*.2.109.91.213"; Стр_УслАнВБС2[163]="";

 Стр_УслСчВБС[171]="*.401.20.221";  Стр_УслСчВБС2[171]="+*.401.10.130/*.2.109.61.221|*.2.109.91.221"; Стр_УслАнВБС2[171]="";
 Стр_УслСчВБС[172]="*.401.20.222";  Стр_УслСчВБС2[172]="+*.401.10.130/*.2.109.61.222|*.2.109.91.222"; Стр_УслАнВБС2[172]="";
 Стр_УслСчВБС[173]="*.401.20.223";  Стр_УслСчВБС2[173]="+*.401.10.130/*.2.109.61.223|*.2.109.91.223"; Стр_УслАнВБС2[173]="";
 Стр_УслСчВБС[174]="*.401.20.224";  Стр_УслСчВБС2[174]="+*.401.10.130/*.2.109.61.224|*.2.109.91.224"; Стр_УслАнВБС2[174]="";
 Стр_УслСчВБС[175]="*.401.20.225";  Стр_УслСчВБС2[175]="+*.401.10.130/*.2.109.61.225|*.2.109.91.225"; Стр_УслАнВБС2[175]="";
 Стр_УслСчВБС[176]="*.401.20.226";  Стр_УслСчВБС2[176]="+*.401.10.130/*.2.109.61.226|*.2.109.91.226"; Стр_УслАнВБС2[176]="";

 Стр_УслСчВБС[191]=""; Стр_УслСчВБС2[191]=""; Стр_УслАнВБС2[191]="";
 Стр_УслСчВБС[192]=""; Стр_УслСчВБС2[192]=""; Стр_УслАнВБС2[192]="";

 Стр_УслСчВБС[211]="*.401.20.241";  Стр_УслСчВБС2[211]=""; Стр_УслАнВБС2[211]="";
 Стр_УслСчВБС[212]="*.401.20.242";  Стр_УслСчВБС2[212]=""; Стр_УслАнВБС2[212]="";

 Стр_УслСчВБС[231]=""; Стр_УслСчВБС2[231]=""; Стр_УслАнВБС2[231]="";

 Стр_УслСчВБС[232]="*.401.20.252";  Стр_УслСчВБС2[232]=""; Стр_УслАнВБС2[232]="";
 Стр_УслСчВБС[233]="*.401.20.253";  Стр_УслСчВБС2[233]=""; Стр_УслАнВБС2[233]="";

 Стр_УслСчВБС[241]=""; Стр_УслСчВБС2[241]=""; Стр_УслАнВБС2[241]="";

 Стр_УслСчВБС[242]="*.401.20.262";  Стр_УслСчВБС2[242]=""; Стр_УслАнВБС2[242]="";
 Стр_УслСчВБС[243]="*.401.20.263";  Стр_УслСчВБС2[243]=""; Стр_УслАнВБС2[243]="";

 Стр_УслСчВБС[261]="*.401.20.271";  Стр_УслСчВБС2[261]="+*.401.10.130/*.2.109.61.271|*.2.109.91.271"; Стр_УслАнВБС2[261]="";
 Стр_УслСчВБС[262]="*.401.20.272";  Стр_УслСчВБС2[262]="+*.401.10.130/*.2.109.61.272|*.2.109.91.272|(*.2.105.3?.440&~*.2.105.39.440)|*.2.105.44.440|*.2.105.46.440"; Стр_УслАнВБС2[262]="";
 Стр_УслСчВБС[263]="*.401.20.273";  Стр_УслСчВБС2[263]=""; Стр_УслАнВБС2[263]="";

 Стр_УслСчВБС[270]="*.401.20.290";  Стр_УслСчВБС2[270]="+*.401.10.130/*.2.109.61.290|*.2.109.91.290"; Стр_УслАнВБС2[270]="";

 Стр_УслСчВБС[280]="*.401.50.000";  Стр_УслСчВБС2[280]=""; Стр_УслАнВБС2[280]="";

 Стр_УслСчВБС[292]="*.303.03.730";

 Стр_УслСчВБС[321]="*.101.??.310|*.106.?1.310|*.107.?1.310|*.108.51.310|*.108.52.310|*.108.53.310";
 Стр_УслСчВБС[322]="*.101.??.410|*.104.1?.410|(*.104.3?.410&~*.104.39.*)|(*.104.4?.410&~*.104.49.*)|*.104.51.410|*.104.58.410|*.106.?1.410|*.107.?1.410|*.108.51.410|*.108.52.410|*.108.53.410";

 Стр_УслСчВБС[331]="*.102.30.320|*.102.40.320|*.106.32.320|*.106.42.320|*.108.54.320";
 Стр_УслСчВБС[332]="*.102.30.420|*.102.40.420|*.104.39.420|*.106.32.420|*.106.42.420|*.108.54.420";

 Стр_УслСчВБС[351]="*.103.??.330|*.106.13.330|*.108.55.330";
 Стр_УслСчВБС[352]="*.103.??.430|*.106.13.430|*.108.55.430";

 Стр_УслСчВБС[361]="*.105.??.340|*.106.34.340|*.106.44.340|*.107.33.340|*.107.43.340|*.108.56.340";
 Стр_УслСчВБС[362]="*.105.??.440|*.106.34.440|*.106.44.440|*.107.33.440|*.107.43.440|*.108.56.440";

 Стр_УслСчВБС[371]="+*.109.??.*";
 Стр_УслСчВБС[372]="-*.109.??.*";

 Стр_УслСчВБС[411]="*.201.??.510|*.1.210.02.*";
 Стр_УслСчВБС[412]="*.201.??.610|*.1.304.05.*";

 Стр_УслСчВБС[421]="*.204.21.520|*.204.22.520|*.204.23.520|*.215.21.520|*.215.22.520|*.215.23.520";
 Стр_УслСчВБС[422]="*.204.21.620|*.204.22.620|*.204.23.620|*.215.21.620|*.215.22.620|*.215.23.620";

 Стр_УслСчВБС[441]="*.204.31.530|*.204.32.530|*.204.33.530|*.204.34.530|*.215.31.530|*.215.32.530|*.215.33.530|*.215.34.530";
 Стр_УслСчВБС[442]="*.204.31.630|*.204.32.630|*.204.33.630|*.204.34.630|*.215.31.630|*.215.32.630|*.215.33.630|*.215.34.630";

 Стр_УслСчВБС[461]="*.207.??.540";
 Стр_УслСчВБС[462]="*.207.??.640";

 Стр_УслСчВБС[471]="*.204.51.550|*.204.52.550|*.204.53.550|*.215.51.550|*.215.52.550|*.215.53.550";
 Стр_УслСчВБС[472]="*.204.51.650|*.204.52.650|*.204.53.650|*.215.51.650|*.215.52.650|*.215.53.650";

 Стр_УслСчВБС[481]="*.205.??.560|*.206.??.560|*.208.??.560|*.209.??.560|*.210.01.560|*.210.03.560|*.210.05.560";
 Стр_УслСчВБС[482]="*.205.??.660|*.206.??.660|*.208.??.660|*.209.??.660|*.210.01.660|*.210.03.660|*.210.05.660";

 Стр_УслСчВБС[521]="*.1.301.11.710|*.1.301.12.710|*.1.301.13.710|*.1.301.14.710|*.1.301.21.710|*.1.301.31.710";
 Стр_УслСчВБС[522]="*.1.301.11.810|*.1.301.12.810|*.1.301.13.810|*.1.301.14.810|*.1.301.21.810|*.1.301.31.810";

 Стр_УслСчВБС[531]="*.1.301.23.720|*.1.301.33.720|*.1.301.42.720|*.1.301.43.720|*.1.301.44.720";
 Стр_УслСчВБС[532]="*.1.301.23.820|*.1.301.33.820|*.1.301.42.820|*.1.301.43.820|*.1.301.44.820";

 Стр_УслСчВБС[541]="(*.302.??.730|*.303.??.730|*.304.01.730|*.304.02.730|*.304.03.730)|(-*.304.04.*)";
 Стр_УслСчВБС[542]="(*.302.??.830|*.303.??.830|*.304.01.830|*.304.02.830|*.304.03.830)|(+*.304.04.*)";
 --СВР
 Стр_УслСчСВР[411]="*.201.??.510|*.210.02.*";
 Стр_УслСчСВР[412]="*.201.??.610";

 Стр_УслСчСВР[541]="*.304.01.730";
 Стр_УслСчСВР[542]="*.304.01.830";
 --
 ТекущаяВерсия=НастрВерсия;
end;

Proc Настр(aСохр:L);
var r,rr,n:i;
var val:S;
 if НастрGUID="" or aСохр: НастрGUID=GetGUID; fi;
 if Раб.Настр.Начать(SelfBln,0,НастрВерсия,"",НастрGUID):
    Раб.Настр.Добавить("ТекущаяВерсия","I");
    rr=AsInteger(Табл1.RowsCount);
    for r=1..rr do
     val=AsString(Табл1.Cell(r,3,CellContents,"",False));
     n=Int(val);
     if Int(val)>0 and Length(val)=3:
        Раб.Настр.Добавить("Стр_УслСчБС["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслСчБС2["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслСчВБС["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслСчВБС2["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслСчСВР["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслСчСВР2["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслАнБС["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслАнБС2["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслАнВБС["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслАнВБС2["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслАнСВР["+Str(n)+"]","S");
        Раб.Настр.Добавить("Стр_УслАнСВР2["+Str(n)+"]","S");
     fi;
    od;
   if aСохр:
      ТекущаяВерсия=НастрВерсия;
      Раб.Настр.Сохранить;
     else
      НастрGUID=Раб.Настр.Загрузить("","");
      if НастрGUID="":
         ЗадатьСтр_Усл;
      fi;
   fi;
 fi;
end;

Proc КонтрольВерсии;
 Настр(False);
 if not ТекущаяВерсия=НастрВерсия:
    ЗадатьСтр_Усл;
    Настр(True);
    Message("Настройка отчета актуализирована");
 fi;
end;

Proc ВнешнийВид;
var rr,r,c:i;
 rr=AsInteger(Табл1.RowsCount);
 for r=1..rr do
  if AsString(Табл1.Cell(r,1,CellContents,"",False))="@": 
     for c=9..14 do
      Табл1.Cell(r,c,CellBgColor,15654233);
     od;
  fi;
 od;
end;

Proc ОткрытьНастр;
var rr,r:i;
 btnНастр.Caption=if(FlagНастр,"Закрыть настройку","Открыть настройку");
 Табл1.Column(5 ,ColVisible,not FlagНастр);
 Табл1.Column(6 ,ColVisible,false);
 Табл1.Column(7 ,ColVisible,not FlagНастр);
 Табл1.Column(8 ,ColVisible,not FlagНастр);
 Табл1.Column(9 ,ColVisible,FlagНастр);
 Табл1.Column(10,ColVisible,FlagНастр);
 Табл1.Column(11,ColVisible,FlagНастр);
 Табл1.Column(12,ColVisible,FlagНастр);
 Табл1.Column(13,ColVisible,FlagНастр);
 Табл1.Column(14,ColVisible,FlagНастр);
 rr=AsInteger(Табл1.RowsCount);
 for r=1..rr do
  if AsString(Табл1.Cell(r,1,CellContents,"",False))="@": 
     Табл1.Row(r,RowVisible,FlagНастр); 
  fi;
 od;
end;

Proc ПрисвоитьТочность;
var cf:S;
var c,r,rr:i;
 cf=",##0."+if(Точн<1,"",RepStr("0",Точн))+";;-";
 --Основная таблица
 rr=AsInteger(Табл1.RowsCount);
 for c=5..7 do
  for r=1..rr do
   if Match(AsString(Табл1.Cell(r,c,CellContents,"")),"R*"): Табл1.Cell(r,c,CellFormat,cf); fi;
  od;
 od;
end;

Proc Очистить;
  ClearVariable(RГ4С020); ClearVariable(RГ6С020);
  ClearVariable(RГ4С030); ClearVariable(RГ6С030);
  ClearVariable(RГ4С040); ClearVariable(RГ6С040);
  ClearVariable(RГ4С050); ClearVariable(RГ6С050);
  ClearVariable(RГ4С061); ClearVariable(RГ6С061);
  ClearVariable(RГ4С062); ClearVariable(RГ6С062);
  ClearVariable(RГ4С063); ClearVariable(RГ6С063);
  ClearVariable(RГ4С080); ClearVariable(RГ6С080);
  ClearVariable(RГ4С091); ClearVariable(RГ6С091);
  ClearVariable(RГ4С092); ClearVariable(RГ6С092);
  ClearVariable(RГ4С093); ClearVariable(RГ6С093);
  ClearVariable(RГ4С100); ClearVariable(RГ6С100);
  ClearVariable(RГ4С110); ClearVariable(RГ6С110);
  ClearVariable(RГ4С161); ClearVariable(RГ6С161);
  ClearVariable(RГ4С162); ClearVariable(RГ6С162);
  ClearVariable(RГ4С163); ClearVariable(RГ6С163);
  ClearVariable(RГ4С171); ClearVariable(RГ6С171);
  ClearVariable(RГ4С172); ClearVariable(RГ6С172);
  ClearVariable(RГ4С173); ClearVariable(RГ6С173);
  ClearVariable(RГ4С174); ClearVariable(RГ6С174);
  ClearVariable(RГ4С175); ClearVariable(RГ6С175);
  ClearVariable(RГ4С176); ClearVariable(RГ6С176);
  ClearVariable(RГ4С191); ClearVariable(RГ6С191);
  ClearVariable(RГ4С192); ClearVariable(RГ6С192);
  ClearVariable(RГ4С211); ClearVariable(RГ6С211);
  ClearVariable(RГ4С212); ClearVariable(RГ6С212);
  ClearVariable(RГ4С231); ClearVariable(RГ6С231);
  ClearVariable(RГ4С232); ClearVariable(RГ6С232);
  ClearVariable(RГ4С233); ClearVariable(RГ6С233);
  ClearVariable(RГ4С241); ClearVariable(RГ6С241);
  ClearVariable(RГ4С242); ClearVariable(RГ6С242);
  ClearVariable(RГ4С243); ClearVariable(RГ6С243);
  ClearVariable(RГ4С261); ClearVariable(RГ6С261);
  ClearVariable(RГ4С262); ClearVariable(RГ6С262);
  ClearVariable(RГ4С263); ClearVariable(RГ6С263);
  ClearVariable(RГ4С270); ClearVariable(RГ6С270);
  ClearVariable(RГ4С280); ClearVariable(RГ6С280);
  ClearVariable(RГ4С292); ClearVariable(RГ6С292);
  ClearVariable(RГ4С321); ClearVariable(RГ6С321);
  ClearVariable(RГ4С322); ClearVariable(RГ6С322);
  ClearVariable(RГ4С331); ClearVariable(RГ6С331);
  ClearVariable(RГ4С332); ClearVariable(RГ6С332);
  ClearVariable(RГ4С351); ClearVariable(RГ6С351);
  ClearVariable(RГ4С352); ClearVariable(RГ6С352);
  ClearVariable(RГ4С361); ClearVariable(RГ6С361);
  ClearVariable(RГ4С362); ClearVariable(RГ6С362);
  ClearVariable(RГ4С371); ClearVariable(RГ6С371);
  ClearVariable(RГ4С372); ClearVariable(RГ6С372);
  ClearVariable(RГ4С411); ClearVariable(RГ6С411);
  ClearVariable(RГ4С412); ClearVariable(RГ6С412);
  ClearVariable(RГ4С421); ClearVariable(RГ6С421);
  ClearVariable(RГ4С422); ClearVariable(RГ6С422);
  ClearVariable(RГ4С441); ClearVariable(RГ6С441);
  ClearVariable(RГ4С442); ClearVariable(RГ6С442);
  ClearVariable(RГ4С461); ClearVariable(RГ6С461);
  ClearVariable(RГ4С462); ClearVariable(RГ6С462);
  ClearVariable(RГ4С471); ClearVariable(RГ6С471);
  ClearVariable(RГ4С472); ClearVariable(RГ6С472);
  ClearVariable(RГ4С481); ClearVariable(RГ6С481);
  ClearVariable(RГ4С482); ClearVariable(RГ6С482);
  ClearVariable(RГ4С521); ClearVariable(RГ6С521);
  ClearVariable(RГ4С522); ClearVariable(RГ6С522);
  ClearVariable(RГ4С531); ClearVariable(RГ6С531);
  ClearVariable(RГ4С532); ClearVariable(RГ6С532);
  ClearVariable(RГ4С541); ClearVariable(RГ6С541);
  ClearVariable(RГ4С542); ClearVariable(RГ6С542);
end;

Proc ПроверитьНастр;
var n,nn:i;
 nn=Max(LengthOfArray(Стр_УслСчБС),LengthOfArray(Стр_УслСчВБС));
 for n=1..nn do
  if not Стр_УслСчБС[n]="" or not Стр_УслСчВБС[n]="": Exit; fi;
 od;
 ЗадатьСтр_Усл;
end;

Func СжатиеУслБК(aБК:S; aРежим:S):S;
 if aРежим="КР":
    aБК=Раб.Формат.ReplaceSubstr(aБК,".????.",".*."); --РП
    aБК=Раб.Формат.ReplaceSubstr(aБК,".???????.",".*."); --ЦС
    aБК=Раб.Формат.ReplaceSubstr(aБК,".???",".*"); --ВР
    aБК=Раб.Формат.ReplaceSubstr(aБК,"???.","*."); --ППП
    if aБК="*.*.*.*":
       aБК="";
      else
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*","*");
    fi;
   |aРежим="КД":
    aБК=Раб.Формат.ReplaceSubstr(aБК,".?.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".?????.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".????",".*");
    aБК=Раб.Формат.ReplaceSubstr(aБК,"???.","*."); --ППП
    if aБК="*.*.*.*.*.*":
       aБК="";
      else
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*","*");
    fi;
   |aРежим="КИФД":
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".??.",".*.");
    aБК=Раб.Формат.ReplaceSubstr(aБК,".????",".*");
    aБК=Раб.Формат.ReplaceSubstr(aБК,"???.","*."); --ППП
    if aБК="*.*.*.*.*.*.*":
       aБК="";
      else
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*.*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*.*","*");
       aБК=Раб.Формат.ReplaceSubstr(aБК,"*.*","*");
    fi;
  fi;
  ^aБК;
end;

Func MyTurn(vСтр:I; vГр:I):N;
var res:N;
var УслСч,УслАн:S;
 Count=Count+1;
 ProgressPos(Count);
 if vГр=4: 
    if Стр_УслСчБС[vСтр]="": ^0; fi;
    УслСч="("+Стр_УслСчБС[vСтр]+")&"+ОбщУслБС;
    if Стр_УслАнБС[vСтр]="": УслАн=""; else УслАн="("+Стр_УслАнБС[vСтр]+")"; fi;
   |vГр=5: 
    if Стр_УслСчВБС[vСтр]="": ^0; fi;
    УслСч="("+Стр_УслСчВБС[vСтр]+")&"+ОбщУслВБС;
    if Стр_УслАнВБС[vСтр]="": УслАн=""; else УслАн="("+Стр_УслАнВБС[vСтр]+")"; fi;
   |vГр=6:
    if Стр_УслСчСВР[vСтр]="": ^0; fi;
    УслСч="("+Стр_УслСчСВР[vСтр]+")&"+ОбщУслСВР;
    if Стр_УслАнСВР[vСтр]="": УслАн=""; else УслАн="("+Стр_УслАнСВР[vСтр]+")"; fi;
   |True: 
    Trace("Ошибка! Недопустимый номер графы "+Str(vГр)+" строка="+Str(vСтр)); ^0;
 fi;
 УслСч=Раб.Бюджет2005.Объединить(УслСч,ОбщУслСч,"&");
 УслСч=Раб.Бюджет2005.Объединить(УслСч,УслВал,"'");
 УслАн=Раб.Бюджет2005.Объединить(УслАн,ОбщУслАн,"&");
 if НеУчитЗаклПр: УслАн=Раб.Бюджет2005.Объединить(УслАн,Раб.Парам_Отч.ИсклЗакл,"&"); fi;
 Res=Round(Turn(УслСч+"{"+УслАн+"}",ДН,ДК,Показатель)/ЕдИзм,Точн);
 ^Res;
end;

Func MyTurn2(vСтр:I; vГр:I):N;
var n,nn:I;
var res:N;
 Count=Count+1;
 ProgressPos(Count);
 ClearVariable(Buf1);
 ClearVariable(Buf2);
 nn=0;
 if vГр=4:
    if not Стр_УслСчБС[vСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчБС[vСтр]+")&"+ОбщУслБС;
       if not Стр_УслАнБС[vСтр]="": Buf2[nn]="("+Стр_УслАнБС[vСтр]+")"; fi;
    fi;
    if not Стр_УслСчБС2[vСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчБС2[vСтр]+")&"+ОбщУслБС;
       if not Стр_УслАнБС2[vСтр]="": Buf2[nn]="("+Стр_УслАнБС2[vСтр]+")"; fi;
    fi;
   |vГр=5:
    if not Стр_УслСчВБС[vСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчВБС[vСтр]+")&"+ОбщУслВБС;
       if not Стр_УслАнВБС[vСтр]="": Buf2[nn]="("+Стр_УслАнВБС[vСтр]+")"; fi;
    fi;
    if not Стр_УслСчВБС2[vСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчВБС2[vСтр]+")&"+ОбщУслВБС;
       if not Стр_УслАнВБС2[vСтр]="": Buf2[nn]="("+Стр_УслАнВБС2[vСтр]+")"; fi;
    fi;
   |vГр=6:
    if not Стр_УслСчСВР[vСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчСВР[vСтр]+")&"+ОбщУслСВР;
       if not Стр_УслАнСВР[vСтр]="": Buf2[nn]="("+Стр_УслАнСВР[vСтр]+")"; fi;
    fi;
    if not Стр_УслСчСВР2[vСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчСВР2[vСтр]+")&"+ОбщУслСВР;
       if not Стр_УслАнСВР2[vСтр]="": Buf2[nn]="("+Стр_УслАнСВР2[vСтр]+")"; fi;
    fi;
   |True: 
    Trace("Ошибка! Недопустимый номер графы "+Str(vГр)+" строка="+Str(vСтр)); ^0;
 fi;
 if nn=0: ^0; fi;
 Res=0;
 for n=1..nn do
  Buf1[n]=Раб.Бюджет2005.Объединить(Buf1[n],ОбщУслСч,"&");
  Buf1[n]=Раб.Бюджет2005.Объединить(Buf1[n],УслВал,"'");
  Buf2[n]=Раб.Бюджет2005.Объединить(Buf2[n],ОбщУслАн,"&");
  if НеУчитЗаклПр: Buf2[n]=Раб.Бюджет2005.Объединить(Buf2[n],Раб.Парам_Отч.ИсклЗакл,"&"); fi;
  Res=Res+Round(Turn(Buf1[n]+"{"+Buf2[n]+"}",ДН,ДК,Показатель)/ЕдИзм,Точн);
 od;
 ^Res;
end;


Proc Расчет;
var ОбщУслКД_,ОбщУслКР_,ОбщУслКИФД_:S;
 ПроверитьНастр;
 ClearTrace(True);
 Очистить;
 ClearVariable(Count);
 ShowProgress(192,"Расчет...");
 Раб.Бюджет2005.РежимМаски="?";
 if not ОбщУслКД="": 
    ОбщУслКД_=СжатиеУслБК(Раб.Бюджет2005.ВзятьКодКБК(ОбщУслКД,"КД","КБК",False),"КД");
    if not SubStr(ОбщУслКД_,Length(ОбщУслКД_),1)="*" and not ОбщУслКД_="": ОбщУслКД_=ОбщУслКД_+".*"; fi;
   else 
    ОбщУслКД_=""; 
 fi;
 if not ОбщУслКР="": 
    ОбщУслКР_=СжатиеУслБК(Раб.Бюджет2005.ВзятьКодКБК(ОбщУслКР,"ФКР","КБК",False),"КР");
    if not SubStr(ОбщУслКР_,Length(ОбщУслКР_),1)="*" and not ОбщУслКР_="": ОбщУслКР_=ОбщУслКР_+".*"; fi;
   else 
    ОбщУслКР_="";
 fi;
 if not ОбщУслКИФД="": 
    ОбщУслКИФД_=СжатиеУслБК(Раб.Бюджет2005.ВзятьКодКБК(ОбщУслКИФД,"КИФД","КБК",False),"КИФД");
    if not SubStr(ОбщУслКИФД_,Length(ОбщУслКИФД_),1)="*" and not ОбщУслКИФД_="": ОбщУслКИФД_=ОбщУслКИФД_+".*"; fi;
   else 
    ОбщУслКИФД_=""; 
 fi;
 if ОбщУслКД_=ОбщУслКР_: ОбщУслКР_=""; fi; --Условие на главу
 if ОбщУслКД_=ОбщУслКИФД_: ОбщУслКИФД_=""; fi; --Условие на главу
 ОбщУслСч=Раб.Бюджет2005.Объединить(ОбщУслКД_,ОбщУслКР_,"|");
 ОбщУслСч=Раб.Бюджет2005.Объединить(ОбщУслСч,ОбщУслКИФД_,"|");
 if not ОбщУслСч="": ОбщУслСч="("+ОбщУслСч+")"; fi;
 Try
  -- Операции с доходами
  RГ4С020=-MyTurn(020,4); RГ6С020=-MyTurn(020,6);
  RГ4С030=-MyTurn(030,4); RГ6С030=-MyTurn(030,6);
  RГ4С040=-MyTurn(040,4); RГ6С040=-MyTurn(040,6);
  RГ4С050=-MyTurn(050,4); RГ6С050=-MyTurn(050,6);
  RГ4С061=-MyTurn(061,4); RГ6С061=-MyTurn(061,6);
  RГ4С062=-MyTurn(062,4); RГ6С062=-MyTurn(062,6);
  RГ4С063=-MyTurn(063,4); RГ6С063=-MyTurn(063,6);
  RГ4С080=-MyTurn(080,4); RГ6С080=-MyTurn(080,6);
  RГ4С091=-MyTurn(091,4); RГ6С091=-MyTurn(091,6);
  RГ4С092=-MyTurn(092,4); RГ6С092=-MyTurn(092,6);
  RГ4С093=-MyTurn(093,4); RГ6С093=-MyTurn(093,6);
  RГ4С100=-MyTurn(100,4); RГ6С100=-MyTurn(100,6);
  RГ4С110=-MyTurn(110,4); RГ6С110=-MyTurn(110,6);
  -- Расходы
  RГ4С161=MyTurn2(161,4); RГ6С161=MyTurn2(161,6);
  RГ4С162=MyTurn2(162,4); RГ6С162=MyTurn2(162,6);
  RГ4С163=MyTurn2(163,4); RГ6С163=MyTurn2(163,6);
  RГ4С171=MyTurn2(171,4); RГ6С171=MyTurn2(171,6);
  RГ4С172=MyTurn2(172,4); RГ6С172=MyTurn2(172,6);
  RГ4С173=MyTurn2(173,4); RГ6С173=MyTurn2(173,6);
  RГ4С174=MyTurn2(174,4); RГ6С174=MyTurn2(174,6);
  RГ4С175=MyTurn2(175,4); RГ6С175=MyTurn2(175,6);
  RГ4С176=MyTurn2(176,4); RГ6С176=MyTurn2(176,6);
  RГ4С191=MyTurn2(191,4); RГ6С191=MyTurn2(191,6);
  RГ4С192=MyTurn2(192,4); RГ6С192=MyTurn2(192,6);
  RГ4С211=MyTurn2(211,4); RГ6С211=MyTurn2(211,6);
  RГ4С212=MyTurn2(212,4); RГ6С212=MyTurn2(212,6);
  RГ4С231=MyTurn2(231,4); RГ6С231=MyTurn2(231,6);
  RГ4С232=MyTurn2(232,4); RГ6С232=MyTurn2(232,6);
  RГ4С233=MyTurn2(233,4); RГ6С233=MyTurn2(233,6);
  RГ4С241=MyTurn2(241,4); RГ6С241=MyTurn2(241,6);
  RГ4С242=MyTurn2(242,4); RГ6С242=MyTurn2(242,6);
  RГ4С243=MyTurn2(243,4); RГ6С243=MyTurn2(243,6);
  RГ4С261=MyTurn2(261,4); RГ6С261=MyTurn2(261,6);
  RГ4С262=MyTurn2(262,4); RГ6С262=MyTurn2(262,6);
  RГ4С263=MyTurn2(263,4); RГ6С263=MyTurn2(263,6);
  RГ4С270=MyTurn2(270,4); RГ6С270=MyTurn2(270,6);
  RГ4С280=MyTurn2(280,4); RГ6С280=MyTurn2(280,6);
  RГ4С292=-MyTurn2(292,4); RГ6С292=-MyTurn2(292,6);
  -- Операции с нефинансовыми активами
  RГ4С321= MyTurn(321,4); RГ6С321= MyTurn(321,6);
  RГ4С322=-MyTurn(322,4); RГ6С322=-MyTurn(322,6);
  RГ4С331= MyTurn(331,4); RГ6С331= MyTurn(331,6);
  RГ4С332=-MyTurn(332,4); RГ6С332=-MyTurn(332,6);
  RГ4С351= MyTurn(351,4); RГ6С351= MyTurn(351,6);
  RГ4С352=-MyTurn(352,4); RГ6С352=-MyTurn(352,6);
  RГ4С361= MyTurn(361,4); RГ6С361= MyTurn(361,6);
  RГ4С362=-MyTurn(362,4); RГ6С362=-MyTurn(362,6);
  RГ4С371= MyTurn(371,4); RГ6С371= MyTurn(371,6);
  RГ4С372=-MyTurn(372,4); RГ6С372=-MyTurn(372,6);
  -- Операции с финансовыми активами и обязательствами
  -- Операции с финансовыми активами
  RГ4С411= MyTurn(411,4); RГ6С411= MyTurn(411,6);
  RГ4С412=-MyTurn(412,4); RГ6С412=-MyTurn(412,6);
  RГ4С421= MyTurn(421,4); RГ6С421= MyTurn(421,6);
  RГ4С422=-MyTurn(422,4); RГ6С422=-MyTurn(422,6);
  RГ4С441= MyTurn(441,4); RГ6С441= MyTurn(441,6);
  RГ4С442=-MyTurn(442,4); RГ6С442=-MyTurn(442,6);
  RГ4С461= MyTurn(461,4); RГ6С461= MyTurn(461,6);
  RГ4С462=-MyTurn(462,4); RГ6С462=-MyTurn(462,6);
  RГ4С471= MyTurn(471,4); RГ6С471= MyTurn(471,6);
  RГ4С472=-MyTurn(472,4); RГ6С472=-MyTurn(472,6);
  RГ4С481= MyTurn(481,4); RГ6С481= MyTurn(481,6);
  RГ4С482=-MyTurn(482,4); RГ6С482=-MyTurn(482,6);
  -- Операции с обязательствами
  RГ4С521=-MyTurn(521,4); RГ6С521=-MyTurn(521,6);
  RГ4С522= MyTurn(522,4); RГ6С522= MyTurn(522,6);
  RГ4С531=-MyTurn(531,4); RГ6С531=-MyTurn(531,6);
  RГ4С532= MyTurn(532,4); RГ6С532= MyTurn(532,6);
  RГ4С541=-MyTurn(541,4); RГ6С541=-MyTurn(541,6);
  RГ4С542= MyTurn(542,4); RГ6С542= MyTurn(542,6);
 Finally
   CloseProgress;
 End;
 ОтчGUID=РАБ.ПАРАМ_ОТЧ.ОтчGUID;
 Message("Расчет завершен");
 if not Round(RГ4С290_3,Точн)=0 or not Round(RГ6С290_3,Точн)=0:
    if not Round(RГ4С290_3,Точн)=0: Template.Field="RГ4С290_3";
      |not Round(RГ6С290_3,Точн)=0: Template.Field="RГ6С290_3";
    fi;
    Message("Чистый операционный результат (стр.291-стр.292) отличается от (стр.310+стр.380)",mtError);
 fi;
end;

Proc Перерасчет(Flag:L);
var Msg:S;
 FlagНастр=False;
 ОткрытьНастр;
 if ДН>ДК: Message("Дата начада периода превышает дату окончания периода",mtError); Template.Field="ДК"; Exit; fi;
 if ДК=1.1.100: Message("Выберите отчетный период",mtError); Template.Field="ДК"; Exit; fi;
 if ОбщУслБС="": Message("Выберите условие отбора бюджетных средств",mtError); Template.Field="ОбщУслБС"; Exit; fi;
 if ОбщУслВБС="": Message("Выберите условие отбора внебюджетных средств",mtError); Template.Field="ОбщУслВБС"; Exit; fi;
 if ОбщУслСВР="": Message("Выберите условие отбора средств во временном распоряжении",mtError); Template.Field="ОбщУслСВР"; Exit; fi;
 if Flag: Msg="Параметры отчета изменились."+Chr(13); else Msg=""; fi;
 if EnqOkCancel(Msg+'Выполнить расчет ?'+chr(13)+'Набранные вручную данные будут утеряны',mtWarning)=CmOk: Расчет; fi;
end;

Proc ЗаполнитьРекв(Rec: Record);
 if Rec=nil: Rec=Раб.Бюджет2005.НашРекв; fi;
 if not Rec=nil:
    Учреждение=GetCardFieldS('Контрагент',Rec,"ПолнИмя");
    ОКПО=GetCardFieldS('Контрагент',Rec,"ОКПО");
    ФИОРук=GetCardFieldS('Контрагент',Rec,"ФИОРук");
    ФИОБух=GetCardFieldS('Контрагент',Rec,"ФИОБух");
     ОКАТО=GetCardFieldS('Контрагент',Rec,"ОКАТО");
    УЧРИНН=GetCardFieldS('Контрагент',Rec,"ИНН");
   ГлаваБК=GetCardFieldS('Контрагент',Rec,"РПО_ППП");
 fi;
end;

2--Обработчики событий полей шаблона-----
Func ПарамОтч_onEnter(FieldName: String; Iter: Integer): logical;
var Flag:L;
 if FieldName="ОбщУслБС": FieldName="БС_";
   |FieldName="ОбщУслВБС": FieldName="ВБС_";
   |FieldName="ОбщУслСВР": FieldName="СВР_";
 fi;
 Flag=РАБ.ПАРАМ_ОТЧ.Взять(FieldName,0);
 ОКПО=ОКПО; --Вызываем обновление перменных бланка!!!!
 if Flag or not ОтчGUID=РАБ.ПАРАМ_ОТЧ.ОтчGUID: ПрисвоитьТочность; Перерасчет(True); fi;
 Return False;
end;

Proc ОбщУсл_onExit(FieldName: String; Iter: Integer);
 ПарамОтч_onEnter(FieldName,Iter);
end;

Func Учреждение_OnEnter(FieldName: String; Iter: Integer): logical;
var Rec:Record;
 Rec=OpenCardFile('Контрагент','Наше');
 if rec=nil: ^False; fi;
 ЗаполнитьРекв(Rec);
^False;
end;

Func ФИО_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Rec:Record;
var tmp,FieldName:S;
 Template.HideEditor(False);
 FieldName=AsString(Template.Field);
 Rec=OpenCardFile("Сотрудники");
 if Rec=NIL: ^Cur; fi;
 tmp=GetCardFieldS("Сотрудники",Rec,"ФАМИЛИЯ")+" "+GetCardFieldS("Сотрудники",Rec,"ИНИЦИАЛЫ");
 if FieldName="ФИОРук": ФИОРук=tmp;
   |FieldName="ФИОБух": ФИОБух=tmp;
 fi;
 Return Cur ;
end;

Func Расшифр_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Field,УслСч,УслАн,Rpt:S;
var Гр,КодСтр:i;
var p1,p2:i;
 Template.HideEditor(false);
 Field=AsString(Template.Field);
 p1=Pos('Г',Field);
 p2=Pos('С',Field);
 Гр=Int(Substr(Field,p1+1,p2-p1-1));
 КодСтр=Int(Substr(Field,p2+1,255));
 if Гр=0 or КодСтр=0: ^Cur; fi;
 if Гр=4:
    if Стр_УслСчБС[КодСтр]="": ^Cur; fi;
    УслСч="("+Стр_УслСчБС[КодСтр]+")&"+ОбщУслБС;
    if Стр_УслАнБС[КодСтр]="": УслАн=""; else УслАн="("+Стр_УслАнБС[КодСтр]+")"; fi;
   |Гр=5:
    if Стр_УслСчВБС[КодСтр]="": ^Cur; fi;
    УслСч="("+Стр_УслСчВБС[КодСтр]+")&"+ОбщУслВБС;
    if Стр_УслАнВБС[КодСтр]="": УслАн=""; else УслАн="("+Стр_УслАнВБС[КодСтр]+")"; fi;
   |Гр=6:
    if Стр_УслСчСВР[КодСтр]="": ^Cur; fi;
    УслСч="("+Стр_УслСчСВР[КодСтр]+")&"+ОбщУслСВР;
    if Стр_УслАнСВР[КодСтр]="": УслАн=""; else УслАн="("+Стр_УслАнСВР[КодСтр]+")"; fi;
   |True: 
    Trace("Ошибка! Недопустимый номер графы "+Str(Гр)+" строка="+Str(КодСтр)); ^Cur;
 fi;
 УслСч=Раб.Бюджет2005.Объединить(УслСч,ОбщУслСч,"&");
 УслСч=Раб.Бюджет2005.Объединить(УслСч,УслВал,"'");
 УслАн=Раб.Бюджет2005.Объединить(УслАн,ОбщУслАн,"&");
 if НеУчитЗаклПр: УслАн=Раб.Бюджет2005.Объединить(УслАн,Раб.Парам_Отч.ИсклЗакл,"&"); fi;
 Rpt='"'+PlanVar("Общие")+'\Отчеты\Ф0503121.lst"."Расшифр';
 if УслВал="EUR": Rpt=Rpt+' ('+УслВал+')"';
   |УслВал="USD": Rpt=Rpt+' ('+УслВал+')"';
   |УслВал="РУБ": Rpt=Rpt+' ('+УслВал+')"';
   |True:         Rpt=Rpt+'"';
 fi;
 Report(Rpt,ДН,ДК,УслСч,УслАн);
  ^Cur;
end;

Func Расшифр2_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var Field,Rpt:S;
var Гр,КодСтр,n,nn:i;
var p1,p2:i;
 Template.HideEditor(false);
 Field=AsString(Template.Field);
 p1=Pos('Г',Field);
 p2=Pos('С',Field);
 Гр=Int(Substr(Field,p1+1,p2-p1-1));
 КодСтр=Int(Substr(Field,p2+1,255));
 if Гр=0 or КодСтр=0: ^Cur; fi;
 ClearVariable(Buf1);
 ClearVariable(Buf2);
 nn=0;
 if Гр=4:
    if not Стр_УслСчБС[КодСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчБС[КодСтр]+")&"+ОбщУслБС;
       if not Стр_УслАнБС[КодСтр]="": Buf2[nn]="("+Стр_УслАнБС[КодСтр]+")"; fi;
    fi;
    if not Стр_УслСчБС2[КодСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчБС2[КодСтр]+")&"+ОбщУслБС;
       if not Стр_УслАнБС2[КодСтр]="": Buf2[nn]="("+Стр_УслАнБС2[КодСтр]+")"; fi;
    fi;
   |Гр=5:
    if not Стр_УслСчВБС[КодСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчВБС[КодСтр]+")&"+ОбщУслВБС;
       if not Стр_УслАнВБС[КодСтр]="": Buf2[nn]="("+Стр_УслАнВБС[КодСтр]+")"; fi;
    fi;
    if not Стр_УслСчВБС2[КодСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчВБС2[КодСтр]+")&"+ОбщУслВБС;
       if not Стр_УслАнВБС2[КодСтр]="": Buf2[nn]="("+Стр_УслАнВБС2[КодСтр]+")"; fi;
    fi;
   |Гр=6:
    if not Стр_УслСчСВР[КодСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчСВР[КодСтр]+")&"+ОбщУслСВР;
       if not Стр_УслАнСВР[КодСтр]="": Buf2[nn]="("+Стр_УслАнСВР[КодСтр]+")"; fi;
    fi;
    if not Стр_УслСчСВР2[КодСтр]="":
       nn=nn+1;
       Buf1[nn]="("+Стр_УслСчСВР2[КодСтр]+")&"+ОбщУслСВР;
       if not Стр_УслАнСВР2[КодСтр]="": Buf2[nn]="("+Стр_УслАнСВР2[КодСтр]+")"; fi;
    fi;
   |True: 
    Trace("Ошибка! Недопустимый номер графы "+Str(Гр)+" строка="+Str(КодСтр)); ^Cur;
 fi;
 if nn=0: ^Cur; fi;
 for n=1..nn do
  Buf1[n]=Раб.Бюджет2005.Объединить(Buf1[n],ОбщУслСч,"&");
  Buf1[n]=Раб.Бюджет2005.Объединить(Buf1[n],УслВал,"'");
  Buf2[n]=Раб.Бюджет2005.Объединить(Buf2[n],ОбщУслАн,"&");
  if НеУчитЗаклПр: Buf2[n]=Раб.Бюджет2005.Объединить(Buf2[n],Раб.Парам_Отч.ИсклЗакл,"&"); fi;
 od;
 if nn=1:
    Rpt='"'+PlanVar("Общие")+'\Отчеты\Ф0503121.lst"."Расшифр';
    if УслВал="EUR": Rpt=Rpt+' ('+УслВал+')"';
      |УслВал="USD": Rpt=Rpt+' ('+УслВал+')"';
      |УслВал="РУБ": Rpt=Rpt+' ('+УслВал+')"';
      |True:         Rpt=Rpt+'"';
    fi;
    Report(Rpt,ДН,ДК,Buf1[nn],Buf2[nn]);
   else
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.Очистить;
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.ДН=ДН;
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.ДК=ДК;
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.НаимПок=AsString(Табл1.Cell(Row,2,CellContents,"",False));
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.УслВал=УслВал;
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.Показатель=Показатель;
    РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.Упр=nn;
    for n=1..nn do
     РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.УслСч[n]=Buf1[n];
     РАБ.ВСПОМ.Ф0503121_ДЕТАЛ.УслАн[n]=Buf2[n];
    od;
    OpenBlank("РАБ.ВСПОМ.Ф0503121_ДЕТАЛ",True);
 fi;
  ^Cur;
end;

Func Стр_УслСч_OnVerify(FieldName: String; Iter: Integer; Value:String): logical;
var Res: N;
 Try
  Res=Turn(Value,1.1.100,1.1.100);
 Except
  Raise;
  ^False;
 end;
 Return True;
end;

Func Стр_УслСч_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var FieldName:S;
 FieldName=AsString(Template.Field);
 Cur=Раб.КБК.Список("","","СЧ8 И");
 if Cur="": Template.HideEditor(False); ^Cur; fi;
 Cur=Раб.Бюджет2005.Объединить_Диалог(GetVariableS(FieldName),Cur,"|=ИЛИ;&~=И ИСКЛЮЧИТЬ;_=ЗАМЕНИТЬ","_");
 if Раб.Бюджет2005.HideEditor: Template.HideEditor(False); PutVariableS(FieldName,Cur); fi;
 Return  Cur;
end;

Func Стр_УслАн_OnVerify(FieldName: String; Iter: Integer; Value:String): logical;
var Res: N;
 Try
  Res=Turn("{"+Value+"}",1.1.100,1.1.100);
 Except
  Raise;
  ^False;
 end;
 Return True;
end;

Func Стр_УслАн_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var FieldName,tmp:S;
 FieldName=AsString(Template.Field);
 tmp=SubStr(FieldName,1,7)+"Сч"+SubStr(FieldName,10,255);
 tmp=GetVariableS(tmp);
 tmp=Раб.Формат.ReplaceSubstr(tmp,"+","");
 tmp=Раб.Формат.ReplaceSubstr(tmp,"-","");
 tmp=Раб.Формат.ReplaceSubstr(tmp,"/","|");
 if not tmp="": tmp=Раб.Бюджет2005.СписокСправ(tmp,0,""); fi;
 if not tmp="": tmp="("+tmp+")|~*.*"; fi;
 Cur=AnaElection(tmp);
 if Cur="": Template.HideEditor(False); ^Cur; fi;
 Cur=Раб.Бюджет2005.Объединить_Диалог(GetVariableS(FieldName),Cur,"&=И;|=ИЛИ;&~=И ИСКЛЮЧИТЬ;_=ЗАМЕНИТЬ","_");
 if Раб.Бюджет2005.HideEditor: Template.HideEditor(False); PutVariableS(FieldName,Cur); fi;

 Return  Cur;
end;

2--Обработчики объектов шаблона-----

Proc cbНеУчитЗаклПр_OnChange(Sender: String);
 Перерасчет(False);
end;

Proc btnРасчет_OnClick(Sender: String);
 if FlagНастр:
    Настр(FlagНастр);
 fi;
 Перерасчет(False);
end;

proc btnПечать_OnClick(Sender: String);
  Раб.Настр_Печать.Prn('','','RPO_0503121_000.cfg','',1);
end;

proc btnОчистить_OnClick(Sender: String);
 FlagНастр=False;
 ОткрытьНастр;
 if EnqOkCancel('Все данные будут очищены. Вы уверены ?',mtWarning)=cmOk: Очистить; fi;
end;

Proc btnЗакрыть_OnClick(Sender: String);
  Close;
end;

Proc btnНастр_OnClick(Sender: String);
 if FlagНастр: FlagНастр=False; else FlagНастр=True; fi;
 Настр(not FlagНастр);
 ОткрытьНастр;
end;

Proc btnСтандарт_OnClick(Sender: String);
 if not FlagНастр: FlagНастр=True; ОткрытьНастр; fi;
 if EnqOkCancel("Восстановить стандартные условия отбора данных ?",mtWarning)=cmCancel: Exit; fi;
 ЗадатьСтр_Усл;
 Настр(True);
 Message("Стандартные условия восстановлены");
end;

-- ***+*** ВЫГРУЗКА ***+***

Func ЕстьДанныеДляВыгрузки :Logical;
 if (Abs(RГ7С010)+Abs(RГ7С150)+Abs(RГ7С310)+Abs(RГ7С380))>0.00: ^True; fi;
 ^False;
end;

Func КлючИНН(ИНН:String) :Logical;
var П :Integer;
 П=31*Int(SubStr(ИНН,1,1))+
   29*Int(SubStr(ИНН,2,1))+
   23*Int(SubStr(ИНН,3,1))+
   19*Int(SubStr(ИНН,4,1))+
   17*Int(SubStr(ИНН,5,1))+
   13*Int(SubStr(ИНН,6,1))+
    7*Int(SubStr(ИНН,7,1))+
    5*Int(SubStr(ИНН,8,1))+
    3*Int(SubStr(ИНН,9,1));
 П=11-Int(П-11*Trunc(П/11));
 П=if(П>9:0,П);
 ^П=Int(SubStr(ИНН,10,1));
end;

Proc ЗакрытьФайлПоОшибке(numberFile:Integer; FlagCreate:Logical; RESnameFile:String);
 if FlagCreate:
   TextFileClose(numberFile);
   Message("Ошибка записи в файл '"+RESnameFile+"'!", mtError);
 else
   Message("Ошибка создания файла '"+RESnameFile+"'!", mtError);
 fi;
end;

Proc INI_Строки;
var ii :Integer;
 ii=0;
 ClearVariable(Buf1);
 ClearVariable(Buf2);
 ii=ii+1; Buf1[ii]="010"; Buf2[ii]="100";
 ii=ii+1; Buf1[ii]="020"; Buf2[ii]="110";
 ii=ii+1; Buf1[ii]="030"; Buf2[ii]="120";
 ii=ii+1; Buf1[ii]="040"; Buf2[ii]="130";
 ii=ii+1; Buf1[ii]="050"; Buf2[ii]="140";
 ii=ii+1; Buf1[ii]="060"; Buf2[ii]="150";
 ii=ii+1; Buf1[ii]="061"; Buf2[ii]="151";
 ii=ii+1; Buf1[ii]="062"; Buf2[ii]="152";
 ii=ii+1; Buf1[ii]="063"; Buf2[ii]="153";
 ii=ii+1; Buf1[ii]="080"; Buf2[ii]="160";
 ii=ii+1; Buf1[ii]="090"; Buf2[ii]="170";
 ii=ii+1; Buf1[ii]="091"; Buf2[ii]="171";
 ii=ii+1; Buf1[ii]="092"; Buf2[ii]="172";
 ii=ii+1; Buf1[ii]="093"; Buf2[ii]="173";
 ii=ii+1; Buf1[ii]="100"; Buf2[ii]="180";
 ii=ii+1; Buf1[ii]="110"; Buf2[ii]="130";
 ii=ii+1; Buf1[ii]="150"; Buf2[ii]="200";
 ii=ii+1; Buf1[ii]="160"; Buf2[ii]="210";
 ii=ii+1; Buf1[ii]="161"; Buf2[ii]="211";
 ii=ii+1; Buf1[ii]="162"; Buf2[ii]="212";
 ii=ii+1; Buf1[ii]="163"; Buf2[ii]="213";
 ii=ii+1; Buf1[ii]="170"; Buf2[ii]="220";
 ii=ii+1; Buf1[ii]="171"; Buf2[ii]="221";
 ii=ii+1; Buf1[ii]="172"; Buf2[ii]="222";
 ii=ii+1; Buf1[ii]="173"; Buf2[ii]="223";
 ii=ii+1; Buf1[ii]="174"; Buf2[ii]="224";
 ii=ii+1; Buf1[ii]="175"; Buf2[ii]="225";
 ii=ii+1; Buf1[ii]="176"; Buf2[ii]="226";
 ii=ii+1; Buf1[ii]="190"; Buf2[ii]="230";
 ii=ii+1; Buf1[ii]="191"; Buf2[ii]="231";
 ii=ii+1; Buf1[ii]="192"; Buf2[ii]="232";
 ii=ii+1; Buf1[ii]="210"; Buf2[ii]="240";
 ii=ii+1; Buf1[ii]="211"; Buf2[ii]="241";
 ii=ii+1; Buf1[ii]="212"; Buf2[ii]="242";
 ii=ii+1; Buf1[ii]="230"; Buf2[ii]="250";
 ii=ii+1; Buf1[ii]="231"; Buf2[ii]="251";
 ii=ii+1; Buf1[ii]="232"; Buf2[ii]="252";
 ii=ii+1; Buf1[ii]="233"; Buf2[ii]="253";
 ii=ii+1; Buf1[ii]="240"; Buf2[ii]="260";
 ii=ii+1; Buf1[ii]="241"; Buf2[ii]="261";
 ii=ii+1; Buf1[ii]="242"; Buf2[ii]="262";
 ii=ii+1; Buf1[ii]="243"; Buf2[ii]="263";
 ii=ii+1; Buf1[ii]="260"; Buf2[ii]="270";
 ii=ii+1; Buf1[ii]="261"; Buf2[ii]="271";
 ii=ii+1; Buf1[ii]="262"; Buf2[ii]="272";
 ii=ii+1; Buf1[ii]="263"; Buf2[ii]="273";
 ii=ii+1; Buf1[ii]="270"; Buf2[ii]="290";
 ii=ii+1; Buf1[ii]="280"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="290"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="291"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="292"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="310"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="320"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="321"; Buf2[ii]="310";
 ii=ii+1; Buf1[ii]="322"; Buf2[ii]="410";
 ii=ii+1; Buf1[ii]="330"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="331"; Buf2[ii]="320";
 ii=ii+1; Buf1[ii]="332"; Buf2[ii]="420";
 ii=ii+1; Buf1[ii]="350"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="351"; Buf2[ii]="330";
 ii=ii+1; Buf1[ii]="352"; Buf2[ii]="430";
 ii=ii+1; Buf1[ii]="360"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="361"; Buf2[ii]="340";
 ii=ii+1; Buf1[ii]="362"; Buf2[ii]="440";
 ii=ii+1; Buf1[ii]="370"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="371"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="372"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="380"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="390"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="410"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="411"; Buf2[ii]="510";
 ii=ii+1; Buf1[ii]="412"; Buf2[ii]="610";
 ii=ii+1; Buf1[ii]="420"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="421"; Buf2[ii]="520";
 ii=ii+1; Buf1[ii]="422"; Buf2[ii]="620";
 ii=ii+1; Buf1[ii]="440"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="441"; Buf2[ii]="530";
 ii=ii+1; Buf1[ii]="442"; Buf2[ii]="630";
 ii=ii+1; Buf1[ii]="460"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="461"; Buf2[ii]="540";
 ii=ii+1; Buf1[ii]="462"; Buf2[ii]="640";
 ii=ii+1; Buf1[ii]="470"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="471"; Buf2[ii]="550";
 ii=ii+1; Buf1[ii]="472"; Buf2[ii]="650";
 ii=ii+1; Buf1[ii]="480"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="481"; Buf2[ii]="560";
 ii=ii+1; Buf1[ii]="482"; Buf2[ii]="660";
 ii=ii+1; Buf1[ii]="510"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="520"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="521"; Buf2[ii]="710";
 ii=ii+1; Buf1[ii]="522"; Buf2[ii]="810";
 ii=ii+1; Buf1[ii]="530"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="531"; Buf2[ii]="720";
 ii=ii+1; Buf1[ii]="532"; Buf2[ii]="820";
 ii=ii+1; Buf1[ii]="540"; Buf2[ii]="";
 ii=ii+1; Buf1[ii]="541"; Buf2[ii]="730";
 ii=ii+1; Buf1[ii]="542"; Buf2[ii]="830";
end;

Func ЗаписатьСтрокуРаздела(Iter:Integer) :String;
var SUM4, SUM5, SUM6, SUM7 :Numeric;
var RES :String;
 RES="";
 if Iter>0:
   Try SUM4=GetVariableN("RГ4С"+Buf1[Iter]); Except SUM4=0.00; end;
   Try SUM5=GetVariableN("RГ5С"+Buf1[Iter]); Except SUM5=0.00; end;
   Try SUM6=GetVariableN("RГ6С"+Buf1[Iter]); Except SUM6=0.00; end;
   Try SUM7=GetVariableN("RГ7С"+Buf1[Iter]); Except SUM7=0.00; end;
   if (Abs(SUM4)+Abs(SUM5)+Abs(SUM6)+Abs(SUM7))>0.00:
     RES=Buf1[Iter]+"|"+if(Buf2[Iter]<>"", Buf2[Iter], "000")+"|";
     RES=RES+if(SUM4<>0.00, Str(SUM4, 2), "0")+"|";
     RES=RES+if(SUM5<>0.00, Str(SUM5, 2), "0")+"|";
     RES=RES+if(SUM6<>0.00, Str(SUM6, 2), "0")+"|";
     RES=RES+if(SUM7<>0.00, Str(SUM7, 2), "0");
   else
     if flgВыгружатьВсеСтроки: RES=Buf1[Iter]+"|"+if(Buf2[Iter]<>"", Buf2[Iter], "000")+"|0|0|0|0"; fi;
   fi;
 fi;
 ^RES;
end;

Proc Экспорт_TXT_ДФ; -- выгрузка в формат департамента финансов г.Москвы
var Путь, nameFile, Value :String;
var FS, num, ii :Integer;
var FlagCreate :Logical;

 if Year(ДК)<2000: Message("Дата отчета должна быть позже 2000 года.", mtWarning); Template.Field="ДК"; Exit; fi;
 if Day(ДК)<>1: Message("Для выгрузки в файл требуется отчет расчитанный на '1' число.", mtWarning); Template.Field="ДК"; Exit; fi;
 if УЧРИНН="" or not КлючИНН(УЧРИНН): Message("Некорректный ИНН.^MПроверьте реквизиты", mtError); Template.Field="Учреждение"; Exit; fi;
 if not ЕстьДанныеДляВыгрузки: Message("Нет данных для выгрузки.^MПредварительно сделайте расчет формы.", mtWarning); Template.Object="btnРасчет"; Exit; fi;
 --
 if ChooseFolder(Путь, "Выберите папку для сохранения файла выгрузки...")=cmOk:

   INI_Строки;
   nameFile=Путь+"121"+Format("%.2d", Mon(AddMon(ДК, -1)))+Format("%.2d", Year(AddMon(ДК, -1))-2000)+"m1.txt";
   Try
     Try if ExistFile(nameFile): DeleteFile(nameFile); fi; Except end;
     FlagCreate=False;
     FS=TextFileCreate(nameFile);
     FlagCreate=True;
     -- Записываем заголовок
     TextFileWriteLn(FS, "ИНН="+УЧРИНН);
     TextFileWriteLn(FS, "ДАТА="+DateToString(ДК));
     TextFileWriteLn(FS, "КОДФ=121");
     -- Записываем данные 1 раздела
     TextFileWriteLn(FS, "ТБ=01");
     num=LengthOfArray(Buf1);
     if num>0:
       for ii=1 to num do
         Value=ЗаписатьСтрокуРаздела(ii);
         if Value<>"": TextFileWriteLn(FS, Value); fi;
      od;
     fi;
     TextFileClose(FS);
     ClearVariable(Buf1);
     ClearVariable(Buf2);
     if ExistFile(nameFile): if EnqOkCancel("Открыть созданный файл выгрузки?", mtInformation)=cmOK: OpenEditor(nameFile); fi; fi;
   Except
     ЗакрытьФайлПоОшибке(FS, FlagCreate, nameFile);
     Raise;
   end;

 fi; --ChooseFolder

end;

Func TimeToHMSstring_adv(valTime:Integer; valSep:String) :String;
var ihh, imm, icc :Integer;
var shh, smm, scc :String;
 shh=''; smm=''; scc='';
 ihh=Int(Trunc(valTime/3600));
 imm=Int(Trunc((valTime-ihh*3600)/60));
 icc=valTime-ihh*3600-imm*60;
 shh=Format("%.2d", ihh);
 smm=Format("%.2d", imm);
 scc=Format("%.2d", icc);
 ^(shh+valSep+smm+valSep+scc);
end;

Func Цвет(r:Integer; g:Integer; b:Integer) :Integer; -- цвет по стандарту ТБ 6.9
 ^(256*256*b+256*g+r);
end;

Proc XLS_НарисоватьСтрокуЗаголовковТаблицы(objSheet:AutoObject; xlsRow:Integer; Счетчик:Integer);
 ProgressPos(Счетчик);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 01, "Наименование показателя");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 01, xlsRow, 02);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 01, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 03, "Код"+Chr(10)+"строки");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 03, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 04, "Код по"+Chr(10)+"КОСГУ");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 04, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 05, "Бюджетная"+Chr(10)+"деятельность");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 05, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 06, "Приносящая"+Chr(10)+"доход"+Chr(10)+"деятельность");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 06, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 07, "Средства"+Chr(10)+"во временном"+Chr(10)+"распоряжении");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 07, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 08, "ИТОГО");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 08, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
 ProgressPos(Счетчик+1);
 xlsRow=xlsRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 01, "1");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 01, xlsRow, 02);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 01, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 03, "2");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 03, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 04, "3");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 04, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 05, "4");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 05, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 06, "5");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 06, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 07, "6");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 07, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 08, "7");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 08, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
 РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(objSheet, xlsRow, 1, xlsRow, 8, True);
end;

Proc XLS_СформироватьСтрокуОтчета( objSheet:AutoObject;
                                   ТомЧисле:Logical;
                                     xlsRow:Integer;
                                   local_TS:String;
                                   local_DS:String;
                                   автоРовн:Logical;
                                    сумГР04:Numeric;
                                    сумГР05:Numeric;
                                    сумГР06:Numeric;
                                    сумГР07:Numeric;
                                  Заголовки:Logical;
                                  кодСтроки:String;
                                    IndtRow:Logical;
                                  код_КОСГУ:String;
                                  стрЖирным:Logical;
                                    nameRow:String);

 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow, 01, nameRow);
 if автоРовн: 
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 01, РАБ.EXCEL.xlLeft, if(IndtRow, 2, 0), РАБ.EXCEL.xlCenter, True, "Arial", if(IndtRow, 8, 9), 0, True, стрЖирным, False, 0, True);
   РАБ.EXCEL.АвтоВыравниваниеСтрок(objSheet, xlsRow, xlsRow);
 fi;
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 01, xlsRow, 02);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 01, РАБ.EXCEL.xlLeft, if(IndtRow, 2, 0), РАБ.EXCEL.xlCenter, True, "Arial", if(IndtRow, 8, 9), 0, True, стрЖирным, False, 0, True);
 if ТомЧисле:
   РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow+1, 01, "в том числе");
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow+1, 01, xlsRow+1, 02);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow+1, 01, РАБ.EXCEL.xlLeft,   1, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, True,  0, True);
   РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow  , 03, кодСтроки);
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 03, xlsRow+1, 03);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow  , 03, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
   РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow  , 04, код_КОСГУ);
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 04, xlsRow+1, 04);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow  , 04, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
   if  сумГР04<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 05, сумГР04, local_DS, local_TS); fi;
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 05, xlsRow+1, 05);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 05, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, if(Заголовки, Цвет(204,255,204), 0), if(Заголовки, False, True));
   if  сумГР05<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 06, сумГР05, local_DS, local_TS); fi;
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 06, xlsRow+1, 06);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 06, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, if(Заголовки, Цвет(204,255,204), 0), if(Заголовки, False, True));
   if  сумГР06<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 07, сумГР06, local_DS, local_TS); fi;
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 07, xlsRow+1, 07);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 07, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, if(Заголовки, Цвет(204,255,204), 0), if(Заголовки, False, True));
   if  сумГР07<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 08, сумГР07, local_DS, local_TS); fi;
   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, xlsRow, 08, xlsRow+1, 08);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 08, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, Цвет(204,255,204), False);
 else
   РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow  , 03, кодСтроки);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow  , 03, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
   РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, xlsRow  , 04, код_КОСГУ);
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow  , 04, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
   if  сумГР04<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 05, сумГР04, local_DS, local_TS); fi;
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 05, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, if(Заголовки, Цвет(204,255,204), 0), if(Заголовки, False, True));
   if  сумГР05<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 06, сумГР05, local_DS, local_TS); fi;
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 06, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, if(Заголовки, Цвет(204,255,204), 0), if(Заголовки, False, True));
   if  сумГР06<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 07, сумГР06, local_DS, local_TS); fi;
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 07, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, if(Заголовки, Цвет(204,255,204), 0), if(Заголовки, False, True));
   if  сумГР07<>0.00: РАБ.EXCEL.ЗаписатьЯчейкуЧисло(objSheet, xlsRow, 08, сумГР07, local_DS, local_TS); fi;
   РАБ.EXCEL.ФорматироватьЯчейку(objSheet, xlsRow, 08, РАБ.EXCEL.xlRight,    0, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, стрЖирным, False, Цвет(204,255,204), False);
 fi;
end;

--Proc Экспорт_Excel;
--var xlsApp, xlsBooks, xlsBook, xlsSheets, xlsSheet, xlsRng :AutoObject;
--var localTS, localDS, xlNameFile, xlNameFolder, ExcelVersion, Value :String;
--var начало, kol, max_kol, offsetRow, len, ii :Integer;
--var NoError, rusExcel :Logical;

-- if not ЕстьДанныеДляВыгрузки: Message("Нет данных для выгрузки.^MПредварительно сделайте расчет формы.", mtWarning); Template.Object="btnРасчет"; Exit; fi;
-- NoError=True;
-- offsetRow=1;
-- kol=0;
-- if ChooseFolder(xlNameFolder, "Выберите папку для сохранения файла экспорта...")=cmOK:
--   начало=Time;
--   xlNameFile=xlNameFolder+"ExportExcel0503121_"+Format("%.4d", Year(ToDay))+Format("%.2d", Mon(ToDay))+Format("%.2d", Day(ToDay))+"_"+TimeToHMSstring_adv(Time, "")+".xls";
--   if ExistFile(xlNameFile): DeleteFile(xlNameFile); fi;
--   if ExistFile(xlNameFile+"x"): DeleteFile(xlNameFile+"x"); fi; -- для версий Офиса 2007 или старше
--   if NoError:
--     xlsApp=CreateAutoObject('Excel.Application');
--     Try
--       ExcelVersion=asString(xlsApp.Version);
--       if Int(ExcelVersion)>=12 or ExcelVersion="12.0": xlNameFile=xlNameFile+"x"; fi;
--       ShowProgress(0, "Подготовка...");
--       Try
--         xlsApp.EnableEvents=False;   -- отключить события
--         xlsApp.AutomationSecurity=3; -- отключить макросы
--         --
--         rusExcel=РАБ.EXCEL.РусскийExcel(xlsApp);
--         localDS=asString(xlsApp.International[РАБ.EXCEL.xlDecimalSeparator]);
--         localTS=asString(xlsApp.International[РАБ.EXCEL.xlThousandsSeparator]);
--         --
--         xlsBooks=AsAutoObject(xlsApp.Workbooks); -- получить объект Workbooks
--         Try
--           xlsBook=AsAutoObject(xlsBooks.Add); -- добавить книгу
--           Try
--             Try
--               xlsSheets=AsAutoObject(xlsBook.Sheets);
--               Try
--                 max_kol=asInteger(xlsSheets.Count);
--                 if max_kol<2:
--                   len=2-max_kol;
--                   Try
--                     for ii=1 to len do Try xlsSheet=AsAutoObject(xlsSheets.Add); Finally ClearVariable(xlsSheet); end; od;
--                   Except
--                     ClearVariable(xlsSheet);
--                     Raise;
--                   end;
--                 fi;
--                 kol=kol+1;
--                 xlsSheet=AsAutoObject(xlsBook.Worksheets[kol]);
--                 Try
--                   xlsSheet.Name = "0503121";
--                   ShowProgress(14, "Формируем титул...");
--                   ProgressPos(1);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 01, 45.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 02, 25.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 03, 06.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 04, 08.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 05, 12.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 06, 12.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 07, 12.0);
--                   РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 08, 12.0);
--                   ProgressPos(2);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "ОТЧЕТ О ФИНАНСОВЫХ РЕЗУЛЬТАТАХ ДЕЯТЕЛЬНОСТИ");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 06);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlRight, 12, РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, True, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 07, "КОДЫ");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, False, False, 0, True);
--                   ProgressPos(3);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 05, "Форма по ОКУД");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 05, offsetRow, 06);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 05, РАБ.EXCEL.xlRight,  1, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 07, "0503121");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Courier New", 10, 0, True, False, False, 0, True);
--                   ProgressPos(4);
--                   offsetRow=offsetRow+1;
--                   Value="на "+Format("%.2d", Day(ДК))+" "+Месяца(Mon(ДК))+" "+Format("%.4d", Year(ДК))+" г.";
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, Value);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 04);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, True, False, 0, True);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow, 2, offsetRow, 4, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 06, "Дата");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 06, РАБ.EXCEL.xlRight,  1, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 07, DateToString(ДК));
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(5);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Главный распорядитель, распорядитель, получатель бюджетных средств,");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 05);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(6);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "главный администратор, администратор доходов бюджета,");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 05);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(7);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "главный администратор, администратор источников");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 06, "по ОКПО");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 06, РАБ.EXCEL.xlRight,  1, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow-2, 07, ОКПО);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow-2, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow-2, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlBottom, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(8);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "финансирования дефицита бюджета");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow-1, 02, УЧРЕЖДЕНИЕ);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow-1, 02, offsetRow, 05);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow-1, 02, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, True, False, 0, True);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow, 02, offsetRow, 05, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 06, "Глава по БК");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 06, РАБ.EXCEL.xlRight, 1, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 07, ГЛАВАБК);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(9);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Наименование бюджета");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, НАИМБЮДЖ);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 05);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlLeft,  0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, True, False, 0, True);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow, 02, offsetRow, 05, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 06, "по ОКАТО");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 06, РАБ.EXCEL.xlRight, 1, РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 07, ОКАТО);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(10);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Периодичность:");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, "годовая");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(11);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Единица измерения:");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, "РУБ.");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlLeft,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 07, "383");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 07, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 07, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   ProgressPos(12);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-9, 07, offsetRow, 08, True,  True,  True,  True, True,  True,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-8, 07, offsetRow, 08, True,  True,  True,  True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
--                   ProgressPos(13);
--                   РАБ.EXCEL.PrintSetup_ЧБ_Поля10(xlsApp, xlsSheet, False, 0, 0, 0, 0, True, False, True, 100);
--                   ProgressPos(14);
--                   --
--                   ShowProgress(117, "Формируем таблицу...");
--                   offsetRow=offsetRow+2;
--                   XLS_НарисоватьСтрокуЗаголовковТаблицы(xlsSheet, offsetRow, 1);
--                   ProgressPos(3);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С010, RГ5С010, RГ6С010, RГ7С010,  True, "010", False, "100",  True, "Доходы (стр.020+стр.030+стр.040+стр.050+стр.060+стр.080+стр.090+стр.100+стр.110)");
--                   РАБ.EXCEL.УстановитьРазмерШрифтаЧастиСлова(xlsSheet, offsetRow, 01, 08, 72, 08);
--                   ProgressPos(4);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С020, RГ5С020, RГ6С020, RГ7С020, False, "020", False, "110", False, "Налоговые доходы");
--                   ProgressPos(5);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С030, RГ5С030, RГ6С030, RГ7С030, False, "030", False, "120", False, "Доходы от собственности");
--                   ProgressPos(6);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С040, RГ5С040, RГ6С040, RГ7С040, False, "040", False, "130", False, "Доходы от оказания платных услуг");
--                   ProgressPos(7);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С050, RГ5С050, RГ6С050, RГ7С050, False, "050", False, "140", False, "Суммы принудительного изъятия");
--                   ProgressPos(8);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С060, RГ5С060, RГ6С060, RГ7С060,  True, "060", False, "150", False, "Безвозмездные поступления от бюджетов");
--                   ProgressPos(9);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С061, RГ5С061, RГ6С061, RГ7С061, False, "061",  True, "151", False, "поступления от других бюджетов бюджетной системы Российской Федерации");
--                   ProgressPos(10);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С062, RГ5С062, RГ6С062, RГ7С062, False, "062",  True, "152", False, "поступления от наднациональных организаций и правительств иностранных государств");
--                   ProgressPos(11);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С063, RГ5С063, RГ6С063, RГ7С063, False, "063",  True, "153", False, "поступления от международных финансовых организаций");
--                   ProgressPos(12);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С080, RГ5С080, RГ6С080, RГ7С080, False, "080", False, "160", False, "Взносы на социальные нужды");
--                   ProgressPos(13);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С090, RГ5С090, RГ6С090, RГ7С090,  True, "090", False, "170", False, "Доходы от операций с активами");
--                   ProgressPos(14);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С091, RГ5С091, RГ6С091, RГ7С091, False, "091",  True, "171", False, "доходы от переоценки активов");
--                   ProgressPos(15);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С092, RГ5С092, RГ6С092, RГ7С092, False, "092",  True, "172", False, "доходы от реализиции активов");
--                   ProgressPos(16);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С093, RГ5С093, RГ6С093, RГ7С093, False, "093",  True, "173", False, "чрезвычайные доходы от операций с активами");
--                   ProgressPos(17);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С100, RГ5С100, RГ6С100, RГ7С100, False, "100", False, "180", False, "Прочие доходы");
--                   ProgressPos(18);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С110, RГ5С110, RГ6С110, RГ7С110, False, "110", False, "130", False, "Доходы будущих периодов");
--                   ProgressPos(19);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-19, 1, offsetRow, 8, False,  True,  False,  True,  True ,  True ,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-17, 3, offsetRow, 8, True ,  True,  True ,  True,  False,  False,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-12, 01, offsetRow-08, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-06, 01, offsetRow-02, 02, False, False, False, False, True, True, False, False);
--                   ProgressPos(20);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Форма 0503121 с.2");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow,   01, РАБ.EXCEL.xlRight, 1, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.РазрывСтраницы(xlsSheet, offsetRow);
--                   offsetRow=offsetRow+1;
--                   XLS_НарисоватьСтрокуЗаголовковТаблицы(xlsSheet, offsetRow, 21);
--                   ProgressPos(23);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С150, RГ5С150, RГ6С150, RГ7С150,  True, "150", False, "200",  True, "Расходы (стр.160+стр.170+стр.190+стр.210+стр.230+стр.240+стр.260+стр.270+стр.280)");
--                   РАБ.EXCEL.УстановитьРазмерШрифтаЧастиСлова(xlsSheet, offsetRow, 01, 09, 72, 08);
--                   ProgressPos(24);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С160, RГ5С160, RГ6С160, RГ7С160,  True, "160", False, "210", False, "Оплата труда и начисления на выплаты по оплате  труда");
--                   ProgressPos(25);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С161, RГ5С161, RГ6С161, RГ7С161, False, "161",  True, "211", False, "заработная плата");
--                   ProgressPos(26);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С162, RГ5С162, RГ6С162, RГ7С162, False, "162",  True, "212", False, "прочие выплаты");
--                   ProgressPos(27);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С163, RГ5С163, RГ6С163, RГ7С163, False, "163",  True, "213", False, "начисления на выплаты по оплате труда");
--                   ProgressPos(28);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С170, RГ5С170, RГ6С170, RГ7С170,  True, "170", False, "220", False, "Приобретение работ, услуг");
--                   ProgressPos(29);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С171, RГ5С171, RГ6С171, RГ7С171, False, "171",  True, "221", False, "услуг связи");
--                   ProgressPos(30);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С172, RГ5С172, RГ6С172, RГ7С172, False, "172",  True, "222", False, "транспортные услуги");
--                   ProgressPos(31);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С173, RГ5С173, RГ6С173, RГ7С173, False, "173",  True, "223", False, "коммунальные услуги");
--                   ProgressPos(32);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С174, RГ5С174, RГ6С174, RГ7С174, False, "174",  True, "224", False, "арендная плата за пользование имуществом");
--                   ProgressPos(33);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С175, RГ5С175, RГ6С175, RГ7С175, False, "175",  True, "225", False, "работы, услуги по содержанию имущества");
--                   ProgressPos(34);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С176, RГ5С176, RГ6С176, RГ7С176, False, "176",  True, "226", False, "прочие работы, услуги");
--                   ProgressPos(35);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С190, RГ5С190, RГ6С190, RГ7С190,  True, "190", False, "230", False, "Обслуживание государственного (муниципального) долга");
--                   ProgressPos(36);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С191, RГ5С191, RГ6С191, RГ7С191, False, "191",  True, "231", False, "обслуживание внутреннего долга");
--                   ProgressPos(37);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С192, RГ5С192, RГ6С192, RГ7С192, False, "192",  True, "232", False, "обслуживание внешнего долга");
--                   ProgressPos(38);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С210, RГ5С210, RГ6С210, RГ7С210,  True, "210", False, "240", False, "Безвозмездные перечисления организациям");
--                   ProgressPos(39);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С211, RГ5С211, RГ6С211, RГ7С211, False, "211",  True, "241", False, "безвозмездные перечисления государственным и муниципальным  организациям");
--                   ProgressPos(40);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С212, RГ5С212, RГ6С212, RГ7С212, False, "212",  True, "242", False, "безвозмездные перечисления организациям, за исключением государственных и муниципальных организаций");
--                   ProgressPos(41);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С230, RГ5С230, RГ6С230, RГ7С230,  True, "230", False, "250", False, "Безвозмездные перечисления бюджетам");
--                   ProgressPos(42);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С231, RГ5С231, RГ6С231, RГ7С231, False, "231",  True, "251", False, "перечисления другим бюджетам бюджетной системы Российской Федерации");
--                   ProgressPos(43);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С232, RГ5С232, RГ6С232, RГ7С232, False, "232",  True, "252", False, "перечисления наднациональным организациям и правительствам иностранных государств");
--                   ProgressPos(44);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С233, RГ5С233, RГ6С233, RГ7С233, False, "233",  True, "253", False, "перечисления международным организациям");
--                   ProgressPos(45);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-28, 1, offsetRow, 8, False,  True,  False,  True,  True ,  True ,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-26, 3, offsetRow, 8, True ,  True,  True ,  True,  False,  False,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-25, 01, offsetRow-21, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-20, 01, offsetRow-13, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-12, 01, offsetRow-09, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-08, 01, offsetRow-05, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-04, 01, offsetRow-00, 02, False, False, False, False, True, True, False, False);
--                   ProgressPos(46);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Форма 0503121 с.3");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow,   01, РАБ.EXCEL.xlRight, 1, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.РазрывСтраницы(xlsSheet, offsetRow);
--                   offsetRow=offsetRow+1;
--                   XLS_НарисоватьСтрокуЗаголовковТаблицы(xlsSheet, offsetRow, 47);
--                   ProgressPos(49);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С240, RГ5С240, RГ6С240, RГ7С240,  True, "240", False, "260", False, "Социальное обеспечение");
--                   ProgressPos(50);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С241, RГ5С241, RГ6С241, RГ7С241, False, "241",  True, "261", False, "пенсии, пособия и выплаты по пенсионному, социальному и медицинскому страхованию населения");
--                   ProgressPos(51);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С242, RГ5С242, RГ6С242, RГ7С242, False, "242",  True, "262", False, "пособия по социальной помощи населению");
--                   ProgressPos(52);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С243, RГ5С243, RГ6С243, RГ7С243, False, "243",  True, "263", False, "пенсии, пособия, выплачиваемые организациями сектора государственного управления");
--                   ProgressPos(53);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С260, RГ5С260, RГ6С260, RГ7С260,  True, "260", False, "270", False, "Расходы по операциям с активами");
--                   ProgressPos(54);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С261, RГ5С261, RГ6С261, RГ7С261, False, "261",  True, "271", False, "амортизация основных средств и нематериальных активов");
--                   ProgressPos(55);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С262, RГ5С262, RГ6С262, RГ7С262, False, "262",  True, "272", False, "расходование материальных запасов");
--                   ProgressPos(56);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С263, RГ5С263, RГ6С263, RГ7С263, False, "263",  True, "273", False, "чрезвычайные расходы по операциям с активами");
--                   ProgressPos(57);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С270, RГ5С270, RГ6С270, RГ7С270, False, "270", False, "290", False, "Прочие расходы");
--                   ProgressPos(58);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С280, RГ5С280, RГ6С280, RГ7С280, False, "280", False, "",    False, "Расходы будущих периодов");
--                   ProgressPos(59);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С290, RГ5С290, RГ6С290, RГ7С290,  True, "290", False, "",     True, "Чистый операционный результат (стр.291-стр.292), (стр.310+стр.380)");
--                   ProgressPos(60);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С291, RГ5С291, RГ6С291, RГ7С291,  True, "291", False, "",    False, "Операционный результат до налогообложения (стр.010-стр.150)");
--                   ProgressPos(61);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С292, RГ5С292, RГ6С292, RГ7С292, False, "292", False, "",    False, "Налог на прибыль");
--                   ProgressPos(62);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С310, RГ5С310, RГ6С310, RГ7С310,  True, "310", False, "",     True, "Операции с нефинансовыми активами (стр.320+стр.330+стр.350+стр.360)");
--                   ProgressPos(63);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С320, RГ5С320, RГ6С320, RГ7С320,  True, "320", False, "",    False, "Чистое поступление основных средств");
--                   ProgressPos(64);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С321, RГ5С321, RГ6С321, RГ7С321, False, "321",  True, "310", False, "увеличение стоимости основных средств");
--                   ProgressPos(65);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С322, RГ5С322, RГ6С322, RГ7С322, False, "322",  True, "410", False, "уменьшение стоимости основных средств");
--                   ProgressPos(66);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С330, RГ5С330, RГ6С330, RГ7С330,  True, "330", False, "",    False, "Чистое поступление нематериальных активов");
--                   ProgressPos(67);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С331, RГ5С331, RГ6С331, RГ7С331, False, "331",  True, "320", False, "увеличение стоимости нематериальных активов");
--                   ProgressPos(68);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С332, RГ5С332, RГ6С332, RГ7С332, False, "332",  True, "420", False, "уменьшение стоимости нематериальных активов");
--                   ProgressPos(69);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С350, RГ5С350, RГ6С350, RГ7С350,  True, "350", False, "",    False, "Чистое поступление непроизведенных активов");
--                   ProgressPos(70);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С351, RГ5С351, RГ6С351, RГ7С351, False, "351",  True, "330", False, "увеличение стоимости непроизведенных активов");
--                   ProgressPos(71);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С352, RГ5С352, RГ6С352, RГ7С352, False, "352",  True, "430", False, "уменьшение стоимости непроизведенных активов");
--                   ProgressPos(72);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С360, RГ5С360, RГ6С360, RГ7С360,  True, "360", False, "",    False, "Чистое поступление материальных запасов");
--                   ProgressPos(73);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С361, RГ5С361, RГ6С361, RГ7С361, False, "361",  True, "340", False, "увеличение стоимости материальных запасов");
--                   ProgressPos(74);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С362, RГ5С362, RГ6С362, RГ7С362, False, "362",  True, "440", False, "уменьшение стоимости материальных запасов");
--                   ProgressPos(75);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С370, RГ5С370, RГ6С370, RГ7С370,  True, "370", False, "",    False, "Чистое изменение затрат на изгтовление готовой продукции, выполнение работ, услуг");
--                   ProgressPos(76);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С371, RГ5С371, RГ6С371, RГ7С371, False, "371",  True, "X",   False, "увеличение затрат");
--                   ProgressPos(77);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С372, RГ5С372, RГ6С372, RГ7С372, False, "372",  True, "X",   False, "уменьшение затрат");
--                   ProgressPos(78);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-37, 1, offsetRow, 8, False,  True,  False,  True,  True ,  True ,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-35, 3, offsetRow, 8, True ,  True,  True ,  True,  False,  False,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-35, 01, offsetRow-31, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-30, 01, offsetRow-26, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-19, 01, offsetRow-16, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-15, 01, offsetRow-12, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-11, 01, offsetRow-08, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-07, 01, offsetRow-04, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-03, 01, offsetRow-00, 02, False, False, False, False, True, True, False, False);
--                   ProgressPos(79);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Форма 0503121 с.4");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow,   01, РАБ.EXCEL.xlRight, 1, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.РазрывСтраницы(xlsSheet, offsetRow);
--                   offsetRow=offsetRow+1;
--                   XLS_НарисоватьСтрокуЗаголовковТаблицы(xlsSheet, offsetRow, 80);
--                   ProgressPos(82);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С380, RГ5С380, RГ6С380, RГ7С380,  True, "380", False, "",     True, "Операции с финансовыми активами и обязательствами (стр.390-стр.510)");
--                   ProgressPos(83);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С390, RГ5С390, RГ6С390, RГ7С390,  True, "390", False, "",     True, "Операции с финансовыми активами (стр.410+стр.420+стр.440+стр.460+стр.470+стр.480)");
--                   РАБ.EXCEL.УстановитьРазмерШрифтаЧастиСлова(xlsSheet, offsetRow, 01, 33, 48, 08);
--                   ProgressPos(84);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С410, RГ5С410, RГ6С410, RГ7С410,  True, "410", False, "",    False, "Чистое поступление средств на счета бюджетов");
--                   ProgressPos(85);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С411, RГ5С411, RГ6С411, RГ7С411, False, "411",  True, "510", False, "поступления на счета бюджетов");
--                   ProgressPos(86);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С412, RГ5С412, RГ6С412, RГ7С412, False, "412",  True, "610", False, "выбытия со счетов бюджетов");
--                   ProgressPos(87);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS,  True, RГ4С420, RГ5С420, RГ6С420, RГ7С420,  True, "420", False, "",    False, "Чистое поступление ценных бумаг, кроме акций и иных форм участия в капитале");
--                   ProgressPos(88);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С421, RГ5С421, RГ6С421, RГ7С421, False, "421",  True, "520", False, "увеличение стоимости ценных бумаг, кроме акций и иных форм участия в капитале");
--                   ProgressPos(89);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С422, RГ5С422, RГ6С422, RГ7С422, False, "422",  True, "620", False, "уменьшение стоимости ценных бумаг, кроме акций и иных форм участия в капитале");
--                   ProgressPos(90);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С440, RГ5С440, RГ6С440, RГ7С440,  True, "440", False, "",    False, "Чистое поступление акций и иных форм участия в капитале");
--                   ProgressPos(91);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С441, RГ5С441, RГ6С441, RГ7С441, False, "441",  True, "530", False, "увеличение стоимости акций и иных форм участия в капитале");
--                   ProgressPos(92);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С442, RГ5С442, RГ6С442, RГ7С442, False, "442",  True, "630", False, "уменьшение стоимости акций и иных форм участия в капитале");
--                   ProgressPos(93);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С460, RГ5С460, RГ6С460, RГ7С460,  True, "460", False, "",    False, "Чистое представление бюджетных кредитов");
--                   ProgressPos(94);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С461, RГ5С461, RГ6С461, RГ7С461, False, "461",  True, "540", False, "увеличение задолженности по бюджетным кредитам");
--                   ProgressPos(95);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С462, RГ5С462, RГ6С462, RГ7С462, False, "462",  True, "640", False, "уменьшение задолженности по бюджетным кредитам");
--                   ProgressPos(96);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С470, RГ5С470, RГ6С470, RГ7С470,  True, "470", False, "",    False, "Чистое поступление иных финансовых активов");
--                   ProgressPos(97);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С471, RГ5С471, RГ6С471, RГ7С471, False, "471",  True, "550", False, "увеличение стоимости депозитов, иных финансовых активов");
--                   ProgressPos(98);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С472, RГ5С472, RГ6С472, RГ7С472, False, "472",  True, "650", False, "уменьшение стоимости депозитов, иных финансовых активов");
--                   ProgressPos(99);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS,  True, RГ4С480, RГ5С480, RГ6С480, RГ7С480,  True, "480", False, "",    False, "Чистое увеличение прочей дебиторской задолженности (кроме бюджетных кредитов)");
--                   ProgressPos(100);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С481, RГ5С481, RГ6С481, RГ7С481, False, "481",  True, "560", False, "увеличение прочей дебиторской задолженности");
--                   ProgressPos(101);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С482, RГ5С482, RГ6С482, RГ7С482, False, "482",  True, "660", False, "уменьшение прочей дебиторской задолженности");
--                   ProgressPos(102);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-27, 1, offsetRow, 8, False,  True,  False,  True,  True ,  True ,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-25, 3, offsetRow, 8, True ,  True,  True ,  True,  False,  False,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-23, 01, offsetRow-20, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-19, 01, offsetRow-16, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-15, 01, offsetRow-12, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-11, 01, offsetRow-08, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-07, 01, offsetRow-04, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-03, 01, offsetRow-00, 02, False, False, False, False, True, True, False, False);
--                   ProgressPos(103);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Форма 0503121 с.5");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 01, offsetRow, 08);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow,   01, РАБ.EXCEL.xlRight, 1, РАБ.EXCEL.xlCenter, True, "Arial", 07, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.РазрывСтраницы(xlsSheet, offsetRow);
--                   offsetRow=offsetRow+1;
--                   XLS_НарисоватьСтрокуЗаголовковТаблицы(xlsSheet, offsetRow, 104);
--                   ProgressPos(106);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С510, RГ5С510, RГ6С510, RГ7С510,  True, "510", False, "",     True, "Операции с обязательствами (стр.520+стр.530+стр.540)");
--                   ProgressPos(107);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS,  True, RГ4С520, RГ5С520, RГ6С520, RГ7С520,  True, "520", False, "",    False, "Чистое увеличение задолженности по внутреннему государственному (муниципальному) долгу");
--                   ProgressPos(108);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С521, RГ5С521, RГ6С521, RГ7С521, False, "521",  True, "710", False, "увеличение задолженности по внутреннему государственному (муниципальному) долгу");
--                   ProgressPos(109);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS,  True, RГ4С522, RГ5С522, RГ6С522, RГ7С522, False, "522",  True, "810", False, "уменьшение задолженности по внутреннему государственному (муниципальному) долгу");
--                   ProgressPos(110);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С530, RГ5С530, RГ6С530, RГ7С530,  True, "530", False, "",    False, "Чистое увеличение задолженности по внешнему государственному долгу");
--                   ProgressPos(111);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С531, RГ5С531, RГ6С531, RГ7С531, False, "531",  True, "720", False, "увеличение задолженности по внешнему государственному долгу");
--                   ProgressPos(112);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С532, RГ5С532, RГ6С532, RГ7С532, False, "532",  True, "820", False, "уменьшение задолженности по внешнему государственному долгу");
--                   ProgressPos(113);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet,  True, offsetRow, localTS, localDS, False, RГ4С540, RГ5С540, RГ6С540, RГ7С540,  True, "540", False, "",    False, "Чистое увеличение прочей кредиторской задолженности");
--                   ProgressPos(114);
--                   offsetRow=offsetRow+2;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С541, RГ5С541, RГ6С541, RГ7С541, False, "541",  True, "730", False, "увеличение прочей кредиторской задолженности");
--                   ProgressPos(115);
--                   offsetRow=offsetRow+1;
--                   XLS_СформироватьСтрокуОтчета(xlsSheet, False, offsetRow, localTS, localDS, False, RГ4С542, RГ5С542, RГ6С542, RГ7С542, False, "542",  True, "830", False, "уменьшение прочей кредиторской задолженности");
--                   ProgressPos(116);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-14, 1, offsetRow, 8, False,  True,  False,  True,  True ,  True ,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-12, 3, offsetRow, 8, True ,  True,  True ,  True,  False,  False,  False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-11, 01, offsetRow-08, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-07, 01, offsetRow-04, 02, False, False, False, False, True, True, False, False);
--                   РАБ.EXCEL.СброситьВсеГраницыДиапазонаИвнутри(xlsSheet, offsetRow-03, 01, offsetRow-00, 02, False, False, False, False, True, True, False, False);
--                   ProgressPos(117);
--                   --
--                   NoError=True;
--                 Finally
--                   ClearVariable(xlsSheet);
--                 end;
--               Finally
--                 ClearVariable(xlsSheets);
--               end;
--             Except
--               NoError=False;
--               xlsBook.Close(False); -- закрыть книгу без сохранения
--             end;
--           Finally
--             xlsBook.Close(True, xlNameFile);
--             ClearVariable(xlsBook); -- освободить объект книги
--           end;
--         Finally
--           ClearVariable(xlsBooks); -- освободить объект книг
--         end;
--       Finally
--         ClearVariable(xlsApp); -- освободить объект Excel
--         CloseProgress;
--       end;
--     Except
--       NoError=False;
--       ClearVariable(xlsRng);
--       ClearVariable(xlsSheet);
--       ClearVariable(xlsSheets);
--       ClearVariable(xlsBook);
--       ClearVariable(xlsBooks);
--       ClearVariable(xlsApp);
--     end;
--   fi; --NoError
--   if NoError:
--     ShowProgress(6, "Заключительный этап (баланс)... ");
--     Try
--       xlsApp=CreateAutoObject('Excel.Application');
--       Try
--         Try
--           xlsApp.EnableEvents=False;   -- отключить события
--           xlsApp.AutomationSecurity=3; -- отключить макросы
--           xlsBooks=AsAutoObject(xlsApp.Workbooks); -- получить объект Workbooks
--           Try
--             xlsBook=AsAutoObject(xlsBooks.Open(xlNameFile));
--             Try
--               Try
--                 xlsSheet=AsAutoObject(xlsBook.Worksheets["0503121"]);
--                 Try
--                   ProgressPos(1);
--                   offsetRow=offsetRow+3;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Руководитель");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlRight,   2,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 05, ФИОРук);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 05, offsetRow, 07);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 05, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet,  offsetRow, 02, offsetRow, 03, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet,  offsetRow, 05, offsetRow, 07, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   ProgressPos(2);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, "(подпись)");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 05, "(расшифровка подписи)");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 05, offsetRow, 07);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 05, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03, True);
--                   РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(xlsSheet, offsetRow, 05, offsetRow, 07, True);
--                   ProgressPos(3);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 01, "Главный бухгалтер");
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 01, РАБ.EXCEL.xlRight,   2,  РАБ.EXCEL.xlCenter, True, "Arial", 09, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 05, ФИОБух);
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 05, offsetRow, 07);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 05, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet,  offsetRow, 02, offsetRow, 03, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet,  offsetRow, 05, offsetRow, 07, False, False, False, True, False, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
--                   ProgressPos(4);
--                   offsetRow=offsetRow+1;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, "(подпись)");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 05, "(расшифровка подписи)");
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 05, offsetRow, 07);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 05, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, False, False, 0, True);
--                   РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03, True);
--                   РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(xlsSheet, offsetRow, 05, offsetRow, 07, True);
--                   ProgressPos(5);
--                   offsetRow=offsetRow+2;
--                   РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, offsetRow, 02, '"___" _______________ 20___ г.');
--                   РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, offsetRow, 02, offsetRow, 03);
--                   РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, offsetRow, 02, РАБ.EXCEL.xlCenter,  0,  РАБ.EXCEL.xlCenter, True, "Arial", 08, 0, True, True, False, 0, True);
--                   ProgressPos(6);
--                   --
--                   NoError=True;
--                 Finally
--                   ClearVariable(xlsSheet);
--                 end;
--               Except
--                 NoError=False;
--                 xlsBook.Close(False); -- закрыть книгу без сохранения
--               end;
--             Finally
--               xlsBook.Save;
--               xlsBook.Close(False); -- закрыть книгу без сохранения
--               ClearVariable(xlsBook); -- освободить объект книги
--             end;
--           Finally
--             ClearVariable(xlsBooks); -- освободить объект книг
--           end;
--         Finally
--           ClearVariable(xlsApp); -- освободить объект Excel
--         end;
--       Except
--         NoError=False;
--         ClearVariable(xlsRng);
--         ClearVariable(xlsSheet);
--         ClearVariable(xlsSheets);
--         ClearVariable(xlsBook);
--         ClearVariable(xlsBooks);
--         ClearVariable(xlsApp);
--       end;
--     Finally
--      CloseProgress;
--     end;
--   fi; --NoError
--   --НачальнаяСтрочка;
--   if NoError:
--     len=EnqOkCancel("Экспорт завершен!^MВремя работы - "+TimeToHMSstring_adv(Time-начало, ":")+Chr(13)+"Открыть файл экспорта?", mtInformation);
--     if len=cmOK:
--       xlsApp=CreateAutoObject('Excel.Application');
--       Try
--         Try
--           xlsApp.EnableEvents=False;   -- отключить события
--           xlsApp.AutomationSecurity=3; -- отключить макросы
--           xlsBooks=AsAutoObject(xlsApp.Workbooks); -- получить объект Workbooks
--           Try
--             xlsBook=AsAutoObject(xlsBooks.Open(xlNameFile));
--             Try
--               xlsApp.Visible=True;  -- сделать видимым Excel
--             Finally
--               ClearVariable(xlsBook); -- освободить объект книги
--             end;
--           Finally
--             ClearVariable(xlsBooks); -- освободить объект книг
--           end;
--         Finally
--           ClearVariable(xlsApp);
--         end;
--       Except
--         ClearVariable(xlsApp);
--       end;
--     fi;
--   fi;
-- fi; -- ChooseFolder
--end;



---------------------------------ВЫГРУЗКА в файл казначейства---------------------------------
Func УдалитьЗапрещенныйСимволВпозиции(valStr:String; delPos:Integer) :String;
var tmpFrst, tmpLast, RES :String;
var len :Integer;
 RES=""; tmpFrst=""; tmpLast="";
 len=Length(valStr);
 if delPos<1: delPos=1; fi;
 if delPos>len or valStr="": ^valStr; fi;
 if delPos>1:   tmpFrst=SubStr(valStr,        1, delPos-1  ); else tmpFrst=""; fi;
 if delPos<len: tmpLast=SubStr(valStr, delPos+1, len-delPos); else tmpLast=""; fi;
 RES=tmpFrst+tmpLast;
 ^RES;
end;

Func ПроверитьНаЗапрещенныеСимволы(Value:String) :String;
var num, ii :Integer;
 ClearVariable(Buf);
 Buf[01]=Chr(010); -- перевод строки
 Buf[02]=Chr(013); -- возврат каретки
 Buf[03]=Chr(034); -- стандартная кавычка
 Buf[04]=Chr(035); -- #
 Buf[05]=Chr(039); -- апостроф
 Buf[06]=Chr(096); -- акцент (ударение)
 Buf[07]=Chr(124); -- вертикальная черта
 Buf[08]=Chr(145); -- одинарная кавычка открывающая
 Buf[09]=Chr(146); -- одинарная кавычка закрывающая
 Buf[10]=Chr(147); -- двойная кавычка узкая открывающая
 Buf[11]=Chr(148); -- двойная кавычка узкая закрывающая
 Buf[12]=Chr(166); -- вертикальная черта прерывистая
 Buf[13]=Chr(171); -- двойная кавычка широкая открывающая
 Buf[14]=Chr(187); -- двойная кавычка широкая закрывающая
 Value=Trim(Value);
 for ii=1 to LengthOfArray(Buf) do
   num=Pos(Buf[ii], Value);
   while num>0 do 
     Value=УдалитьЗапрещенныйСимволВпозиции(Value, num);
     num=Pos(Buf[ii], Value);
   od;
 od;
 ^Value;
end;



Func СформироватьИмяФайла(CФ:String; VФ:String; RD:Date; Архив:Logical; CВ:String) :String;
var ok1, ok2, mm :Integer;
var RES, PФ :String;
 RES="";
 ok1=Length(Trim(CФ)); --код формы
 ok2=Length(Trim(VФ)); --версия формы
 if (ok1=3 or ok1=4) and ok2=2:
   mm=Mon(RD);
   if mm=1                  : PФ="Y";
   |  mm=4 or mm=7 or mm=10 : PФ="Q";
   else                       PФ="M";
   fi;
   if Архив: 
     if Length(CВ)=3: RES=CВ+"_"+"01"+Format("%.2d", mm)+Format("%.2d", Year(RD)-2000)+"_"+CФ+"_"+PФ+"_"+VФ+".ZIP"; fi;
   else
     RES=CФ+PФ+VФ+".TXT";
   fi;
 fi;
 ^RES;
end;   

Func ПроверитьВыгружаемуюСтрокуР1(ВС : string) :Integer;
var res: integer;
--ВС = SubStr(ВС,Pos('|',ВС),Length(ВС));
ВС = Delete (ВС,1,7);
if ВС = "|0|0|0|0|":
res = 0;
else
res = 1;
fi;
^res;
end;



Func ЗаписатьРаздел1(FS: integer) :String;
var num: integer;
var RES :String;
var SUM :Numeric;
var N: Numeric;
var Name :String;
var li: integer;
var i: Integer;
ЗадатьВыгружаемыеСтроки;
num = LengthOfArray(ВыгружаемыеСтроки);
if num>0:
for li=1 to num do
RES="";
RES=ВыгружаемыеСтроки[li] +"|"+КОСГУ[li]+"|";
        for i=4 to 7 do
                Name="RГ"+Str(i)+"С"+ВыгружаемыеСтроки[li];
                N = GetVariableN(Name);
                SUM=N;
         RES=RES+if(round(SUM,Точн)<>0, Str(SUM,Точн), "0")+"|";
        od;
if ПроверитьВыгружаемуюСтрокуР1(RES) = 1: TextFileWriteLn(FS, RES); fi;
od;
fi;
^RES;
end;





Proc Экспорт_TXT_ФК(Архивировать:Logical);
var Путь, ПутьАрх, nameFile, nameFileArc, Value, КБК :String;
var FS, num, ii, mm :Integer;
var FlagCreate :Logical;

 if Year(ДК)<2000: Message("Дата отчета должна быть позже 2000 года.", mtWarning); Template.Field="ДК"; Exit; fi;
 if Day(ДК)<>1: Message("Для выгрузки в файл требуется отчет расчитанный на '1' число.", mtWarning); Template.Field="ДК"; Exit; fi;
 if not ЕстьДанныеДляВыгрузки: Message("Нет данных для выгрузки.^MПредварительно сделайте расчет формы.", mtWarning); Template.Object="btnРасчет"; Exit; fi;
 if not Length(ПроверитьНаЗапрещенныеСимволы(ГлаваБК))=3: Message("Не заполнено 'Глава по БК' учреждения", mtWarning); Template.Field="Учреждение"; Exit; fi;
 --if Trim(ОКАТО)="": Message("Не заполнено 'ОКАТО' учреждения", mtWarning); Template.Field="Учреждение"; Exit; fi;
 --
 if ChooseFolder(Путь, "Выберите папку для сохранения файла выгрузки...")=cmOk:
   nameFile=РАБ.БЮДЖЕТ2005.Контроль2Слэш(Путь)+СформироватьИмяФайла("221", "01", ДК, False, "");
   mm=Mon(ДК);
   Try
     Try if ExistFile(nameFile): DeleteFile(nameFile); fi; Except end;
     FlagCreate=False;
     FS=TextFileCreate(nameFile);
     FlagCreate=True;
     --Заголовочная часть
     TextFileWriteLn(FS, "#%");
     TextFileWriteLn(FS, "КОДФ=221");
     TextFileWriteLn(FS, "ПРД="+if(mm=1: "5" | mm=4 or mm=7 or mm=10: "4", "3"));
     TextFileWriteLn(FS, "РДТ="+DateToString(ДК));
     TextFileWriteLn(FS, "ВИД=3");   -- всегда "3"
     TextFileWriteLn(FS, "ИСТ="+Trim(ГлаваБК));
     TextFileWriteLn(FS, "#");
     -- Содержательная часть 1 раздела
     TextFileWriteLn(FS, "#@");
     TextFileWriteLn(FS, "ТБ=01");
     TextFileWriteLn(FS, "#$");
     value  = ЗаписатьРаздел1(FS);
     TextFileWriteLn(FS, "#");
    -- Заключительная часть
     TextFileWriteLn(FS, "#&");
     TextFileWriteLn(FS, "Руководитель="+ПроверитьНаЗапрещенныеСимволы(ФИОРук));
     TextFileWriteLn(FS, "Гл. бухгалтер="+ПроверитьНаЗапрещенныеСимволы(ФИОБух));

     TextFileWriteLn(FS, "#");
     TextFileWriteLn(FS, "#~");
     TextFileWriteLn(FS, "ППО=Турбо Бухгалтер 6.9 - "+ПроверитьНаЗапрещенныеСимволы(ВЕРСИЯ.Сборка_)+" "+ПроверитьНаЗапрещенныеСимволы(ВЕРСИЯ.ДатаСборки_));
     TextFileWriteLn(FS, "#");
     TextFileWriteLn(FS, "##");
      TextFileClose(FS);
     if ExistFile(nameFile): 
       if Архивировать:
         ClearTrace(True);
         ПутьАрх=РАБ.БЮДЖЕТ2005.Контроль2Слэш(PlanVar("STD_RPO"))+"\Bin\7z.exe";
         if ExistFile(ПутьАрх):
           nameFileArc=Путь+СформироватьИмяФайла("221", "01", ДК, True, ГлаваБК);
           Try if ExistFile(nameFileArc): DeleteFile(nameFileArc); fi; Except end;
           ExecuteProgram(ПутьАрх+" a -y -tzip "+nameFileArc+" "+nameFile, True);
         else
           Trace("Не найден файл-архиватор. Архивация выгрузки невозможна.");
         fi;
       fi;
       if EnqOkCancel("Открыть созданный файл выгрузки?", mtInformation)=cmOK: OpenEditor(nameFile); fi;
     fi;
   Except
     ЗакрытьФайлПоОшибке(FS, FlagCreate, nameFile);
   Raise;
   end;
 fi; --ChooseFolder
end;





Proc btnExport_OnClick(Sender: String);
 var num :Integer;
 ClearVariable(Buf);
 Buf[1]="Выгрузка в файл (формат ДФ г.Москвы)";
 Buf[2]="Выгрузка в файл (формат ФК) [ + архивация]";
 Buf[3]="Выгрузка в файл (формат ФК) [только текст]";
 --Buf[4]="Выгрузка в Excel";
 num=Alternate("Выберите тип выгрузки...", Buf, -1, 1, 12);
 if num=1: Экспорт_TXT_ДФ;
   |num=2: Экспорт_txt_фк(True);
   |num=3: Экспорт_txt_фк(False );
-- if num=4: Экспорт_Excel;
 else Exit;
 fi;

end;

2--Обработчики событий шаблона-----

Proc OnOpen(Create: Logical);
 if Учреждение="": ЗаполнитьРекв(nil); fi;
 Раб.Настр_Печать.Cfg("","RPO_0503121_000.cfg");
 КонтрольВерсии;
 ПроверитьНастр;
end;

Proc AfterOpen(Destroy: Logical);
 ВнешнийВид;
 ПрисвоитьТочность;
 FlagНастр=False;
 ОткрытьНастр;
end;


КОНЕЦ