БЛАНКСШАБЛОНОМ "Оборотная ведомость по НФА  (ОКУД 0504035)";
-- Разработка бланка: ТБ.БЮДЖЕТ
-- Первый релиз: 25.09.2009
var btnName_menu :String="форма ОКУД 0504035";
var infoVersion  :String="Версия отчета: 1.15.0610";
var MaskUserVoc  :String="ВД.*|ВКЛ.*|П.*|ПГР.*|РБС.*";
2-- Объекты
Bevel1:Object; cb_Забаланс :Object; btnExit:Object; rb_AccAll:Object; rb_Acc105:Object; rbtФтрПрв:Object; rbtМОЛМХЭ:Object;
Bevel2:Object; cb_ОтчКварт :Object; btnExcl:Object; rb_Acc101:Object; rb_Acc104:Object; rbtФтрСтр:Object; rbtМХЭМОЛ:Object;
Bevel3:Object; cb_ОбоФинГод:Object; btnCalc:Object;

lblVersion:Object;
btnVisibleRep:Object;
btnVisibleTit:Object;
--
СекцШапка:Object;
СекцУслов:Object;
СекцSПоле:Object;
СекцВДаты:Object;
СекцArНФА:Object;
СекцSTНФА:Object;
СекцТит1:Object;
СекцТит2:Object;
СекцТит3:Object;
--
СекцWorkЗТ_ОМ:Object; -- заголовок таблицы - оборот за месяц
СекцWorkЗТ_ОК:Object; -- заголовок таблицы - оборот за квартал
СекцWorkЗТ_ОГ:Object; -- заголовок таблицы - оборот за год
СекцWorkДТ_ОМ:Object; -- данные таблицы - оборот за месяц
СекцWorkДТ_ОК:Object; -- данные таблицы - оборот за квартал
СекцWorkДТ_ОГ:Object; -- данные таблицы - оборот за год
СекцWorkИТ_ОМ:Object; -- итоговая строчка таблицы - оборот за месяц
СекцWorkИТ_ОК:Object; -- итоговая строчка таблицы - оборот за квартал
СекцWorkИТ_ОГ:Object; -- итоговая строчка таблицы - оборот за год
--
СтркArНФА    :Integer;
Позиции      :Integer;

2-- Переменные и массивы
var pfxУЧН       :String="УЧН";
var Расшифр      :String="&";
var Фокус        :String="";
flgClear         :String;
var Flag_onEnter :Logical;
var constИСКЛvoc :String;   -- константа исключаемых справочников
var OldотчАНА    :String;   -- для запоминания и возвратов (дополнительная аналитика)
UserSortField    :Integer;
UserSortField_   :Integer=UserSortField;
TimeCreationRep  :String;
ИспДол           :String;
ИспФИО           :String;
ИспREC           :Record;
ОтчГод           :Integer;
var ОтчГодold    :Integer;
отчПерНом        :Integer;
отчПерИмя        :String;
отчПерТит        :String="за "+отчПерИмя+" "+Str(ОтчГод)+" г.";
var отчПерИмя_   :String=отчПерИмя;
ДатИспол         :Date;
DataНП           :Date;
DataКП           :Date;
--
curAcc           :Integer=[1];
var oldAcc       :Integer;
flgФтрАнаcur     :Integer=[1];
var flgФтрАнаold :Integer;
flgМОЛМХЭcur     :Integer=[1];
var flgМОЛМХЭold :Integer;
флагиВФО         :String;  -- для фильтра по источникам
--
flgЗабаланс      :Logical;
flgОбоФинГод     :Logical;
flgОтчКварт      :Logical;
--
отчВФО     :String;  -- Фильтр по источнику
отчСЧТ     :String;  -- Фильтр по счету
отчКБК     :String;  -- Фильтр по КБК
отчМОЛ     :String;  -- Фильтр по МОЛ
отчМХЭ     :String;  -- Фильтр по местонахождению
отчVOC     :String;  -- Выбор дополнительного справочника
отчДАН     :String;  -- Фильтр по признаку дополнительного справочника
УЧР_ИМЯ    :String;
УЧР_ОКПО   :String;
УЧР_REC    :Record;
СЧТимя     :String;
МОЛимя     :String;
МХЭимя     :String;
VOCимя     :String;
ДАНимя     :String;
отчАНА     :String;  -- дополнительная аналитика для фильтра
--
var отчВФО_:String=отчВФО;
var отчСЧТ_:String=отчСЧТ;
var отчКБК_:String=отчКБК;
var отчМОЛ_:String=отчМОЛ;
var отчМХЭ_:String=отчМХЭ;
var отчДАН_:String=отчДАН;
var отчVOC_:String=отчVOC;

-- Массивы и переменные таблицы оборотки
ЗагОст00 :String;
ЗагОст01 :String;   ЗагОборот01 :String;
ЗагОст02 :String;   ЗагОборот02 :String;
ЗагОст03 :String;   ЗагОборот03 :String;
ЗагОст04 :String;   ЗагОборот04 :String;
ЗагОст05 :String;   ЗагОборот05 :String;
ЗагОст06 :String;   ЗагОборот06 :String;
ЗагОст07 :String;   ЗагОборот07 :String;
ЗагОст08 :String;   ЗагОборот08 :String;
ЗагОст09 :String;   ЗагОборот09 :String;
ЗагОст10 :String;   ЗагОборот10 :String;
ЗагОст11 :String;   ЗагОборот11 :String;
ЗагОст12 :String;   ЗагОборот12 :String;

ИнфоФильтр :String;
var НПП[]  :Integer=$;
тИНВНОМ[]  :String;
тУЧННОМ[]  :String;
тКОДНФА[]  :String;
тИМЯНФА[]  :String;
ЕДНИЗМ[]   :String;
ИСТСРД[]   :String;
тКБКСЧТ[]  :String;
тКОДСЧТ[]  :String;

КОЛОСТ00[] :Numeric;
СУМОСТ00[] :Numeric;

КОЛОБД01[] :Numeric;   КОЛОБД02[] :Numeric;   КОЛОБД03[] :Numeric;   КОЛОБД04[] :Numeric;   КОЛОБД05[] :Numeric;   КОЛОБД06[] :Numeric;
СУМОБД01[] :Numeric;   СУМОБД02[] :Numeric;   СУМОБД03[] :Numeric;   СУМОБД04[] :Numeric;   СУМОБД05[] :Numeric;   СУМОБД06[] :Numeric;
КОЛОБК01[] :Numeric;   КОЛОБК02[] :Numeric;   КОЛОБК03[] :Numeric;   КОЛОБК04[] :Numeric;   КОЛОБК05[] :Numeric;   КОЛОБК06[] :Numeric;
СУМОБК01[] :Numeric;   СУМОБК02[] :Numeric;   СУМОБК03[] :Numeric;   СУМОБК04[] :Numeric;   СУМОБК05[] :Numeric;   СУМОБК06[] :Numeric;
КОЛОСТ01[] :Numeric;   КОЛОСТ02[] :Numeric;   КОЛОСТ03[] :Numeric;   КОЛОСТ04[] :Numeric;   КОЛОСТ05[] :Numeric;   КОЛОСТ06[] :Numeric;
СУМОСТ01[] :Numeric;   СУМОСТ02[] :Numeric;   СУМОСТ03[] :Numeric;   СУМОСТ04[] :Numeric;   СУМОСТ05[] :Numeric;   СУМОСТ06[] :Numeric;

КОЛОБД07[] :Numeric;   КОЛОБД08[] :Numeric;   КОЛОБД09[] :Numeric;   КОЛОБД10[] :Numeric;   КОЛОБД11[] :Numeric;   КОЛОБД12[] :Numeric;
СУМОБД07[] :Numeric;   СУМОБД08[] :Numeric;   СУМОБД09[] :Numeric;   СУМОБД10[] :Numeric;   СУМОБД11[] :Numeric;   СУМОБД12[] :Numeric;
КОЛОБК07[] :Numeric;   КОЛОБК08[] :Numeric;   КОЛОБК09[] :Numeric;   КОЛОБК10[] :Numeric;   КОЛОБК11[] :Numeric;   КОЛОБК12[] :Numeric;
СУМОБК07[] :Numeric;   СУМОБК08[] :Numeric;   СУМОБК09[] :Numeric;   СУМОБК10[] :Numeric;   СУМОБК11[] :Numeric;   СУМОБК12[] :Numeric;
КОЛОСТ07[] :Numeric;   КОЛОСТ08[] :Numeric;   КОЛОСТ09[] :Numeric;   КОЛОСТ10[] :Numeric;   КОЛОСТ11[] :Numeric;   КОЛОСТ12[] :Numeric;
СУМОСТ07[] :Numeric;   СУМОСТ08[] :Numeric;   СУМОСТ09[] :Numeric;   СУМОСТ10[] :Numeric;   СУМОСТ11[] :Numeric;   СУМОСТ12[] :Numeric;

ИТГ_СУМОСТ00 :Numeric;

ИТГ_СУМОБД01 :Numeric;   ИТГ_СУМОБД02 :Numeric;   ИТГ_СУМОБД03 :Numeric;   ИТГ_СУМОБД04 :Numeric;   ИТГ_СУМОБД05 :Numeric;   ИТГ_СУМОБД06 :Numeric;
ИТГ_СУМОБК01 :Numeric;   ИТГ_СУМОБК02 :Numeric;   ИТГ_СУМОБК03 :Numeric;   ИТГ_СУМОБК04 :Numeric;   ИТГ_СУМОБК05 :Numeric;   ИТГ_СУМОБК06 :Numeric;
ИТГ_СУМОСТ01 :Numeric;   ИТГ_СУМОСТ02 :Numeric;   ИТГ_СУМОСТ03 :Numeric;   ИТГ_СУМОСТ04 :Numeric;   ИТГ_СУМОСТ05 :Numeric;   ИТГ_СУМОСТ06 :Numeric;

ИТГ_СУМОБД07 :Numeric;   ИТГ_СУМОБД08 :Numeric;   ИТГ_СУМОБД09 :Numeric;   ИТГ_СУМОБД10 :Numeric;   ИТГ_СУМОБД11 :Numeric;   ИТГ_СУМОБД12 :Numeric;
ИТГ_СУМОБК07 :Numeric;   ИТГ_СУМОБК08 :Numeric;   ИТГ_СУМОБК09 :Numeric;   ИТГ_СУМОБК10 :Numeric;   ИТГ_СУМОБК11 :Numeric;   ИТГ_СУМОБК12 :Numeric;
ИТГ_СУМОСТ07 :Numeric;   ИТГ_СУМОСТ08 :Numeric;   ИТГ_СУМОСТ09 :Numeric;   ИТГ_СУМОСТ10 :Numeric;   ИТГ_СУМОСТ11 :Numeric;   ИТГ_СУМОСТ12 :Numeric;

-- Вспомогательные массивы
var Buf[]      :String;
var aAna[]     :String;
var BufMsk[]   :String;
var BufStr[]   :String;
var bindVOC[]  :String;  -- Привязанный справочник
var bindINT[]  :Integer; -- Количество привязок
var УслАНА[]   :String;  -- Фильтр на аналитику
var BufDНП[]   :Date;
var BufDКП[]   :Date;

var LST_НФА[]  :String;
var REF_НФА[]  :String;
var LST_UNQ[]  :String;
var lНKOL00[]  :Numeric;
var lНSUM00[]  :Numeric;

var lДKOL01[]:Numeric; var lДKOL02[]:Numeric; var lДKOL03[]:Numeric; var lДKOL04[]:Numeric; var lДKOL05[]:Numeric; var lДKOL06[]:Numeric;
var lДSUM01[]:Numeric; var lДSUM02[]:Numeric; var lДSUM03[]:Numeric; var lДSUM04[]:Numeric; var lДSUM05[]:Numeric; var lДSUM06[]:Numeric;
var lКKOL01[]:Numeric; var lКKOL02[]:Numeric; var lКKOL03[]:Numeric; var lКKOL04[]:Numeric; var lКKOL05[]:Numeric; var lКKOL06[]:Numeric;
var lКSUM01[]:Numeric; var lКSUM02[]:Numeric; var lКSUM03[]:Numeric; var lКSUM04[]:Numeric; var lКSUM05[]:Numeric; var lКSUM06[]:Numeric;

var lДKOL07[]:Numeric; var lДKOL08[]:Numeric; var lДKOL09[]:Numeric; var lДKOL10[]:Numeric; var lДKOL11[]:Numeric; var lДKOL12[]:Numeric;
var lДSUM07[]:Numeric; var lДSUM08[]:Numeric; var lДSUM09[]:Numeric; var lДSUM10[]:Numeric; var lДSUM11[]:Numeric; var lДSUM12[]:Numeric;
var lКKOL07[]:Numeric; var lКKOL08[]:Numeric; var lКKOL09[]:Numeric; var lКKOL10[]:Numeric; var lКKOL11[]:Numeric; var lКKOL12[]:Numeric;
var lКSUM07[]:Numeric; var lКSUM08[]:Numeric; var lКSUM09[]:Numeric; var lКSUM10[]:Numeric; var lКSUM11[]:Numeric; var lКSUM12[]:Numeric;

2-- Общие процедуры и функции

Proc ОчиститьLST;

 ClearVariable(LST_НФА);
 ClearVariable(REF_НФА);
 ClearVariable(СтркArНФА);

 ClearVariable(LST_UNQ);

 ClearVariable(lНKOL00);
 ClearVariable(lНSUM00);

 ClearVariable(lДKOL01); ClearVariable(lДKOL02); ClearVariable(lДKOL03); ClearVariable(lДKOL04); ClearVariable(lДKOL05); ClearVariable(lДKOL06);
 ClearVariable(lДSUM01); ClearVariable(lДSUM02); ClearVariable(lДSUM03); ClearVariable(lДSUM04); ClearVariable(lДSUM05); ClearVariable(lДSUM06);
 ClearVariable(lКKOL01); ClearVariable(lКKOL02); ClearVariable(lКKOL03); ClearVariable(lКKOL04); ClearVariable(lКKOL05); ClearVariable(lКKOL06);
 ClearVariable(lКSUM01); ClearVariable(lКSUM02); ClearVariable(lКSUM03); ClearVariable(lКSUM04); ClearVariable(lКSUM05); ClearVariable(lКSUM06);

 ClearVariable(lДKOL07); ClearVariable(lДKOL08); ClearVariable(lДKOL09); ClearVariable(lДKOL10); ClearVariable(lДKOL11); ClearVariable(lДKOL12);
 ClearVariable(lДSUM07); ClearVariable(lДSUM08); ClearVariable(lДSUM09); ClearVariable(lДSUM10); ClearVariable(lДSUM11); ClearVariable(lДSUM12);
 ClearVariable(lКKOL07); ClearVariable(lКKOL08); ClearVariable(lКKOL09); ClearVariable(lКKOL10); ClearVariable(lКKOL11); ClearVariable(lКKOL12);
 ClearVariable(lКSUM07); ClearVariable(lКSUM08); ClearVariable(lКSUM09); ClearVariable(lКSUM10); ClearVariable(lКSUM11); ClearVariable(lКSUM12);

end;

Proc Очистить;
 ClearVariable(Buf);
 ClearVariable(НПП);
 ClearVariable(aAna);
 ClearVariable(BufMsk);
 ClearVariable(BufStr);
 ClearVariable(bindVOC);
 ClearVariable(bindINT);
 ClearVariable(УслАНА);
 ClearVariable(BufDНП);
 ClearVariable(BufDКП);
end;

Proc ОчиститьТаблицу;

 ClearVariable(Позиции);
 ClearVariable(ИнфоФильтр);
 ClearVariable(НПП);

 ClearVariable(тИНВНОМ);
 ClearVariable(тУЧННОМ);
 ClearVariable(тКОДНФА);
 ClearVariable(тИМЯНФА);
 ClearVariable(ЕДНИЗМ);
 ClearVariable(ИСТСРД);
 ClearVariable(тКБКСЧТ);
 ClearVariable(тКОДСЧТ);

 ClearVariable(КОЛОСТ00);
 ClearVariable(СУМОСТ00);

 ClearVariable(КОЛОБД01); ClearVariable(КОЛОБД02); ClearVariable(КОЛОБД03); ClearVariable(КОЛОБД04); ClearVariable(КОЛОБД05); ClearVariable(КОЛОБД06);
 ClearVariable(СУМОБД01); ClearVariable(СУМОБД02); ClearVariable(СУМОБД03); ClearVariable(СУМОБД04); ClearVariable(СУМОБД05); ClearVariable(СУМОБД06);
 ClearVariable(КОЛОБК01); ClearVariable(КОЛОБК02); ClearVariable(КОЛОБК03); ClearVariable(КОЛОБК04); ClearVariable(КОЛОБК05); ClearVariable(КОЛОБК06);
 ClearVariable(СУМОБК01); ClearVariable(СУМОБК02); ClearVariable(СУМОБК03); ClearVariable(СУМОБК04); ClearVariable(СУМОБК05); ClearVariable(СУМОБК06);
 ClearVariable(КОЛОСТ01); ClearVariable(КОЛОСТ02); ClearVariable(КОЛОСТ03); ClearVariable(КОЛОСТ04); ClearVariable(КОЛОСТ05); ClearVariable(КОЛОСТ06);
 ClearVariable(СУМОСТ01); ClearVariable(СУМОСТ02); ClearVariable(СУМОСТ03); ClearVariable(СУМОСТ04); ClearVariable(СУМОСТ05); ClearVariable(СУМОСТ06);

 ClearVariable(КОЛОБД07); ClearVariable(КОЛОБД08); ClearVariable(КОЛОБД09); ClearVariable(КОЛОБД10); ClearVariable(КОЛОБД11); ClearVariable(КОЛОБД12);
 ClearVariable(СУМОБД07); ClearVariable(СУМОБД08); ClearVariable(СУМОБД09); ClearVariable(СУМОБД10); ClearVariable(СУМОБД11); ClearVariable(СУМОБД12);
 ClearVariable(КОЛОБК07); ClearVariable(КОЛОБК08); ClearVariable(КОЛОБК09); ClearVariable(КОЛОБК10); ClearVariable(КОЛОБК11); ClearVariable(КОЛОБК12);
 ClearVariable(СУМОБК07); ClearVariable(СУМОБК08); ClearVariable(СУМОБК09); ClearVariable(СУМОБК10); ClearVariable(СУМОБК11); ClearVariable(СУМОБК12);
 ClearVariable(КОЛОСТ07); ClearVariable(КОЛОСТ08); ClearVariable(КОЛОСТ09); ClearVariable(КОЛОСТ10); ClearVariable(КОЛОСТ11); ClearVariable(КОЛОСТ12);
 ClearVariable(СУМОСТ07); ClearVariable(СУМОСТ08); ClearVariable(СУМОСТ09); ClearVariable(СУМОСТ10); ClearVariable(СУМОСТ11); ClearVariable(СУМОСТ12);

end;

Proc ОчиститьИтоги;

 ClearVariable(ИТГ_СУМОСТ00);

 ClearVariable(ИТГ_СУМОБД01); ClearVariable(ИТГ_СУМОБД02); ClearVariable(ИТГ_СУМОБД03); ClearVariable(ИТГ_СУМОБД04); ClearVariable(ИТГ_СУМОБД05); ClearVariable(ИТГ_СУМОБД06);
 ClearVariable(ИТГ_СУМОБК01); ClearVariable(ИТГ_СУМОБК02); ClearVariable(ИТГ_СУМОБК03); ClearVariable(ИТГ_СУМОБК04); ClearVariable(ИТГ_СУМОБК05); ClearVariable(ИТГ_СУМОБК06);
 ClearVariable(ИТГ_СУМОСТ01); ClearVariable(ИТГ_СУМОСТ02); ClearVariable(ИТГ_СУМОСТ03); ClearVariable(ИТГ_СУМОСТ04); ClearVariable(ИТГ_СУМОСТ05); ClearVariable(ИТГ_СУМОСТ06);

 ClearVariable(ИТГ_СУМОБД07); ClearVariable(ИТГ_СУМОБД08); ClearVariable(ИТГ_СУМОБД09); ClearVariable(ИТГ_СУМОБД10); ClearVariable(ИТГ_СУМОБД11); ClearVariable(ИТГ_СУМОБД12);
 ClearVariable(ИТГ_СУМОБК07); ClearVariable(ИТГ_СУМОБК08); ClearVariable(ИТГ_СУМОБК09); ClearVariable(ИТГ_СУМОБК10); ClearVariable(ИТГ_СУМОБК11); ClearVariable(ИТГ_СУМОБК12);
 ClearVariable(ИТГ_СУМОСТ07); ClearVariable(ИТГ_СУМОСТ08); ClearVariable(ИТГ_СУМОСТ09); ClearVariable(ИТГ_СУМОСТ10); ClearVariable(ИТГ_СУМОСТ11); ClearVariable(ИТГ_СУМОСТ12);

end;

Proc ЗапомнитьЗначения;
       oldAcc=curAcc;
 flgФтрАнаold=flgФтрАнаcur;
 flgМОЛМХЭold=flgМОЛМХЭcur;
    ОтчГодold=ОтчГод;
end;

Proc SetИСКЛvoc;
 constИСКЛvoc="БО.*|ВИДДОК.*|ВП.*|ВЫПЛ.*|ГНФА.*|ГРОС.*|ДЕНДОК.*|ДНФА*.*|ДОК.*|ЖО.*|ИНВВЕД.*|КИФД.*|КОМ_УСЛ.*|КОМИССИЯ.*|КОСГУ.*|КРЕДИТ.*|ЛС.*|НБ.*|НЕДОСТАЧИ.*|НФА_СПРАВКА.*|П_ЛИМ.*|ПБЮДЖ.*|ТМЦ.*|УДЕРЖ.*";
end;

Func ВыборДаты(srcDate:Date) :Date;
var dd :Date;
 if srcDate>1.1.100: dd=Calendar(srcDate); else dd=Calendar(ToDay); fi;
 if not(dd<=1.1.100): ^dd; else ^srcDate; fi;
end;

Func GetDate :Date;  -- считываем в заданном поле дату
var name :String;
 name=AsString(Template.Field);
 if name="ДатИспол": ^ДатИспол; fi;
end;

Proc SetDate(Value:Date); -- устанавливаем в заданном поле дату; Value - значение даты, которое необходимо присвоить
var name :String;
 name=AsString(Template.Field);
 if name="ДатИспол": ДатИспол=Value; fi;
end;

Func Оператор :String;
var nn :Integer;
 ClearVariable(Buf);
 Buf[1]="И";
 Buf[2]="ИЛИ";
 Buf[3]="И ИСКЛЮЧИТЬ";
 nn=Alternate("Выбор оператора",Buf, 20, 1, 12);
 if nn=1: ^"&";
   |nn=2: ^"|";
   |nn=3: ^"&~";
 fi;
 ^"";
end;

Func ДатаНачалПериода(StoreДНПериода:Date; текущийYear:Integer; номерПериода:Integer; ОборотыЗаГод:Logical; Квартальная:Logical) :Date;
var mk :Integer;
 if текущийYear>1989 and текущийYear<2091:
   if ОборотыЗаГод:
     ^Dat(1, 1, текущийYear);
   else
     if Квартальная:
       if номерПериода>0 and номерПериода<5:
         if номерПериода=1: mk=01;
         |  номерПериода=2: mk=04;
         |  номерПериода=3: mk=07;
         |  номерПериода=4: mk=10;
         fi;
         ^Dat(1, mk, текущийYear);
       fi;
     else
       if номерПериода>0 and номерПериода<13:
         ^Dat(1, номерПериода, текущийYear);
       fi;
     fi;
   fi;
 fi;
 ^StoreДНПериода;
end;

Func ДатаКонцаПериода(StoreДКПериода:Date; ДНПериода:Date; номерПериода:Integer; ОборотыЗаГод:Logical; Квартальная:Logical) :Date;
 if ДНПериода<1.1.1990: ^StoreДКПериода; fi;
 if ОборотыЗаГод: ^AddMon(ДНПериода, if(Квартальная, номерПериода*3, номерПериода)); else ^AddMon(ДНПериода, if(Квартальная, 3, 1)); fi;
 ^StoreДКПериода;
end;

Func ИменаОтчетногоПериода(номерПериода:Integer; Квартальная:Logical) :String;
 if Квартальная:
   if номерПериода>0 and номерПериода<5:  ^(Str(номерПериода)+" квартал"); fi;
 else
   if номерПериода>0 and номерПериода<13: ^Месяц(номерПериода); fi;
 fi;
 ^"";
end;

Proc ОтчетныйПериод_Заголовки(ДНПериода:Date; ДКПериода:Date; номерПериода:Integer; ОборотыЗаГод:Logical; Квартальная:Logical);
var Work :Logical;
var jj :Integer;
 Work=False;
 ЗагОст00="";
 ЗагОборот01=""; ЗагОст01="";
 ЗагОборот02=""; ЗагОст02="";
 ЗагОборот03=""; ЗагОст03="";
 ЗагОборот04=""; ЗагОст04="";
 ЗагОборот05=""; ЗагОст05="";
 ЗагОборот06=""; ЗагОст06="";
 ЗагОборот07=""; ЗагОст07="";
 ЗагОборот08=""; ЗагОст08="";
 ЗагОборот09=""; ЗагОст09="";
 ЗагОборот10=""; ЗагОст10="";
 ЗагОборот11=""; ЗагОст11="";
 ЗагОборот12=""; ЗагОст12="";
 if ДНПериода>=1.1.1990 and ДКПериода>=1.1.1990:
   if (Квартальная and номерПериода>0 and номерПериода<5) or (not Квартальная and номерПериода>0 and номерПериода<13):
       Work=True;
   fi;
 fi;
 if Work:
   jj=1;
   ЗагОст00="Остаток на "+DateToString(ДНПериода);
   if ОборотыЗаГод:
     if not jj>номерПериода: ЗагОборот01="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст01="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот02="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст02="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот03="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст03="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот04="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст04="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот05="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст05="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот06="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст06="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот07="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст07="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот08="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст08="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот09="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст09="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот10="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст10="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот11="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст11="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
     if not jj>номерПериода: ЗагОборот12="Оборот за "+ИменаОтчетногоПериода(jj, Квартальная); ЗагОст12="Остаток на "+DateToString(AddMon(ДНПериода, if(Квартальная, jj*3, jj))); jj=jj+1; fi;
   else
     ЗагОборот01="Оборот за "+отчПерИмя;
     ЗагОст01="Остаток на "+DateToString(ДКПериода);
   fi;
 fi;
end;

Proc ReDrawДаты(ОборотыЗаГод:Logical; Квартальная:Logical; РисоватьЗаголовки:Logical);
 DataНП=ДатаНачалПериода(DataНП, отчГод, отчПерНом, ОборотыЗаГод, Квартальная);
 DataКП=ДатаКонцаПериода(DataКП, DataНП, отчПерНом, ОборотыЗаГод, Квартальная);
 if РисоватьЗаголовки: ОтчетныйПериод_Заголовки(DataНП, DataКП, отчПерНом, ОборотыЗаГод, Квартальная); fi;
end;

Proc ValidateВедомSection(СкрытьТаблицу:Logical; ОборотыЗаГод:Logical; Квартальная:Logical);
var FF, FT, fv1, fv2, fv3 :Logical;
 if not ОборотыЗаГод and not Квартальная: fv1=True;  fv2=False; fv3=False;
 |      ОборотыЗаГод and not Квартальная: fv1=False; fv2=False; fv3=True;
 |  not ОборотыЗаГод and     Квартальная: fv1=True;  fv2=False; fv3=False;
 |      ОборотыЗаГод and     Квартальная: fv1=False; fv2=True;  fv3=False;
 fi;
 if fv1 and Позиции>0 and not СкрытьТаблицу: fv1=True; else fv1=False; fi;
 if fv2 and Позиции>0 and not СкрытьТаблицу: fv2=True; else fv2=False; fi;
 if fv3 and Позиции>0 and not СкрытьТаблицу: fv3=True; else fv3=False; fi;
 if fv1 or fv2 or fv3: FF=True; else FF=False; fi;
 --
 СекцWorkЗТ_ОМ.Visible=fv1; СекцWorkЗТ_ОК.Visible=fv2; СекцWorkЗТ_ОГ.Visible=fv3;
 СекцWorkДТ_ОМ.Visible=fv1; СекцWorkДТ_ОК.Visible=fv2; СекцWorkДТ_ОГ.Visible=fv3;
 СекцWorkИТ_ОМ.Visible=fv1; СекцWorkИТ_ОК.Visible=fv2; СекцWorkИТ_ОГ.Visible=fv3;
 if Позиции>0 and СкрытьТаблицу: FT=True; else FT=False; fi;
 СекцТит1.Visible=FT;
 СекцТит2.Visible=FT;
 СекцТит3.Visible=FT;
 if FT: СекцТит1.Cell(8, 3, CellFontStyle, fsBold+fsUnderline); fi;
 if Позиции>0:
   btnVisibleRep.Visible = True;
   btnVisibleTit.Visible = True;
   btnVisibleRep.Enabled = СкрытьТаблицу;
   btnVisibleTit.Enabled = not СкрытьТаблицу;
 else
   btnVisibleRep.Visible = False;
   btnVisibleTit.Visible = False;
 fi;
 btnExcl.Enabled=FF;
 ReDrawДаты(ОборотыЗаГод, Квартальная, FF);
end;

Proc ValidateОтчетSection;
 ValidateВедомSection(False, flgОбоФинГод, flgОтчКварт);
end;

Proc ValidateОтчетSectionТитулSection(fTIT:Logical);
 ValidateВедомSection(fTIT, flgОбоФинГод, flgОтчКварт);
end;

Proc ValidateSection(СкрытьУсловия:Logical);
var Flag :Logical;
 ShowProgress(1, "Работаем...");
 Try
   Flag = not СкрытьУсловия;
   --
   СекцШапка.Visible=Flag; Bevel1.Visible=Flag; lblVersion.Visible=Flag;
   СекцУслов.Visible=Flag; Bevel2.Visible=Flag; btnCalc.Enabled=Flag;
   СекцSПоле.Visible=Flag; Bevel3.Visible=Flag;
   СекцВДаты.Visible=Flag;
   --
   rb_AccAll.Visible=Flag; rb_Acc105.Visible=Flag; rbtФтрПрв.Visible=Flag; rbtМОЛМХЭ.Visible=Flag;
   rb_Acc101.Visible=Flag; rb_Acc104.Visible=Flag; rbtФтрСтр.Visible=Flag; rbtМХЭМОЛ.Visible=Flag;
   --
   cb_Забаланс.Visible =Flag;
   cb_ОбоФинГод.Visible=Flag;
   cb_ОтчКварт.Visible =Flag;
   --
   ValidateОтчетSection;
   --
 Finally
   CloseProgress;
 end;
end;

Proc ОчисткаОтчета;
 Очистить;
 ОчиститьТаблицу;
 ОчиститьИтоги;
 TimeCreationRep="";
 ValidateОтчетSection;
end;

Func ОтменитьИзмененияУсловийОтчета :Logical;
var FF :Logical;
var qq :Integer;
 FF=False;
 if Позиции>0:
   qq=EnqOkCancel("Условия отбора данных для отчета изменились!^MОчистить отчет?", mtConfirmation);
   if qq=cmOk: ОчисткаОтчета;
   |  qq=cmCancel: FF=True;
   fi;
 fi;
 ^FF;
end;

Func ВыборОтчетногоПериода(номерПериода:Integer; Квартальная:Logical) :Integer;
var ii, newПериод :Integer;
 ClearVariable(Buf);
 if Квартальная: for ii=1 to 4 do Buf[ii]=Str(ii)+" квартал"; od; else for ii=1 to 12 do Buf[ii]=Месяц(ii); od; fi;
 newПериод=Alternate('Период отчета...', Buf, 20, номерПериода, 12);
 if newПериод=0: ^номерПериода; fi;
 if newПериод<>номерПериода: if ОтменитьИзмененияУсловийОтчета: newПериод=номерПериода; fi; fi;
 ^newПериод;
end;

Proc ОтчетныйПериод_Get(ОборотыЗаГод:Logical; Квартальная:Logical);
 отчПерНом=ВыборОтчетногоПериода(отчПерНом, Квартальная);
 отчПерИмя=ИменаОтчетногоПериода(отчПерНом, Квартальная);
 ReDrawДаты(ОборотыЗаГод, Квартальная, False);
end;

Func Объединить(Value1:String; Value2:String; Separator:String) :String;
var Ret :String;
 if Value1<>"" and Value2<>"": Ret=Value1+Separator+Value2;
 |  Value1= "" and Value2<>"": Ret=Value2;
 |  Value1<>"" and Value2="" : Ret=Value1;
 |  True: Ret="";
 fi;
 ^Ret;
end;

Func ЗаменитьСимволСтрокиВпозиции(valStr:String; repChar:String; repPos:Integer) :String;
var tmpFirst, tmpLast, out :String;
var len :Integer;
 tmpFirst=""; tmpLast=""; out="";
 len=Length(valStr);
 if repPos<1: repPos=1; fi;
 if repPos>len or repChar="" or valStr="": ^valStr; fi;
 repChar=SubStr(repChar, 1, 1);
 if repPos>1: tmpFirst=SubStr(valStr, 1, repPos-1); else tmpFirst=""; fi;
 if repPos<len: tmpLast=SubStr(valStr, repPos+1, len-repPos); else tmpLast=""; fi;
 out=tmpFirst+repChar+tmpLast;
 ^out;
end;

Func УдалитьРазделитель(Value:String) :String;
var nn :Integer;
 nn=Pos("|", Value);
 while nn>0 do Value=ЗаменитьСимволСтрокиВпозиции(Value, "_", nn); nn=Pos("|", Value); od;
 ^Value;
end;

Func TimeToHMSstring(valTime :Integer) :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=Str(ihh); shh=RepStr('0', 2-Length(shh))+shh;
 smm=Str(imm); smm=RepStr('0', 2-Length(smm))+smm;
 scc=Str(icc); scc=RepStr('0', 2-Length(scc))+scc;
 ^(shh+':'+smm+':'+scc);
end;

Proc РазрешенКБК(ФлагЗабалансовые:Logical);
var цвFont, цвBack :Integer;
var ТЧ :Logical;
 if ФлагЗабалансовые: цвFont=coBlack; цвBack=coTransparent; ТЧ=True; else цвFont=coWhite; цвBack=coTeal; ТЧ=False; fi;
 if ТЧ: отчКБК=""; fi;
 СекцУслов.Cell(4, 3, CellFontColor, цвFont); СекцУслов.Cell(4, 3, CellBgColor, цвBack); СекцУслов.Cell(4, 3, CellReadOnly, ТЧ);
end;

Proc РазрешенЗабаланс(MaskСЧТ:String);
var ФлагАморт :Logical;
 ФлагАморт=if(Match(MaskСЧТ, "104.??"), True, False);
 cb_Забаланс.Enabled = not ФлагАморт;
 if ФлагАморт: flgЗабаланс = False; fi;
 РазрешенКБК(flgЗабаланс);
end;


Proc ВФО_ВнешнийВид_Обновить;
 РАБ.НФА.LIBREP.ВФО_СоздатьМассивИсточников;
 РАБ.НФА.LIBREP.ВФО_ПеременныеVМассивФлагов(флагиВФО);
 отчВФО=РАБ.НФА.LIBREP.ВФО_ФлагиВТекст;
end;

Proc ВФО_ВидФинансовогоОбеспечения_OnEnter;
var OldValue, NewValue :String;
var SaveValue :Logical;
 SaveValue=False;
 OldValue=флагиВФО;
 NewValue=РАБ.НФА.LIBREP.ВФО_ВыбратьВидФинансовогоОбеспечения(OldValue);
 if NewValue<>OldValue: if not ОтменитьИзмененияУсловийОтчета: SaveValue=True; fi; fi;
 if SaveValue:
   флагиВФО=NewValue;
   отчВФО=РАБ.НФА.LIBREP.ВФО_ФлагиВТекст;
   if flgФтрАнаcur=1: отчКБК=""; отчМОЛ=""; МОЛимя=""; отчМХЭ=""; МХЭимя=""; отчДАН=""; ДАНимя=""; fi;
   ValidateОтчетSection;
 fi;
end;

Proc Счета_СоздатьМассивСчетовНФА(FTRсчета:Integer);
 ClearVariable(Buf);
 ClearVariable(BufMsk);
 ClearVariable(BufStr);
 if FTRсчета=2:
   BufMsk[01] = "101.?? 102.?? 103.??";        BufStr[01] = " Все 'Основные средства'";                                  Buf[01] = "*-- Все 'Основные средства'";
   BufMsk[02] = "101.?1";                      BufStr[02] = " Жилые помещения";                                          Buf[02] = "101.01 --жилые помещения";
   BufMsk[03] = "101.?2";                      BufStr[03] = " Нежилые помещения";                                        Buf[03] = "101.02 --нежилые помещения";
   BufMsk[04] = "101.?3";                      BufStr[04] = " Сооружения";                                               Buf[04] = "101.03 --сооружения";
   BufMsk[05] = "101.?4";                      BufStr[05] = " Машины и оборудование";                                    Buf[05] = "101.04 --машины и оборудование";
   BufMsk[06] = "101.?5";                      BufStr[06] = " Транспортные средства";                                    Buf[06] = "101.05 --транспортные средства";
   BufMsk[07] = "101.?6";                      BufStr[07] = " Производственный и хозяйственный инвентарь";               Buf[07] = "101.06 --производственный и хозяйственный инвентарь";
   BufMsk[08] = "101.?7";                      BufStr[08] = " Библиотечный фонд";                                        Buf[08] = "101.07 --библиотечный фонд";
   BufMsk[09] = "101.?8";                      BufStr[09] = " Прочие основные средства";                                 Buf[09] = "101.08 --прочие основные средства";
   BufMsk[10] = "102.??";                      BufStr[10] = " Нематериальные активы";                                    Buf[10] = "102.00 --нематериальные активы";
   BufMsk[11] = "103.??";                      BufStr[11] = " Непроизведенные активы";                                   Buf[11] = "103.00 --непроизведенные активы";
 |  FTRсчета=3:
   BufMsk[01] = "105.??";                      BufStr[01] = " Все 'Материальные запасы'";                                Buf[01] = "*-- Все 'Материальные запасы'";
   BufMsk[02] = "105.?1";                      BufStr[02] = " Медикаменты и перевязочные средства";                      Buf[02] = "105.01 --медикаменты и перевязочные средства";
   BufMsk[03] = "105.?2";                      BufStr[03] = " Продукты питания";                                         Buf[03] = "105.02 --продукты питания";
   BufMsk[04] = "105.?3";                      BufStr[04] = " Горюче-смазочные материалы";                               Buf[04] = "105.03 --горюче-смазочные материалы";
   BufMsk[05] = "105.?4";                      BufStr[05] = " Строительные материалы";                                   Buf[05] = "105.04 --строительные материалы";
   BufMsk[06] = "105.?5";                      BufStr[06] = " Мягкий инвентарь";                                         Buf[06] = "105.05 --мягкий инвентарь";
   BufMsk[07] = "105.?6";                      BufStr[07] = " Прочие материальные запасы";                               Buf[07] = "105.06 --прочие материальные запасы";
   BufMsk[08] = "105.?7";                      BufStr[08] = " Готовая продукция";                                        Buf[08] = "105.07 --готовая продукция";
 |  FTRсчета=4:
   BufMsk[01] = "104.??";                      BufStr[01] = " Амортизация по всем счетам";                               Buf[01] = "*-- Амортизация по всем счетам";
   BufMsk[02] = "104.?1";                      BufStr[02] = " Амортизация жилых помещений";                              Buf[02] = "104.01 --амортизация жилых помещений";
   BufMsk[03] = "104.?2";                      BufStr[03] = " Амортизация нежилых помещений";                            Buf[03] = "104.02 --амортизация нежилых помещений";
   BufMsk[04] = "104.?3";                      BufStr[04] = " Амортизация сооружений";                                   Buf[04] = "104.03 --амортизация сооружений";
   BufMsk[05] = "104.?4";                      BufStr[05] = " Амортизация машин и оборудования";                         Buf[05] = "104.04 --амортизация машин и оборудования";
   BufMsk[06] = "104.?5";                      BufStr[06] = " Амортизация транспортных средств";                         Buf[06] = "104.05 --амортизация транспортных средств";
   BufMsk[07] = "104.?6";                      BufStr[07] = " Амортизация производственного и хозяйственного инвентаря"; Buf[07] = "104.06 --амортизация производственного и хозяйственного инвентаря";
   BufMsk[08] = "104.?7";                      BufStr[08] = " Амортизация библиотечного фонда";                          Buf[08] = "104.07 --амортизация библиотечного фонда";
   BufMsk[09] = "104.?8";                      BufStr[09] = " Амортизация прочих основных средств";                      Buf[09] = "104.08 --амортизация прочих основных средств";
   BufMsk[10] = "104.?9";                      BufStr[10] = " Амортизация нематериальных активов";                       Buf[10] = "104.09 --амортизация нематериальных активов";
 else
   BufMsk[01] = "101.?? 102.?? 103.?? 105.??"; BufStr[01] = " Все 'Нефинансовые активы'";                                Buf[01] = "*-- Все 'Нефинансовые активы'";
   BufMsk[02] = "101.?1";                      BufStr[02] = " Жилые помещения";                                          Buf[02] = "101.01 --жилые помещения";
   BufMsk[03] = "101.?2";                      BufStr[03] = " Нежилые помещения";                                        Buf[03] = "101.02 --нежилые помещения";
   BufMsk[04] = "101.?3";                      BufStr[04] = " Сооружения";                                               Buf[04] = "101.03 --сооружения";
   BufMsk[05] = "101.?4";                      BufStr[05] = " Машины и оборудование";                                    Buf[05] = "101.04 --машины и оборудование";
   BufMsk[06] = "101.?5";                      BufStr[06] = " Транспортные средства";                                    Buf[06] = "101.05 --транспортные средства";
   BufMsk[07] = "101.?6";                      BufStr[07] = " Производственный и хозяйственный инвентарь";               Buf[07] = "101.06 --производственный и хозяйственный инвентарь";
   BufMsk[08] = "101.?7";                      BufStr[08] = " Библиотечный фонд";                                        Buf[08] = "101.07 --библиотечный фонд";
   BufMsk[09] = "101.?8";                      BufStr[09] = " Прочие основные средства";                                 Buf[09] = "101.08 --прочие основные средства";
   BufMsk[10] = "102.??";                      BufStr[10] = " Нематериальные активы";                                    Buf[10] = "102.00 --нематериальные активы";
   BufMsk[11] = "103.??";                      BufStr[11] = " Непроизведенные активы";                                   Buf[11] = "103.00 --непроизведенные активы";
   BufMsk[12] = "105.?1";                      BufStr[12] = " Медикаменты и перевязочные средства";                      Buf[12] = "105.01 --медикаменты и перевязочные средства";
   BufMsk[13] = "105.?2";                      BufStr[13] = " Продукты питания";                                         Buf[13] = "105.02 --продукты питания";
   BufMsk[14] = "105.?3";                      BufStr[14] = " Горюче-смазочные материалы";                               Buf[14] = "105.03 --горюче-смазочные материалы";
   BufMsk[15] = "105.?4";                      BufStr[15] = " Строительные материалы";                                   Buf[15] = "105.04 --строительные материалы";
   BufMsk[16] = "105.?5";                      BufStr[16] = " Мягкий инвентарь";                                         Buf[16] = "105.05 --мягкий инвентарь";
   BufMsk[17] = "105.?6";                      BufStr[17] = " Прочие материальные запасы";                               Buf[17] = "105.06 --прочие материальные запасы";
   BufMsk[18] = "105.?7";                      BufStr[18] = " Готовая продукция";                                        Buf[18] = "105.07 --готовая продукция";
 fi;
end;

Proc Счета_ВыборСчетаНФАonEnter(ВыборИзПроводок:Logical; FTRсчета:Integer);
var StoreСЧТ, StoreИМЯ :String;
var num :Integer;
 StoreСЧТ=отчСЧТ;
 StoreИМЯ=СЧТимя;
 Счета_СоздатьМассивСчетовНФА(FTRсчета);
 num=SearchInArray(BufMsk, StoreСЧТ, False, 1);
 if not num>0: num=1; fi;
 num=AlternateTree("", Buf, -1, num, 12, "$", "Счет", "Наименование счета", -1, False);
 if num>0: отчСЧТ=BufMsk[num]; СЧТимя=BufStr[num]; fi;
 if отчСЧТ<>StoreСЧТ: if ОтменитьИзмененияУсловийОтчета: отчСЧТ=StoreСЧТ; СЧТимя=StoreИМЯ; else if ВыборИзПроводок: отчКБК=""; fi; fi; fi;
 РазрешенКБК(flgЗабаланс);
 ValidateОтчетSection;
end;

Func ИтоговаяМаскаСчетовОтчета_Взять(знВФОотч:String; знСЧТотч:String; знКБКотч:String; знЗАБотч:Logical; знГРПотч:Integer) :String;
var RES :String;
 RES="";
 if Match(отчСЧТ, "104.??"):
   RES = РАБ.НФА.LIBREP.Отчеты_ИтоговаяМаскаАмортизации(знВФОотч, знСЧТотч, 0, знКБКотч);
 else
   РАБ.НФА.LIBREP.раздел_Счетов=if(знГРПотч=2:"101" | знГРПотч=3:"105", "");
   RES = РАБ.НФА.LIBREP.Отчеты_ИтоговаяМаскаСчета(знВФОотч, знСЧТотч, 0, знКБКотч, True, flgЗабаланс);
 fi;
 ^RES;
end;

Func INI_Mask(КБК:String) :String;
var тип :String;
var num :Integer;
 ClearVariable(Buf);
 тип=РАБ.БЮДЖЕТ2005.ТипКБКСчета(КБК);
 if тип="ФКР":
   Buf[1] =КБК;
   Buf[2] =ExtractWords(1, 3, КБК, ".")+".???";
   Buf[3] =ExtractWords(1, 2, КБК, ".")+".???????.???";
   Buf[4] =ExtractWord(1, КБК, ".")+".????.???????.???";
   Buf[5] ="???.????.???????."+ExtractWord(4, КБК, ".");
   Buf[6] ="???.????."+ExtractWords(3, 2, КБК, ".");
   Buf[7] ="???."+ExtractWords(2, 3, КБК, ".");
 |  тип="КИФД":
   Buf[1] =КБК;
   Buf[2] =ExtractWords(1, 6, КБК, ".")       +".????";
   Buf[3] =ExtractWords(1, 5, КБК, ".")    +".??.????";
   Buf[4] =ExtractWords(1, 4, КБК, ".") +".??.??.????";
   Buf[5] =ExtractWords(1, 3, КБК, ".")      +".??.??.??.????";
   Buf[6] =ExtractWords(1, 2, КБК, ".")   +".??.??.??.??.????";
   Buf[7] =ExtractWord(1,     КБК, ".")+".??.??.??.??.??.????";
   Buf[8] ="???.??.??.??.??.??."+ExtractWord(7, КБК, ".");
   Buf[9] ="???.??.??.??.??."+ExtractWords(6, 2, КБК, ".");
   Buf[10]="???.??.??.??."   +ExtractWords(5, 3, КБК, ".");
   Buf[11]="???.??.??."      +ExtractWords(4, 4, КБК, ".");
   Buf[12]="???.??."         +ExtractWords(3, 5, КБК, ".");
   Buf[13]="???."            +ExtractWords(2, 6, КБК, ".");
 else ^(КБК);
 fi;
 num=Alternate("Выберите маску КБК...", Buf, -1, 1, 12);
 if num=0: ^(КБК); else ^(Buf[num]); fi;
end;

Func КБКизПроведенныхПроводок(maskСЧТ:String; StoreКБК:String) :String;
var Путь, Value :String;
var num, ii, jj :Integer;
var Отч1 :Report;
 ClearVariable(Buf);
 ShowProgress(0, "Подготовка...");
 Try
   Путь=PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst";
   if not ExistFile(Путь): Message("Файл с отчетами отсутствует!", mtError); ^StoreКБК; fi;
   Try
     Отч1=RepOpen(Путь+"|По_счетам_101", maskСЧТ, "", if(DataНП>1.1.2000, DataНП, 1.1.100), if(DataКП>1.1.2000, DataКП, ToDay));
     RepReset(Отч1);
     Try
       num=RepRowsCount(Отч1);
       ii=0;
       ShowProgress(num, "Отбор данных...");
       while RepNext(Отч1) do
         ii=ii+1;
         ProgressPos(ii);
         Value=RepIdent(Отч1);
         if Match(Value, "???.????.???????.???.?.???.??.???"): AddInArray(Buf, True, False, SubStr(Value, 1, 20)); fi;
       end; -- while
     Finally
       Отч1=RepClose(Отч1);
     end;
   Except
     Message("Ошибка создания отчета!", mtError);
     ^StoreКБК;
   end;
 Finally
   CloseProgress;
 end;
 num=LengthOfArray(Buf);
 if num>0:
   jj=SearchInArray(Buf, StoreКБК, True, 1);
   ii=Alternate("Выберите КБК...", Buf, -1, jj, 12);
   if ii>0: ^Buf[ii]; fi;
 else
   Message("КБК по проведенным проводкам^Mпо маске счетов '"+maskСЧТ+"' не найдено!", mtError);
   ^StoreКБК;
 fi;
 ^StoreКБК;
end;

Func ВыборФильтраОтбораКБК(Источники:String; flgZD:Logical; maskСЧТ:String; StoreКБК:String; flgИзПроводок:Logical) :String;
var MaskAcc, Value :String;
 Value="";
 MaskAcc=ИтоговаяМаскаСчетовОтчета_Взять(Источники, maskСЧТ, "", flgZD, curAcc);
 if flgИзПроводок:
   Value=КБКизПроведенныхПроводок(MaskAcc, StoreКБК);
 else
   РАБ.БЮДЖЕТ2005.РежимМаски="?";
   Value=РАБ.УПП.КБК2005.ВыборКБКиерарх2005(MaskAcc, "", False);
 fi;
 if Value="" or Value=" ": ^StoreКБК; fi;
 Value=INI_Mask(Value);
 ^Value;
end;

Proc Счета_ВыборКБК(ВыборИзПроводок:Logical; onExit:Logical);
var StoreANA, NewValue :String;
var SaveValue :Logical;
 SaveValue=False;
 StoreANA=отчКБК;
 if onExit: NewValue=""; else NewValue=ВыборФильтраОтбораКБК(флагиВФО, flgЗабаланс, отчСЧТ, отчКБК, ВыборИзПроводок); fi;
 if NewValue<>StoreANA: if not ОтменитьИзмененияУсловийОтчета: SaveValue=True; fi; fi;
 if SaveValue: отчКБК=NewValue; if ВыборИзПроводок: отчМОЛ=""; МОЛимя=""; отчМХЭ=""; МХЭимя=""; отчДАН=""; ДАНимя=""; fi; fi;
end;

Proc МОЛ_ВыборМОЛ(Источники:String; maskСЧТ:String; maskКБК:String; flgZAB:Logical; ВыборИзПроводок:Logical; onExit:Logical);
var Путь, StoreANA, NewValue, MaskAcc, tmp :String;
var SaveValue :Logical;
var num, kk :Integer;
var Отч1 :Report;
 SaveValue=False;
 StoreANA=отчМОЛ;
 if onExit:
   NewValue="";
 else
   if ВыборИзПроводок:
     if flgМОЛМХЭcur=2:
       if Trim(отчМХЭ)="":    Message("Предварительно необходимо выбрать местанождение!", mtWarning); Template.Field="отчМХЭ_"; Exit; fi;
       if Name_A(отчМХЭ)=" ": Message("Признака '"+отчМХЭ+"' не существует!", mtError); Exit; fi;
     fi;
     Путь=PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst";
     if not ExistFile(Путь): Message("Файл с отчетами отсутствует!", mtError); Exit; fi;
     ClearVariable(Buf);
     ClearVariable(BufMsk);
     ClearVariable(BufStr);
     Try
       MaskAcc=ИтоговаяМаскаСчетовОтчета_Взять(Источники, maskСЧТ, maskКБК, flgZAB, curAcc);
       Отч1=RepOpen(Путь+"|По_признакам_БАЛиЗАБ", MaskAcc, if(flgМОЛМХЭcur=2, отчМХЭ, ""), 1.1.100, if(DataКП>1.1.2000, DataКП, ToDay), "", "МОЛ");
       RepReset(Отч1);
       Try
         while RepNext(Отч1) do
           tmp=Trim(Name_A(RepIdent(Отч1)));
           if tmp="": tmp=" "; fi;
           kk=InsertInArraySort(BufStr, tmp);
           InsertInArray(BufMsk, kk, RepIdent(Отч1));
           InsertInArray(Buf, kk, RepIdent(Отч1)+"--"+tmp);
         end;
       Finally
         Отч1=RepClose(Отч1);
       end;
     Except
       Message("Ошибка создания отчета!", mtError);
       Raise;
     end;
     num=LengthOfArray(BufMsk);
     if num>0:
       kk=SearchInArray(BufMsk, StoreANA, False, 1);
       num=AlternateTree("Выберите МОЛ...", Buf, -1, kk, 12, "#", "Код признака", "Расшифровка кода (Ф.И.О.)", -1, False);
       if num=0: Exit; fi;
       NewValue=BufMsk[num];
     else
       Message("МОЛ по проведенным проводкам^Mпо маске счетов '"+maskСЧТ+if(flgМОЛМХЭcur=2, "' и маске местонахождения '"+отчМХЭ, "")+"'^Mне найдено!", mtError);
       Exit;
     fi;
   else
     RefreshAna;
     tmp=AnaElection("МОЛ.*", False, False, StoreANA);
     if tmp="": Exit; fi;
     NewValue=tmp;
   fi;
 fi;
 if NewValue<>StoreANA: if not ОтменитьИзмененияУсловийОтчета: SaveValue=True; fi; fi;
 if SaveValue:
   отчМОЛ=NewValue;
   МОЛимя=Trim(Name_A(отчМОЛ));
   if flgМОЛМХЭcur=1 and NewValue="": отчМХЭ=""; МХЭимя=""; fi;
 fi;
end;

Proc МХЭ_ВыборМХЭ(Источники:String; maskСЧТ:String; maskКБК:String; flgZAB:Logical; ВыборИзПроводок:Logical; onExit:Logical);
var Путь, StoreANA, NewValue, MaskAcc, tmp :String;
var SaveValue :Logical;
var num, kk :Integer;
var Отч1 :Report;
 SaveValue=False;
 StoreANA=отчМХЭ;
 if onExit:
   NewValue="";
 else
   if ВыборИзПроводок:
     if flgМОЛМХЭcur=1:
       if Trim(отчМОЛ)="":    Message("Предварительно необходимо выбрать МОЛ!", mtWarning); Template.Field="отчМОЛ_"; Exit; fi;
       if Name_A(отчМОЛ)=" ": Message("Признака '"+отчМОЛ+"' не существует!", mtError); Exit; fi;
     fi;
     Путь=PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst";
     if not ExistFile(Путь): Message("Файл с отчетами отсутствует!", mtError); Exit; fi;
     ClearVariable(Buf);
     ClearVariable(BufMsk);
     ClearVariable(BufStr);
     Try
       MaskAcc=ИтоговаяМаскаСчетовОтчета_Взять(Источники, maskСЧТ, maskКБК, flgZAB, curAcc);
       Отч1=RepOpen(Путь+"|По_признакам_БАЛиЗАБ", MaskAcc, if(flgМОЛМХЭcur=1, отчМОЛ, ""), 1.1.100, if(DataКП>1.1.2000, DataКП, ToDay), "", "М");
       RepReset(Отч1);
       Try
         while RepNext(Отч1) do
           tmp=Trim(Name_A(RepIdent(Отч1)));
           if tmp="": tmp=" "; fi;
           kk=InsertInArraySort(BufStr, tmp);
           InsertInArray(BufMsk, kk, RepIdent(Отч1));
           InsertInArray(Buf, kk, RepIdent(Отч1)+"--"+tmp);
         end;
       Finally
         Отч1=RepClose(Отч1);
       end;
     Except
       Message("Ошибка создания отчета!", mtError);
       Raise;
     end;
     num=LengthOfArray(BufMsk);
     if num>0:
       kk=SearchInArray(BufMsk, StoreANA, False, 1);
       num=AlternateTree("Выберите местонахождение...", Buf, -1, kk, 12, "#", "Код признака", "Расшифровка кода", -1, False);
       if num=0: Exit; fi;
       NewValue=BufMsk[num];
     else
       Message("Местонахождений по проведенным проводкам^Mпо маске счетов '"+maskСЧТ+if(flgМОЛМХЭcur=1, "' и маске МОЛ '"+отчМОЛ, "")+"'^Mне найдено!", mtError);
       Exit;
     fi;
   else
     RefreshAna;
     tmp=AnaElection("М.*", False, False, StoreANA);
     if tmp="": Exit; fi;
     NewValue=tmp;
   fi;
 fi;
 if NewValue<>StoreANA: if not ОтменитьИзмененияУсловийОтчета: SaveValue=True; fi; fi;
 if SaveValue:
   отчМХЭ=NewValue;
   МХЭимя=Trim(Name_A(отчМХЭ));
   if flgМОЛМХЭcur=2 and NewValue="": отчМОЛ=""; МОЛимя=""; fi;
 fi;
end;

Func ВыборСправочникаФильтра(Value:String) :String;
var ANA :String;
 ANA=AnaElection(MaskUserVoc, True, False, Value+".");
 if ANA="": ^Value; else ^ANA; fi;
 ^"";
end;

Proc ВыборДопСправочника(onExit:Logical);
var StoreVoc, StoreAna, NewVoc, NewAna :String;
 StoreVoc=отчVOC; StoreAna=отчДАН;
 if onExit: NewVoc=""; else NewVoc=ВыборСправочникаФильтра(StoreVoc); fi;
 if NewVoc<>StoreVoc: if ОтменитьИзмененияУсловийОтчета: NewVoc=StoreVoc; NewAna=StoreAna; else NewAna=""; fi; fi;
 отчVOC=NewVoc;
 отчДАН=NewAna;
 if отчVOC<>"": VOCимя=Name_A(отчVOC+"."); else VOCимя=""; fi;
 if отчДАН<>"": ДАНимя=Name_A(отчДАН); else ДАНимя=""; fi;
end;

Proc ВыборДопПризнака(VOCname:String; Источники:String; flgZAB:Logical; maskСЧТ:String; maskКБК:String; ВыборИзПроводок:Logical; onExit:Logical);
var Путь, StoreANA, NewValue, MaskAcc, tmp :String;
var SaveValue :Logical;
var num, kk :Integer;
var Отч1 :Report;
 if Trim(VOCname)="":
   Message("Не выбран доп. справочник для отбора!", mtConfirmation);
   Template.Field="отчVOC_";
   Exit;
 fi;
 if Name_A(VOCname+".")=" ":
   Message("Справочника '"+VOCname+"' не существует!", mtError);
   Exit;
 fi;
 SaveValue=False;
 StoreANA=отчДАН;
 if onExit:
   NewValue="";
 else
   if ВыборИзПроводок:
     Путь=PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst";
     if not ExistFile(Путь): Message("Файл с отчетами отсутствует!", mtError); Exit; fi;
     ClearVariable(Buf);
     ClearVariable(BufMsk);
     ClearVariable(BufStr);
     Try
       MaskAcc=ИтоговаяМаскаСчетовОтчета_Взять(Источники, maskСЧТ, maskКБК, flgZAB, curAcc);
       Отч1=RepOpen(Путь+"|По_признакам_БАЛиЗАБ", MaskAcc, "", 1.1.100, if(DataКП>1.1.2000, DataКП, ToDay), "", VOCname);
       RepReset(Отч1);
       Try
         while RepNext(Отч1) do
           if RepIdent(Отч1)<>"":
             tmp=Trim(Name_A(RepIdent(Отч1)));
             if tmp="": tmp=" "; fi;
             kk=InsertInArraySort(BufStr, tmp);
             InsertInArray(BufMsk, kk, RepIdent(Отч1));
             InsertInArray(Buf, kk, RepIdent(Отч1)+"--"+tmp);
           fi;
         end;
       Finally
         Отч1=RepClose(Отч1);
       end;
     Except
       Message("Ошибка создания отчета!", mtError);
       Raise;
     end;
     num=LengthOfArray(BufMsk);
     if num>0:
       kk=SearchInArray(BufMsk, StoreANA, False, 1);
       num=AlternateTree("Выберите дополнительный признак...", Buf, -1, kk, 12, "#", "Код признака", "Расшифровка кода", -1, False);
       if num=0: Exit; fi;
       NewValue=BufMsk[num];
     else
       Message("Дополнительных признаков по проведенным проводкам^Mпо маске счетов '"+maskСЧТ+"'^Mне найдено!", mtError);
       Exit;
     fi;
   else
     RefreshAna;
     tmp=AnaElection(VOCname+".*", False, False, StoreANA);
     if tmp="": Exit; fi;
     NewValue=tmp;
   fi;
 fi;
 if NewValue<>StoreANA: if not ОтменитьИзмененияУсловийОтчета: SaveValue=True; fi; fi;
 if SaveValue:
   отчДАН=NewValue;
   ДАНимя=Trim(Name_A(отчДАН));
 fi;
end;

Proc ПересортировкаВедомости(countIter:Integer; полеСортировки:Integer);
var NameSortField :String;
 if countIter>0:
   if полеСортировки=1: NameSortField="тИМЯНФА";
   |  полеСортировки=2: NameSortField="тУЧННОМ";
   |  полеСортировки=3: NameSortField="тИНВНОМ";
   |  полеСортировки=4: NameSortField="тКОДСЧТ";
   else NameSortField="тКОДНФА";
   fi;
   Позиции=countIter;
   ShowProgress(1, "Сортировка данных ведомости...");
   Try
     SortSection("СекцSTНФА", NameSortField, True, False);
     ClearVariable(НПП);
   Finally
     CloseProgress;
   end;
 fi;
end;

Proc ВыбратьUserПолеСортировки;
var num, prevState, curState :Integer;
 prevState=UserSortField;
 ClearVariable(Buf);
 Buf[1]="... коду НФА";
 Buf[2]="... наименованию НФА";
 Buf[3]="... учетному номеру НФА";
 Buf[4]="... инвентарному номеру НФА";
 Buf[5]="... счету синтетическому";
 num=Alternate("Сортировать по...", Buf, -1, prevState+1, 12);
 if num=0: Exit; fi;
 curState=num-1;
 if curState<>prevState: UserSortField=curState; ПересортировкаВедомости(LengthOfArray(тКОДНФА), curState); fi;
end;

Func СчетаНФА_вУчете(maskСЧТ:String; ddBP:Date; ddEP:Date) :Integer;
var Путь, Acc :String;
var num, kk :Integer;
var Отч1 :Report;
 ClearVariable(Buf);
 Путь=PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst";
 if not ExistFile(Путь): ^-1; fi;
 Try
   Отч1=RepOpen(Путь+"|По_счетам_НФА_Бал_Заб", maskСЧТ, "", if(ddBP>1.1.1990, ddBP, 1.1.100), if(ddEP>1.1.1990, ddEP, ToDay));
   RepReset(Отч1);
   Try
     num=RepRowsCount(Отч1);
     kk=0;
     while RepNext(Отч1) do
       Acc=RepIdent(Отч1);
       if Match(Acc, "???.????.???????.???.?.???.??.???")    or
          Match(Acc, "???.??.??.??.??.??.????.?.???.??.???") or
          Match(Acc, "ЗАБ.??.???.??"):
         kk=kk+1;
         Buf[kk]=Объединить(SignsMask(Acc, True), SignsMask(Acc, False), "|");
       fi;
     end; -- while
   Finally
     Отч1=RepClose(Отч1);
   end;
 Except
   ^-1;
 end;
 ^LengthOfArray(Buf);
end;

Func СчетаНФА_поСтруктуре(maskСЧТ:String) :Integer;
var Acc :String;
var kk :Integer;
 ClearVariable(Buf);
 kk=0;
 for Account Acc=maskСЧТ, Sort do 
   kk=kk+1;
   Buf[kk]=Объединить(SignsMask(Acc, True), SignsMask(Acc, False), "|");
 od;
 ^LengthOfArray(Buf);
end;

Func СправочникиСтруктурыПоМаскеСчетовПрогресс(maskСЧТ:String; ddBP:Date; ddEP:Date; OnlyUseAcc:Logical; EnableProgress:Logical) :String;
var Voc, MaskVoc :String;
var xx, ii, num, jj, kk :Integer;
var qq :Numeric;
 Try qq=Saldo(maskСЧТ, 1.1.100); Except ^" "; end;
 ClearVariable(bindVOC); ClearVariable(bindINT);
 if EnableProgress: ShowProgress(0, "Подготовка..."); fi;
 MaskVoc="";
 Try
   xx=0;
   if OnlyUseAcc: xx=СчетаНФА_вУчете(maskСЧТ, ddBP, ddEP); fi;
   if not xx>0:   xx=СчетаНФА_поСтруктуре(maskСЧТ); fi;
   if xx>0:
     if EnableProgress: ShowProgress(xx, "Анализ привязки справочников к счетам..."); fi;
     for ii=1 to xx do
       if EnableProgress: ProgressPos(ii); fi;
       num=WordsCount(Buf[ii], "|");
       for jj=1 to num do
         Voc=ExtractWord(jj, Buf[ii], "|");
         kk=SearchInArray(bindVOC, Voc, True, 1);
         if kk>0:
           bindINT[kk]=bindINT[kk]+1;
         else
           kk=InsertInArraySort(bindVOC, Voc);
           InsertInArray(bindINT, kk, 1);
         fi;
       od;
     od;
     num=LengthOfArray(bindVOC);
     if num>0:
       if EnableProgress: ShowProgress(num, "Обработка полученных данных..."); fi;
       jj=num; -- удаляем с конца
       for ii=1 to num do
         if EnableProgress: ProgressPos(ii); fi;
         -- xx - количество рабочих счетов
         if bindINT[jj]<>xx: DeleteFromArray(bindVOC, jj); else MaskVoc=Объединить(MaskVoc, bindVOC[jj], "|"); fi;
         jj=jj-1;
       od;
     fi;
   fi; -- xx>0
 Finally
   if EnableProgress: CloseProgress; fi;
 end;
 ^MaskVoc;
end;

Func ПравильныйСимволАналитики(Value:String) :Logical;
var intChars :Integer;
 intChars=Ascii(Value);
 if intChars=42 or                        -- звездочка (*)
    intChars=46 or                        -- точка
    (intChars>= 48 and intChars<= 57) or  -- цифры
    intChars=63 or                        -- знак вопроса (?)
    (intChars>= 65 and intChars<= 90) or  -- латиница заглавные
    intChars=95 or                        -- нижнее подчеркивание
    (intChars>= 97 and intChars<=122) or  -- латиница строчные
    (intChars>=192 and intChars<=255):    -- национальный алфавит
       ^True;
 fi;
 ^False;
end;

Func ВсеСправочникиДопАналитикиПривязаны(vДопАна:String) :Logical;
var ii, num :Integer;
var Value, tmp :String;
 vДопАна=Trim(vДопАна);
 if vДопАна<>"":
   num=Length(vДопАна);
   if num>0:
     ClearVariable(Buf);
     Value="";
     for ii=1 to num do
       tmp=SubStr(vДопАна, ii, 1);
       if ПравильныйСимволАналитики(tmp):
         Value=Value+tmp;
       else
         if Value<>"":
           if Pos(".", Value)>0: Value=ExtractWord(1, Value, ".")+".*"; fi;
           AddInArray(Buf, True, False, Value);
           Value="";
         fi;
       fi;
     od;
     if Value<>"": AddInArray(Buf, True, False, Value); Value=""; fi;
     num=LengthOfArray(Buf);
     if num>0:
       for ii=1 to num do
         if SearchInArray(bindVOC, Buf[ii], True, 1)<1:
           Message("Длинное условие отбора аналитики^MСправочник '"+Buf[ii]+"' не привязан к счетам учета НФА!", mtError);
           ^False;
         fi;
       od;
       ^True;
     fi;
   fi;
 fi;
 ^False;
end;

Func ПризнакСоотвМаске(Призн:String; услANA:String) :Logical;
-- Призн должно являтся полным значением, а не маской!
var Ana :String;
 if услANA="": ^False; fi;
 if Name_A(Призн)=" ": ^False; fi;
 if услANA="*": ^True; fi;
 for Sign Ana=услANA, Sort do if Призн=Ana: ^True; fi; od;
 ^False;
end;

Func СгруппироватьДатыОборотов(ДНП:Date; ДКП:Date; номерПериода:Integer; ОборотыЗаГод:Logical; Квартальная:Logical) :Logical;
var storeДНП :Date;
var Work :Logical;
var jj :Integer;
 Work=False;
 ClearVariable(BufDНП);
 ClearVariable(BufDКП);
 if ДНП>=1.1.1990 and ДКП>=1.1.1990:
   if (Квартальная and номерПериода>0 and номерПериода<5) or (not Квартальная and номерПериода>0 and номерПериода<13):
       Work=True;
   fi;
 fi;
 if Work:
   storeДНП=ДНП;
   if ОборотыЗаГод:
     for jj=1 to 12 do
       if jj>номерПериода: Break; fi;
       BufDНП[jj]=storeДНП;
       BufDКП[jj]=AddMon(storeДНП, if(Квартальная, 3, 1));
       storeДНП=BufDКП[jj];
     od;
   else
     BufDНП[1]=ДНП;
     BufDКП[1]=ДКП;
   fi;
 fi;
 if LengthOfArray(BufDНП)=LengthOfArray(BufDКП) and LengthOfArray(BufDНП)>0: ^True; else ^False; fi;
end;

Func ПроверкаДат :Logical;
var ddНачало :Date;
var FF :Logical;
 ddНачало=1.1.1990;
 if DataНП<=1.1.100: Message('Не задана дата начала периода!',               mtWarning); Template.Field="отчПерИмя_"; ^False; fi;
 if DataНП<ddНачало: Message('Не задана корректная дата начала периода!',    mtWarning); Template.Field="отчПерИмя_"; ^False; fi;
 if DataКП<=1.1.100: Message('Не задана дата окончания периода!',            mtWarning); Template.Field="отчПерИмя_"; ^False; fi;
 if DataКП<ddНачало: Message('Не задана корректная дата окончания периода!', mtWarning); Template.Field="отчПерИмя_"; ^False; fi;
 if DataНП>DataКП:
   Message('Дата начала "'+DateToString(DataНП)+'" периода позже даты окончания периода "'+DateToString(DataКП)+'"!'
          +Chr(13)+'Необходимо скорректировать даты!', mtError);
   Template.Field="отчПерИмя_"; ^False;
 fi;
 FF=СгруппироватьДатыОборотов(DataНП, DataКП, отчПерНом, flgОбоФинГод, flgОтчКварт);
 if not FF:
   Message('Ошибка формирования^Mпромежуточных дат^Mоборотов ведомости!', mtError);
   Template.Field="отчПерИмя_";
   ^False;
 fi;
 ^True;
end;

Proc ДобавитьНовуюСтрокуДвижения(Iter:Integer; номерПериода:Integer; ДебетовыйОборот:Logical; repKOL:Numeric; repSUM:Numeric);
 InsertInArray(lНKOL00, Iter, 0.00);
 InsertInArray(lНSUM00, Iter, 0.00);
 --
 InsertInArray(lДKOL01, Iter, if(номерПериода=01, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM01, Iter, if(номерПериода=01, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL01, Iter, if(номерПериода=01, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM01, Iter, if(номерПериода=01, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL02, Iter, if(номерПериода=02, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM02, Iter, if(номерПериода=02, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL02, Iter, if(номерПериода=02, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM02, Iter, if(номерПериода=02, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL03, Iter, if(номерПериода=03, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM03, Iter, if(номерПериода=03, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL03, Iter, if(номерПериода=03, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM03, Iter, if(номерПериода=03, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL04, Iter, if(номерПериода=04, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM04, Iter, if(номерПериода=04, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL04, Iter, if(номерПериода=04, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM04, Iter, if(номерПериода=04, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL05, Iter, if(номерПериода=05, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM05, Iter, if(номерПериода=05, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL05, Iter, if(номерПериода=05, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM05, Iter, if(номерПериода=05, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL06, Iter, if(номерПериода=06, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM06, Iter, if(номерПериода=06, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL06, Iter, if(номерПериода=06, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM06, Iter, if(номерПериода=06, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL07, Iter, if(номерПериода=07, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM07, Iter, if(номерПериода=07, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL07, Iter, if(номерПериода=07, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM07, Iter, if(номерПериода=07, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL08, Iter, if(номерПериода=08, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM08, Iter, if(номерПериода=08, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL08, Iter, if(номерПериода=08, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM08, Iter, if(номерПериода=08, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL09, Iter, if(номерПериода=09, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM09, Iter, if(номерПериода=09, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL09, Iter, if(номерПериода=09, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM09, Iter, if(номерПериода=09, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL10, Iter, if(номерПериода=10, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM10, Iter, if(номерПериода=10, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL10, Iter, if(номерПериода=10, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM10, Iter, if(номерПериода=10, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL11, Iter, if(номерПериода=11, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM11, Iter, if(номерПериода=11, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL11, Iter, if(номерПериода=11, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM11, Iter, if(номерПериода=11, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
 --
 InsertInArray(lДKOL12, Iter, if(номерПериода=12, if(ДебетовыйОборот, repKOL, 0.00), 0.00));
 InsertInArray(lДSUM12, Iter, if(номерПериода=12, if(ДебетовыйОборот, repSUM, 0.00), 0.00));
 InsertInArray(lКKOL12, Iter, if(номерПериода=12, if(ДебетовыйОборот, 0.00, repKOL), 0.00));
 InsertInArray(lКSUM12, Iter, if(номерПериода=12, if(ДебетовыйОборот, 0.00, repSUM), 0.00));
end;

Proc НакоплениеСтрокиДвижения(Iter:Integer; номерПериода:Integer; ДебетовыйОборот:Logical; repKOL:Numeric; repSUM:Numeric);
 if номерПериода=01:
   lДKOL01[Iter]=lДKOL01[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM01[Iter]=lДSUM01[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL01[Iter]=lКKOL01[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM01[Iter]=lКSUM01[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=02:
   lДKOL02[Iter]=lДKOL02[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM02[Iter]=lДSUM02[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL02[Iter]=lКKOL02[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM02[Iter]=lКSUM02[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=03:
   lДKOL03[Iter]=lДKOL03[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM03[Iter]=lДSUM03[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL03[Iter]=lКKOL03[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM03[Iter]=lКSUM03[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=04:
   lДKOL04[Iter]=lДKOL04[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM04[Iter]=lДSUM04[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL04[Iter]=lКKOL04[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM04[Iter]=lКSUM04[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=05:
   lДKOL05[Iter]=lДKOL05[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM05[Iter]=lДSUM05[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL05[Iter]=lКKOL05[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM05[Iter]=lКSUM05[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=06:
   lДKOL06[Iter]=lДKOL06[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM06[Iter]=lДSUM06[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL06[Iter]=lКKOL06[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM06[Iter]=lКSUM06[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=07:
   lДKOL07[Iter]=lДKOL07[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM07[Iter]=lДSUM07[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL07[Iter]=lКKOL07[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM07[Iter]=lКSUM07[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=08:
   lДKOL08[Iter]=lДKOL08[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM08[Iter]=lДSUM08[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL08[Iter]=lКKOL08[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM08[Iter]=lКSUM08[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=09:
   lДKOL09[Iter]=lДKOL09[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM09[Iter]=lДSUM09[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL09[Iter]=lКKOL09[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM09[Iter]=lКSUM09[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=10:
   lДKOL10[Iter]=lДKOL10[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM10[Iter]=lДSUM10[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL10[Iter]=lКKOL10[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM10[Iter]=lКSUM10[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=11:
   lДKOL11[Iter]=lДKOL11[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM11[Iter]=lДSUM11[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL11[Iter]=lКKOL11[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM11[Iter]=lКSUM11[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
 --
 if номерПериода=12:
   lДKOL12[Iter]=lДKOL12[Iter]+if(ДебетовыйОборот, repKOL, 0.00);
   lДSUM12[Iter]=lДSUM12[Iter]+if(ДебетовыйОборот, repSUM, 0.00);
   lКKOL12[Iter]=lКKOL12[Iter]+if(ДебетовыйОборот, 0.00, repKOL);
   lКSUM12[Iter]=lКSUM12[Iter]+if(ДебетовыйОборот, 0.00, repSUM);
 fi;
end;

Func СформироватьИнфо :String;
var tmp1, tmp2, tmp3 :String;
 tmp1="МОЛ: "+if(отчМОЛ<>"", "["+отчМОЛ+"]"+if(МОЛимя<>"", " - "+МОЛимя, ""), "все МОЛ");
 tmp2="Местонахождение: "+if(отчМХЭ<>"", "["+отчМХЭ+"]"+if(МХЭимя<>"", " - "+МХЭимя, ""), "все местонахождения");
 tmp3="По счетам: "+отчСЧТ+if(отчКБК<>"", " и маске КБК: "+отчКБК, "")+if(отчДАН<>"", "{"+отчДАН+"}", "");
 ^(tmp1+".   "+tmp2+".   "+tmp3+".");
end;

Func USE_ИНВЕНТАРНЫЙ_НОМЕР(ACC:String; SUM:Numeric; KOL:Numeric; ddОТЧ:Date; FindУЧН:String; ctНФА100П:Numeric; ctНФА_ИНВ:Numeric; отчет_по_104:Logical) :Logical;
var Цена :Numeric;
 if Match(ACC, "*.?.101.??.???"):
    if Match(ACC, "*.?.101.?7.???"):
      if Match(FindУЧН, pfxУЧН+".*"): ^True; else if ctНФА100П>0.00 and SUM<>0.00 and KOL<>0.00: Цена=Abs(SUM)/Abs(KOL); if Цена>ctНФА100П: ^True; fi; fi; fi;
    else 
      if Match(FindУЧН, pfxУЧН+".*"): ^True; else if ctНФА_ИНВ>0.00 and SUM<>0.00 and KOL<>0.00: Цена=Abs(SUM)/Abs(KOL); if Цена>ctНФА_ИНВ: ^True; fi; fi; fi;
    fi;
 |  Match(ACC, "*.?.102.??.???"): ^True;
 |  Match(ACC, "*.?.103.??.???"): ^True;
 |  Match(ACC, "*.?.104.??.???"): if отчет_по_104: ^True; fi;
 fi;
 ^False;
end;

Func ВзятьИсточникСредств(Value:String) :String;
 if Value="1": ^"бюджет";
 |  Value="2": ^"внебюджет";
 |  Value="З": ^"забаланс";
 else ^"";
 fi;
end;

Func ПоискДанных(MaskACC:String; MaskANA:String; ddBP:Date; ddEP:Date; flgПроводкиБезСправочникаНФА:Logical) :Logical;
var ВременныйФайл, aVal1, aVal2, aDeb, aCre, aComment, КОДСЧТ, КОДНФА, КОДУЧН, sНФАref, RefText, svrANA, tmp :String;
var okData, Режим, UseAna, Work, MatchOK, СЧДЕБ, БЕЗУЧН, useУЧН, только104 :Logical;
var УслNum, itrНФА, оборотNum, xx, ii, pp, jj, len, hh, kk :Integer;
var aSum1, aSum2, SUM, QUA, KOL, constНФА100П, constНФА_ИНВ :Numeric;
var aDate :Date;
 okData=False;
 Refresh(False);
 Режим=AutoRefresh;
 ToggleAutoRefresh(False);
 ShowProgress(0, "Подготовка данных...");
 Try
   ОчиститьLST;
   TimeCreationRep="Время создания отчета: "+DateToString(ToDay)+" "+TimeToHMSstring(Time);
   -- Константы НФА
   Try SUM=Com_Var("ОС_100" , ddEP); Except SUM=0.00; end;
   if not SUM>0: if ddEP>=1.1.2011: SUM=40000; else SUM=20000; fi; fi;
   constНФА100П=SUM;
   Try SUM=Com_Var("ОС_РАСХ" , ddEP); Except SUM=0.00; end;
   if not SUM>0: if ddEP>=1.1.2009: SUM=3000; else SUM=1000; fi; fi;
   constНФА_ИНВ=SUM;
   --
   УслNum=LengthOfArray(УслАНА);
   оборотNum=LengthOfArray(BufDНП);
   if УслNum>0: UseAna=True; else UseAna=False; fi;
   itrНФА=0;
   только104=if(Match(отчСЧТ, "104.??"), True, False);
   -- ***
   -- Считаем ОСТАТКИ на НАЧАЛО! периода
   -- ***
   ClearVariable(aAna);
   ВременныйФайл=PlanVar('CACHE')+"\"+GetGUID;
   if ExistFile(ВременныйФайл): DeleteFile(ВременныйФайл); fi;
   xx=TujRepBalAccount+TujRepNoNullBal+TujRepCombinedAna+if(flgЗабаланс, TujRepZabalance, 0);
   len=TujReport(ВременныйФайл, 1.1.100, ddBP, MaskACC, MaskANA, "ДНФА", "", "", xx, False);
   if len>0:
      OpenTextJur(ВременныйФайл);
      Try
        ShowProgress(len, "Выборка остатков НФА...");
        ii=0;
        while not GetTransFromTextJur(aDate, aSum1, aVal1, aSum2, aVal2, aDeb, aCre, aAna, aComment) do
          ii=ii+1;
          ProgressPos(ii);
          xx=LengthOfArray(aAna);
          Work=True;
          -- Отбор по фильтру аналитики
          if UseAna and xx>0:
            for hh=1 to УслNum do   -- цикл дополнительных условий
              MatchOK=False;
              for jj=1 to xx do  -- цикл по аналитике проводки
                pp=Pos(":", aAna[jj]);
                if pp>0: svrANA=SubStr(aAna[jj], 1, pp-1); else svrANA=aAna[jj]; fi;
                tmp=SubStr(svrANA, 1, 1);
                if tmp="+" or tmp="-": svrANA=SubStr(svrANA, 2, 255); fi;
                MatchOK=ПризнакСоотвМаске(svrANA, УслАНА[hh]);
                if MatchOK: Break; fi;
              od;
              if Work and MatchOK: Work=True; else Work=False; fi;
              if not Work: Break; fi; -- проводка не соответствует условию отбора
            od;
          fi;
          if Work: -- если проводка соответствует условию отбора
            КОДСЧТ=""; SUM=0.00;
            if aDeb="00" or aDeb="00Z": КОДСЧТ=aCre; СЧДЕБ=False; fi;
            if aCre="00" or aCre="00Z": КОДСЧТ=aDeb; СЧДЕБ=True;  fi;
            if только104:
              if Match(КОДСЧТ, "???.????.???????.???.?.104.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
              else КОДСЧТ="";
              fi;
            else
              if Match(КОДСЧТ, "???.????.???????.???.?.101.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
              |  Match(КОДСЧТ, "???.????.???????.???.?.102.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
              |  Match(КОДСЧТ, "???.????.???????.???.?.103.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
              |  Match(КОДСЧТ, "???.????.???????.???.?.105.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=True;
              |  Match(КОДСЧТ, "ЗАБ.??.10?.??")                       : КОДСЧТ=КОДСЧТ;                      БЕЗУЧН=True;
              else КОДСЧТ="";
              fi;
            fi;
            if КОДСЧТ<>"":
              if (aVal1="" or aVal1="РУБ") and aSum1<>0: if СЧДЕБ: SUM=aSum1; else SUM=-aSum1; fi;
              |  (aVal2="" or aVal2="РУБ") and aSum2<>0: if СЧДЕБ: SUM=aSum2; else SUM=-aSum2; fi;
              else SUM=0.00;
              fi;
              -- очистка аналитики
              КОДНФА=""; КОДУЧН=""; sНФАref=""; QUA=0.00; KOL=0.00;
              if xx>0:
                for jj=1 to xx do
                  Work=True; -- для поиска дополнительных признаков
                  pp=Pos(":", aAna[jj]);
                  if pp>0:
                    QUA=StringToNumeric(SubStr(aAna[jj], pp+1, Length(aAna[jj])-pp));
                    svrANA=SubStr(aAna[jj], 1, pp-1);
                  else
                    svrANA=aAna[jj];
                  fi;
                  tmp=SubStr(svrANA, 1, 1);
                  if tmp="+" or tmp="-": svrANA=SubStr(svrANA, 2, 255); fi;
                  -- ищем СТАНДАРТНЫЕ признаки (Work=False - признак нашли, работу для текущего прохода цикла завершаем)
                  if Match(svrANA, "НФА.*"):
                    Work=False;
                    КОДНФА=svrANA;
                    KOL=if(СЧДЕБ, QUA, -QUA);
                  |  Match(svrANA, pfxУЧН+".*"):
                    Work=False;
                    КОДУЧН=svrANA;
                  fi;
                  -- ищем ДОПОЛНИТЕЛЬНЫЕ признаки
                  -- ... в этот раз не надо :)
                od;
              fi; --xx>0
              -- Анализируем найденные признаки
              -- Анализ признака НФА
              if КОДНФА="": КОДНФА="НФА.###"; fi;
              hh=SearchInArray(LST_НФА, КОДНФА, True, 1);
              if hh=-1:
                itrНФА=itrНФА+1;
                sНФАref=Format("%.7d", itrНФА);
                pp=InsertInArraySort(LST_НФА, КОДНФА);
                InsertInArray(REF_НФА, pp, sНФАref);
              else
                sНФАref=REF_НФА[hh];
              fi;
              -- Анализ учетных номеров
              --useУЧН=USE_ИНВЕНТАРНЫЙ_НОМЕР(КОДСЧТ, SUM, KOL, ddBP, КОДУЧН);
              useУЧН=USE_ИНВЕНТАРНЫЙ_НОМЕР(КОДСЧТ, SUM, KOL, ddBP, КОДУЧН, constНФА100П, constНФА_ИНВ, только104);
              if БЕЗУЧН or Trim(КОДУЧН)="" or not useУЧН: КОДУЧН="УЧН.###"; fi;
              -- Формируем идентификатор строки отчета
              RefText=КОДСЧТ+"|"+sНФАref+"|"+КОДУЧН;
              hh=SearchInArray(LST_UNQ, RefText, True, 1);
              if hh=-1:
                pp=InsertInArraySort(LST_UNQ, RefText);
                InsertInArray(lНKOL00, pp, KOL);
                InsertInArray(lНSUM00, pp, SUM);
                --
                InsertInArray(lДKOL01, pp, 0.00);
                InsertInArray(lДSUM01, pp, 0.00);
                InsertInArray(lКKOL01, pp, 0.00);
                InsertInArray(lКSUM01, pp, 0.00);
                --
                InsertInArray(lДKOL02, pp, 0.00);
                InsertInArray(lДSUM02, pp, 0.00);
                InsertInArray(lКKOL02, pp, 0.00);
                InsertInArray(lКSUM02, pp, 0.00);
                --
                InsertInArray(lДKOL03, pp, 0.00);
                InsertInArray(lДSUM03, pp, 0.00);
                InsertInArray(lКKOL03, pp, 0.00);
                InsertInArray(lКSUM03, pp, 0.00);
                --
                InsertInArray(lДKOL04, pp, 0.00);
                InsertInArray(lДSUM04, pp, 0.00);
                InsertInArray(lКKOL04, pp, 0.00);
                InsertInArray(lКSUM04, pp, 0.00);
                --
                InsertInArray(lДKOL05, pp, 0.00);
                InsertInArray(lДSUM05, pp, 0.00);
                InsertInArray(lКKOL05, pp, 0.00);
                InsertInArray(lКSUM05, pp, 0.00);
                --
                InsertInArray(lДKOL06, pp, 0.00);
                InsertInArray(lДSUM06, pp, 0.00);
                InsertInArray(lКKOL06, pp, 0.00);
                InsertInArray(lКSUM06, pp, 0.00);
                --
                InsertInArray(lДKOL07, pp, 0.00);
                InsertInArray(lДSUM07, pp, 0.00);
                InsertInArray(lКKOL07, pp, 0.00);
                InsertInArray(lКSUM07, pp, 0.00);
                --
                InsertInArray(lДKOL08, pp, 0.00);
                InsertInArray(lДSUM08, pp, 0.00);
                InsertInArray(lКKOL08, pp, 0.00);
                InsertInArray(lКSUM08, pp, 0.00);
                --
                InsertInArray(lДKOL09, pp, 0.00);
                InsertInArray(lДSUM09, pp, 0.00);
                InsertInArray(lКKOL09, pp, 0.00);
                InsertInArray(lКSUM09, pp, 0.00);
                --
                InsertInArray(lДKOL10, pp, 0.00);
                InsertInArray(lДSUM10, pp, 0.00);
                InsertInArray(lКKOL10, pp, 0.00);
                InsertInArray(lКSUM10, pp, 0.00);
                --
                InsertInArray(lДKOL11, pp, 0.00);
                InsertInArray(lДSUM11, pp, 0.00);
                InsertInArray(lКKOL11, pp, 0.00);
                InsertInArray(lКSUM11, pp, 0.00);
                --
                InsertInArray(lДKOL12, pp, 0.00);
                InsertInArray(lДSUM12, pp, 0.00);
                InsertInArray(lКKOL12, pp, 0.00);
                InsertInArray(lКSUM12, pp, 0.00);
                --
                InsertInArray(lДKOL12, pp, 0.00);
                InsertInArray(lДSUM12, pp, 0.00);
                InsertInArray(lКKOL12, pp, 0.00);
                InsertInArray(lКSUM12, pp, 0.00);
              else
                lНKOL00[hh]=lНKOL00[hh]+KOL;
                lНSUM00[hh]=lНSUM00[hh]+SUM;
              fi;
            fi; -- КОДСЧТ<>""
          fi; -- if Work
        end; -- while
      Finally
        CloseTextJur;
      end; -- Try
      Try DeleteFile(ВременныйФайл); Except end;
   fi; -- len>0 (TujReport)
   -- ***
   -- Считаем ОБОРОТЫ
   -- ***
   if оборотNum>0:
     for kk=1 to оборотNum do
       ClearVariable(aAna);
       ВременныйФайл=PlanVar('CACHE')+"\"+GetGUID;
       if ExistFile(ВременныйФайл): DeleteFile(ВременныйФайл); fi;
       xx=TujRepTurnDebCre+TujRepNoNullBal+TujRepCombinedAna+if(flgЗабаланс, TujRepZabalance, 0);
       len=TujReport(ВременныйФайл, BufDНП[kk], BufDКП[kk], MaskACC, MaskANA, "ДНФА", "", "", xx, False);
       if len>0:
          OpenTextJur(ВременныйФайл);
          Try
            ShowProgress(len, "Выборка оборотов НФА за "+ИменаОтчетногоПериода(if(flgОбоФинГод, kk, отчПерНом), flgОтчКварт)+"...");
            ii=0;
            while not GetTransFromTextJur(aDate, aSum1, aVal1, aSum2, aVal2, aDeb, aCre, aAna, aComment) do
              ii=ii+1;
              ProgressPos(ii);
              xx=LengthOfArray(aAna);
              Work=True;
              -- Отбор по фильтру аналитики
              if UseAna and xx>0:
                for hh=1 to УслNum do   -- цикл дополнительных условий
                  MatchOK=False;
                  for jj=1 to xx do  -- цикл по аналитике проводки
                    pp=Pos(":", aAna[jj]);
                    if pp>0: svrANA=SubStr(aAna[jj], 1, pp-1); else svrANA=aAna[jj]; fi;
                    tmp=SubStr(svrANA, 1, 1);
                    if tmp="+" or tmp="-": svrANA=SubStr(svrANA, 2, 255); fi;
                    MatchOK=ПризнакСоотвМаске(svrANA, УслАНА[hh]);
                    if MatchOK: Break; fi;
                  od;
                  if Work and MatchOK: Work=True; else Work=False; fi;
                  if not Work: Break; fi; -- проводка не соответствует условию отбора
                od;
              fi;
              if Work: -- если проводка соответствует условию отбора
                КОДСЧТ=""; SUM=0.00;
                if aDeb="00" or aDeb="00Z": КОДСЧТ=aCre; СЧДЕБ=False; fi;
                if aCre="00" or aCre="00Z": КОДСЧТ=aDeb; СЧДЕБ=True;  fi;
                if только104:
                  if Match(КОДСЧТ, "???.????.???????.???.?.104.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
                  else КОДСЧТ="";
                  fi;
                else
                  if Match(КОДСЧТ, "???.????.???????.???.?.101.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
                  |  Match(КОДСЧТ, "???.????.???????.???.?.102.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
                  |  Match(КОДСЧТ, "???.????.???????.???.?.103.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=False;
                  |  Match(КОДСЧТ, "???.????.???????.???.?.105.??.???")   : КОДСЧТ=SubStr(КОДСЧТ, 1, 30)+"???"; БЕЗУЧН=True;
                  |  Match(КОДСЧТ, "ЗАБ.??.10?.??")                       : КОДСЧТ=КОДСЧТ;                      БЕЗУЧН=True;
                  else КОДСЧТ="";
                  fi;
                fi;
                if КОДСЧТ<>"":
                  if (aVal1="" or aVal1="РУБ") and aSum1<>0: SUM=aSum1;
                  |  (aVal2="" or aVal2="РУБ") and aSum2<>0: SUM=aSum2;
                  else SUM=0.00;
                  fi;
                  -- очистка аналитики
                  КОДНФА=""; КОДУЧН=""; sНФАref=""; QUA=0.00; KOL=0.00;
                  if xx>0:
                    for jj=1 to xx do
                      Work=True; -- для поиска дополнительных признаков
                      pp=Pos(":", aAna[jj]);
                      if pp>0:
                        QUA=StringToNumeric(SubStr(aAna[jj], pp+1, Length(aAna[jj])-pp));
                        svrANA=SubStr(aAna[jj], 1, pp-1);
                      else
                        svrANA=aAna[jj];
                      fi;
                      tmp=SubStr(svrANA, 1, 1);
                      if tmp="+" or tmp="-": svrANA=SubStr(svrANA, 2, 255); fi;
                      -- ищем СТАНДАРТНЫЕ признаки (Work=False - признак нашли, работу для текущего прохода цикла завершаем)
                      if Match(svrANA, "НФА.*"):
                        Work=False;
                        КОДНФА=svrANA;
                        KOL=QUA;
                      |  Match(svrANA, pfxУЧН+".*"):
                        Work=False;
                        КОДУЧН=svrANA;
                      fi;
                      -- ищем ДОПОЛНИТЕЛЬНЫЕ признаки
                      -- ... в этот раз не надо :)
                    od;
                  fi; --xx>0
                  -- Анализируем найденные признаки
                  -- Анализ признака НФА
                  if КОДНФА="": КОДНФА="НФА.###"; fi;
                  hh=SearchInArray(LST_НФА, КОДНФА, True, 1);
                  if hh=-1:
                    itrНФА=itrНФА+1;
                    sНФАref=Format("%.7d", itrНФА);
                    pp=InsertInArraySort(LST_НФА, КОДНФА);
                    InsertInArray(REF_НФА, pp, sНФАref);
                  else
                    sНФАref=REF_НФА[hh];
                  fi;
                  -- Анализ учетных номеров
                  --useУЧН=USE_ИНВЕНТАРНЫЙ_НОМЕР(КОДСЧТ, SUM, KOL, ddBP, КОДУЧН);
                  useУЧН=USE_ИНВЕНТАРНЫЙ_НОМЕР(КОДСЧТ, SUM, KOL, ddBP, КОДУЧН, constНФА100П, constНФА_ИНВ, только104);
                  if БЕЗУЧН or Trim(КОДУЧН)="" or not useУЧН: КОДУЧН="УЧН.###"; fi;
                  -- Формируем идентификатор строки отчета
                  RefText=КОДСЧТ+"|"+sНФАref+"|"+КОДУЧН;
                  hh=SearchInArray(LST_UNQ, RefText, True, 1);
                  if hh=-1:
                    pp=InsertInArraySort(LST_UNQ, RefText);
                    ДобавитьНовуюСтрокуДвижения(pp, kk, СЧДЕБ, KOL, SUM);
                  else
                    НакоплениеСтрокиДвижения(hh, kk, СЧДЕБ, KOL, SUM);
                  fi;
                fi; -- КОДСЧТ<>""
              fi; -- if Work
            end; -- while
          Finally
            CloseTextJur;
          end; -- Try
          Try DeleteFile(ВременныйФайл); Except end;
       fi; -- len>0 (TujReport)
     od; -- цикл по датам оборотов
   fi; -- оборотNum>0
   len=LengthOfArray(LST_UNQ);
   if len>0:
     if itrНФА>0:
       СтркArНФА=itrНФА;
       CloseProgress;
       ShowProgress(1, "Сортировка промежуточных данных...");
       SortSection(СтркArНФА, "REF_НФА", True, False);
     fi;
     ShowProgress(len, "Формирование ведомости...");
     ОчиститьТаблицу;
     ОчиститьИтоги;
     ValidateОтчетSection;
     xx=0;
     for ii=1 to len do
       КОДСЧТ=""; КОДНФА=""; sНФАref=""; КОДУЧН=""; SUM=0.00; KOL=0.00;
       ProgressPos(ii);
       SUM=Abs(lНSUM00[ii])+Abs(lДSUM01[ii])+Abs(lКSUM01[ii])+Abs(lДSUM02[ii])+Abs(lКSUM02[ii])+Abs(lДSUM03[ii])+Abs(lКSUM03[ii])
                           +Abs(lДSUM04[ii])+Abs(lКSUM04[ii])+Abs(lДSUM05[ii])+Abs(lКSUM05[ii])+Abs(lДSUM06[ii])+Abs(lКSUM06[ii])
                           +Abs(lДSUM07[ii])+Abs(lКSUM07[ii])+Abs(lДSUM08[ii])+Abs(lКSUM08[ii])+Abs(lДSUM09[ii])+Abs(lКSUM09[ii])
                           +Abs(lДSUM10[ii])+Abs(lКSUM10[ii])+Abs(lДSUM11[ii])+Abs(lКSUM11[ii])+Abs(lДSUM12[ii])+Abs(lКSUM12[ii]);
       KOL=Abs(lНKOL00[ii])+Abs(lДKOL01[ii])+Abs(lКKOL01[ii])+Abs(lДKOL02[ii])+Abs(lКKOL02[ii])+Abs(lДKOL03[ii])+Abs(lКKOL03[ii])
                           +Abs(lДKOL04[ii])+Abs(lКKOL04[ii])+Abs(lДKOL05[ii])+Abs(lКKOL05[ii])+Abs(lДKOL06[ii])+Abs(lКKOL06[ii])
                           +Abs(lДKOL07[ii])+Abs(lКKOL07[ii])+Abs(lДKOL08[ii])+Abs(lКKOL08[ii])+Abs(lДKOL09[ii])+Abs(lКKOL09[ii])
                           +Abs(lДKOL10[ii])+Abs(lКKOL10[ii])+Abs(lДKOL11[ii])+Abs(lКKOL11[ii])+Abs(lДKOL12[ii])+Abs(lКKOL12[ii]);
       -- КОДСЧТ|sНФАref|КОДУЧН
       КОДСЧТ  = Trim(ExtractWord(1, LST_UNQ[ii], "|"));
       sНФАref = Trim(ExtractWord(2, LST_UNQ[ii], "|"));
       КОДУЧН  = Trim(ExtractWord(3, LST_UNQ[ii], "|"));
       pp=Int(sНФАref);
       if pp>0: КОДНФА=LST_НФА[pp]; else КОДНФА=""; fi;
       --
       if ValidSign(КОДНФА) or КОДНФА="НФА.###": Work=True; else Work=False; fi;
       --
       if Work and (SUM<>0.00 or KOL<>0.00):
         xx=xx+1;
         if только104:
           if Match(КОДСЧТ, "???.????.???????.???.?.104.??.???")   : ИСТСРД[xx]=ВзятьИсточникСредств(SubStr(КОДСЧТ, 22, 1)); тКБКСЧТ[xx]=SubStr(КОДСЧТ, 1, 20); тКОДСЧТ[xx]=SubStr(КОДСЧТ, 24, 6); БЕЗУЧН=False;
           fi;
         else
           if Match(КОДСЧТ, "???.????.???????.???.?.101.??.???")   : ИСТСРД[xx]=ВзятьИсточникСредств(SubStr(КОДСЧТ, 22, 1)); тКБКСЧТ[xx]=SubStr(КОДСЧТ, 1, 20); тКОДСЧТ[xx]=SubStr(КОДСЧТ, 24, 6); БЕЗУЧН=False;
           |  Match(КОДСЧТ, "???.????.???????.???.?.102.??.???")   : ИСТСРД[xx]=ВзятьИсточникСредств(SubStr(КОДСЧТ, 22, 1)); тКБКСЧТ[xx]=SubStr(КОДСЧТ, 1, 20); тКОДСЧТ[xx]=SubStr(КОДСЧТ, 24, 6); БЕЗУЧН=False;
           |  Match(КОДСЧТ, "???.????.???????.???.?.103.??.???")   : ИСТСРД[xx]=ВзятьИсточникСредств(SubStr(КОДСЧТ, 22, 1)); тКБКСЧТ[xx]=SubStr(КОДСЧТ, 1, 20); тКОДСЧТ[xx]=SubStr(КОДСЧТ, 24, 6); БЕЗУЧН=False;
           |  Match(КОДСЧТ, "???.????.???????.???.?.105.??.???")   : ИСТСРД[xx]=ВзятьИсточникСредств(SubStr(КОДСЧТ, 22, 1)); тКБКСЧТ[xx]=SubStr(КОДСЧТ, 1, 20); тКОДСЧТ[xx]=SubStr(КОДСЧТ, 24, 6); БЕЗУЧН=True;
           |  Match(КОДСЧТ, "ЗАБ.??.10?.??")                       : ИСТСРД[xx]=ВзятьИсточникСредств("З");                   тКБКСЧТ[xx]="ЗАБАЛАНС";            тКОДСЧТ[xx]=SubStr(КОДСЧТ,  8, 6); БЕЗУЧН=True;
           fi;
         fi;
         if КОДУЧН="УЧН.###": КОДУЧН=""; fi;
         тКОДНФА[xx]=КОДНФА;
         тИМЯНФА[xx]=УдалитьРазделитель(Trim(Name_A(КОДНФА)));
         if тИМЯНФА[xx]="": if КОДНФА="НФА.###": тИМЯНФА[xx]="_ нет кода НФА"; else тИМЯНФА[xx]=КОДНФА; fi; fi;
         ЕДНИЗМ[xx]=Lo(Unit(КОДНФА));
         тУЧННОМ[xx]=КОДУЧН;
         тИНВНОМ[xx]=Trim(Name_A("ИНВВЕД."+КОДНФА+"."+КОДУЧН));
         -- Считаем остатки на начало периодов
         КОЛОСТ00[xx]=lНKOL00[ii];
         СУМОСТ00[xx]=lНSUM00[ii];
         КОЛОБД01[xx]=lДKOL01[ii];
         СУМОБД01[xx]=lДSUM01[ii];
         КОЛОБК01[xx]=lКKOL01[ii];
         СУМОБК01[xx]=lКSUM01[ii];
         КОЛОСТ01[xx]=КОЛОСТ00[xx]+КОЛОБД01[xx]-КОЛОБК01[xx];
         СУМОСТ01[xx]=СУМОСТ00[xx]+СУМОБД01[xx]-СУМОБК01[xx];
         if flgОбоФинГод:
           if отчПерНом>1:
             КОЛОБД02[xx]=lДKOL02[ii];
             СУМОБД02[xx]=lДSUM02[ii];
             КОЛОБК02[xx]=lКKOL02[ii];
             СУМОБК02[xx]=lКSUM02[ii];
             КОЛОСТ02[xx]=КОЛОСТ01[xx]+КОЛОБД02[xx]-КОЛОБК02[xx];
             СУМОСТ02[xx]=СУМОСТ01[xx]+СУМОБД02[xx]-СУМОБК02[xx];
           fi;
           if отчПерНом>2:
             КОЛОБД03[xx]=lДKOL03[ii];
             СУМОБД03[xx]=lДSUM03[ii];
             КОЛОБК03[xx]=lКKOL03[ii];
             СУМОБК03[xx]=lКSUM03[ii];
             КОЛОСТ03[xx]=КОЛОСТ02[xx]+КОЛОБД03[xx]-КОЛОБК03[xx];
             СУМОСТ03[xx]=СУМОСТ02[xx]+СУМОБД03[xx]-СУМОБК03[xx];
           fi;
           if отчПерНом>3:
             КОЛОБД04[xx]=lДKOL04[ii];
             СУМОБД04[xx]=lДSUM04[ii];
             КОЛОБК04[xx]=lКKOL04[ii];
             СУМОБК04[xx]=lКSUM04[ii];
             КОЛОСТ04[xx]=КОЛОСТ03[xx]+КОЛОБД04[xx]-КОЛОБК04[xx];
             СУМОСТ04[xx]=СУМОСТ03[xx]+СУМОБД04[xx]-СУМОБК04[xx];
           fi;
           if not flgОтчКварт:
             if отчПерНом>4:
               КОЛОБД05[xx]=lДKOL05[ii];
               СУМОБД05[xx]=lДSUM05[ii];
               КОЛОБК05[xx]=lКKOL05[ii];
               СУМОБК05[xx]=lКSUM05[ii];
               КОЛОСТ05[xx]=КОЛОСТ04[xx]+КОЛОБД05[xx]-КОЛОБК05[xx];
               СУМОСТ05[xx]=СУМОСТ04[xx]+СУМОБД05[xx]-СУМОБК05[xx];
             fi;
             if отчПерНом>5:
               КОЛОБД06[xx]=lДKOL06[ii];
               СУМОБД06[xx]=lДSUM06[ii];
               КОЛОБК06[xx]=lКKOL06[ii];
               СУМОБК06[xx]=lКSUM06[ii];
               КОЛОСТ06[xx]=КОЛОСТ05[xx]+КОЛОБД06[xx]-КОЛОБК06[xx];
               СУМОСТ06[xx]=СУМОСТ05[xx]+СУМОБД06[xx]-СУМОБК06[xx];
             fi;
             if отчПерНом>6:
               КОЛОБД07[xx]=lДKOL07[ii];
               СУМОБД07[xx]=lДSUM07[ii];
               КОЛОБК07[xx]=lКKOL07[ii];
               СУМОБК07[xx]=lКSUM07[ii];
               КОЛОСТ07[xx]=КОЛОСТ06[xx]+КОЛОБД07[xx]-КОЛОБК07[xx];
               СУМОСТ07[xx]=СУМОСТ06[xx]+СУМОБД07[xx]-СУМОБК07[xx];
             fi;
             if отчПерНом>7:
               КОЛОБД08[xx]=lДKOL08[ii];
               СУМОБД08[xx]=lДSUM08[ii];
               КОЛОБК08[xx]=lКKOL08[ii];
               СУМОБК08[xx]=lКSUM08[ii];
               КОЛОСТ08[xx]=КОЛОСТ07[xx]+КОЛОБД08[xx]-КОЛОБК08[xx];
               СУМОСТ08[xx]=СУМОСТ07[xx]+СУМОБД08[xx]-СУМОБК08[xx];
             fi;
             if отчПерНом>8:
               КОЛОБД09[xx]=lДKOL09[ii];
               СУМОБД09[xx]=lДSUM09[ii];
               КОЛОБК09[xx]=lКKOL09[ii];
               СУМОБК09[xx]=lКSUM09[ii];
               КОЛОСТ09[xx]=КОЛОСТ08[xx]+КОЛОБД09[xx]-КОЛОБК09[xx];
               СУМОСТ09[xx]=СУМОСТ08[xx]+СУМОБД09[xx]-СУМОБК09[xx];
             fi;
             if отчПерНом>9:
               КОЛОБД10[xx]=lДKOL10[ii];
               СУМОБД10[xx]=lДSUM10[ii];
               КОЛОБК10[xx]=lКKOL10[ii];
               СУМОБК10[xx]=lКSUM10[ii];
               КОЛОСТ10[xx]=КОЛОСТ09[xx]+КОЛОБД10[xx]-КОЛОБК10[xx];
               СУМОСТ10[xx]=СУМОСТ09[xx]+СУМОБД10[xx]-СУМОБК10[xx];
             fi;
             if отчПерНом>10:
               КОЛОБД11[xx]=lДKOL11[ii];
               СУМОБД11[xx]=lДSUM11[ii];
               КОЛОБК11[xx]=lКKOL11[ii];
               СУМОБК11[xx]=lКSUM11[ii];
               КОЛОСТ11[xx]=КОЛОСТ10[xx]+КОЛОБД11[xx]-КОЛОБК11[xx];
               СУМОСТ11[xx]=СУМОСТ10[xx]+СУМОБД11[xx]-СУМОБК11[xx];
             fi;
             if отчПерНом>11:
               КОЛОБД12[xx]=lДKOL12[ii];
               СУМОБД12[xx]=lДSUM12[ii];
               КОЛОБК12[xx]=lКKOL12[ii];
               СУМОБК12[xx]=lКSUM12[ii];
               КОЛОСТ12[xx]=КОЛОСТ11[xx]+КОЛОБД12[xx]-КОЛОБК12[xx];
               СУМОСТ12[xx]=СУМОСТ11[xx]+СУМОБД12[xx]-СУМОБК12[xx];
             fi;
           fi;
         fi;
       fi;
     od;
   else
     Message("По заданнам условиям отбора^Mданных для отбора не обнаружено!", mtInformation);
     ^False;
   fi;
   len=LengthOfArray(тКОДНФА);
   if len>0:
     okData=True;
   else
     Message("По заданнам условиям отбора^Mненулевых остатков не обнаружено!", mtInformation);
     okData=False;
   fi;
 Finally
   ToggleAutoRefresh(Режим);
   CloseProgress;
 end;
 ^okData;
end;

Proc ПостроениеОтчета;
var len :Integer;
 len=LengthOfArray(тКОДНФА);
 if len>0:

   Позиции=len;
   ПересортировкаВедомости(len, UserSortField);

   ИТГ_СУМОСТ00=SumOfArray(СУМОСТ00, Позиции);

   ИТГ_СУМОБД01=SumOfArray(СУМОБД01, Позиции); ИТГ_СУМОБД02=SumOfArray(СУМОБД02, Позиции); ИТГ_СУМОБД03=SumOfArray(СУМОБД03, Позиции);
   ИТГ_СУМОБК01=SumOfArray(СУМОБК01, Позиции); ИТГ_СУМОБК02=SumOfArray(СУМОБК02, Позиции); ИТГ_СУМОБК03=SumOfArray(СУМОБК03, Позиции);
   ИТГ_СУМОСТ01=SumOfArray(СУМОСТ01, Позиции); ИТГ_СУМОСТ02=SumOfArray(СУМОСТ02, Позиции); ИТГ_СУМОСТ03=SumOfArray(СУМОСТ03, Позиции);

   ИТГ_СУМОБД04=SumOfArray(СУМОБД04, Позиции); ИТГ_СУМОБД05=SumOfArray(СУМОБД05, Позиции); ИТГ_СУМОБД06=SumOfArray(СУМОБД06, Позиции);
   ИТГ_СУМОБК04=SumOfArray(СУМОБК04, Позиции); ИТГ_СУМОБК05=SumOfArray(СУМОБК05, Позиции); ИТГ_СУМОБК06=SumOfArray(СУМОБК06, Позиции);
   ИТГ_СУМОСТ04=SumOfArray(СУМОСТ04, Позиции); ИТГ_СУМОСТ05=SumOfArray(СУМОСТ05, Позиции); ИТГ_СУМОСТ06=SumOfArray(СУМОСТ06, Позиции);

   ИТГ_СУМОБД07=SumOfArray(СУМОБД07, Позиции); ИТГ_СУМОБД08=SumOfArray(СУМОБД08, Позиции); ИТГ_СУМОБД09=SumOfArray(СУМОБД09, Позиции);
   ИТГ_СУМОБК07=SumOfArray(СУМОБК07, Позиции); ИТГ_СУМОБК08=SumOfArray(СУМОБК08, Позиции); ИТГ_СУМОБК09=SumOfArray(СУМОБК09, Позиции);
   ИТГ_СУМОСТ07=SumOfArray(СУМОСТ07, Позиции); ИТГ_СУМОСТ08=SumOfArray(СУМОСТ08, Позиции); ИТГ_СУМОСТ09=SumOfArray(СУМОСТ09, Позиции);

   ИТГ_СУМОБД10=SumOfArray(СУМОБД10, Позиции); ИТГ_СУМОБД11=SumOfArray(СУМОБД11, Позиции); ИТГ_СУМОБД12=SumOfArray(СУМОБД12, Позиции);
   ИТГ_СУМОБК10=SumOfArray(СУМОБК10, Позиции); ИТГ_СУМОБК11=SumOfArray(СУМОБК11, Позиции); ИТГ_СУМОБК12=SumOfArray(СУМОБК12, Позиции);
   ИТГ_СУМОСТ10=SumOfArray(СУМОСТ10, Позиции); ИТГ_СУМОСТ11=SumOfArray(СУМОСТ11, Позиции); ИТГ_СУМОСТ12=SumOfArray(СУМОСТ12, Позиции);

   ИнфоФильтр=СформироватьИнфо;

 fi;
end;

Proc РасчетВедомости;
var MaskACC, BindANA, MaskANA, ResANA, ANA :String;
var OK, ПроводкиБезСправочникаНФА, Flag :Logical;
var num, начало, len, ii, len_Max, kk :Integer;
var tReal :Numeric;
 начало=Time;
 -- Проверка заполнения
 if not ПроверкаДат: Exit; fi;
 if Length(флагиВФО)<>8: отчВФО="[?] Все виды финансового обеспечения"; флагиВФО="11111111"; fi;
 if curAcc<1: curAcc=1; oldAcc=1; отчСЧТ="101.?? 102.?? 103.?? 105.??"; СЧТимя=" Все 'Нефинансовые активы'"; fi;
 --
 MaskACC=ИтоговаяМаскаСчетовОтчета_Взять(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, curAcc);
 --
 BindANA=СправочникиСтруктурыПоМаскеСчетовПрогресс(MaskACC, DataНП, DataКП, True, True);
 if BindANA=" ": Exit; fi; -- если был Except
 if SearchInArray(bindVOC, "НФА.*", True, 1)>0: ПроводкиБезСправочникаНФА=False; else ПроводкиБезСправочникаНФА=True; fi;
 --
 MaskANA="";
 ClearVariable(УслАНА);
 len=0;
 ii=0;
 len_Max=239-Length(MaskACC); -- 239=255-4-3-9= -4 ['*{}] -3 [знак()] -9 [&(~НФА.*)]
 --
 if Trim(отчАНА)<>"":
   ANA=Trim(отчАНА);
   kk=Length(ANA)+2;
   if (len+kk)<=len_Max:
     len=len+kk;
     MaskANA=Объединить(MaskANA, "("+ANA+")",  "&");
   else
     Flag=ВсеСправочникиДопАналитикиПривязаны(отчАНА);
     if not Flag: Exit; fi;
     ii=ii+1;
     УслАНА[ii]=ANA;
   fi;
 fi;
 --
 if Trim(отчДАН)<>"":
   ANA=Trim(отчДАН);
   kk=Length(ANA)+3;
   if (len+kk)<=len_Max:
     len=len+kk;
     MaskANA=Объединить(MaskANA, "("+ANA+")",  "&");
   else
     if SearchInArray(bindVOC, отчVOC+".*", True, 1)>0:
       ii=ii+1;
       УслАНА[ii]=ANA;
     else
       Message("Длинное условие отбора аналитики^MСправочник '"+отчVOC+"' не привязан к счетам учета НФА!", mtError);
       Exit;
     fi;
   fi;
 fi;
 --
 if Trim(отчМОЛ)<>"":
   ANA=Trim(отчМОЛ);
   kk=Length(ANA)+3;
   if (len+kk)<=len_Max:
     len=len+kk;
     MaskANA=Объединить(MaskANA, "("+ANA+")",  "&");
   else
     if SearchInArray(bindVOC, "МОЛ.*", True, 1)>0:
       ii=ii+1;
       УслАНА[ii]=ANA;
     else
       Message("Длинное условие отбора аналитики^MСправочник 'МОЛ' не привязан к счетам учета НФА!", mtError);
       Exit;
     fi;
   fi;
 fi;
 --
 if Trim(отчМХЭ)<>"":
   ANA=Trim(отчМХЭ);
   kk=Length(ANA)+3;
   if (len+kk)<=len_Max:
     len=len+kk;
     MaskANA=Объединить(MaskANA, "("+ANA+")",  "&");
   else
     if SearchInArray(bindVOC, "М.*", True, 1)>0:
       ii=ii+1;
       УслАНА[ii]=ANA;
     else
       Message("Длинное условие отбора аналитики^MСправочник 'М' не привязан к счетам учета НФА!", mtError);
       Exit;
     fi;
   fi;
 fi;
 --
 if Trim(MaskANA)<>"": ResANA=MaskANA+"&(~НФА.*)"; else ResANA="~НФА.*"; fi;
 Try tReal=Saldo("{"+ResANA+"}", 1.1.100); Except Exit; end;
 --
 if not ПроводкиБезСправочникаНФА:
   if Abs(Turn("+("+MaskACC+"){"+ResANA+"}", DataНП, DataКП))>0 or Abs(Turn("-("+MaskACC+"){"+ResANA+"}", DataНП, DataКП))>0:
     num=Enquiry("Выберите действие...", "Обнаружены проводки^Mна "+отчСЧТ+" счетах^Mнепомеченные справочником НФА!", "Проводки в отчет;Отмена;Игнорировать", mtError);
     if num=1:
       Report(PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst"+"|Непомеченные_НФА", DataНП, DataКП, MaskACC, ResANA);
       Exit;
     |  num=3: ПроводкиБезСправочникаНФА=True;
     else
       Exit;
     fi;
   fi;
 fi;
 if ПроводкиБезСправочникаНФА: if Trim(MaskANA)<>"": ResANA="(НФА.*)&"+MaskANA; else ResANA="НФА.*"; fi; else if Trim(MaskANA)<>"": ResANA=MaskANA; else ResANA=""; fi; fi;
 -- Поиск данных
 OK=ПоискДанных(MaskACC, ResANA, DataНП, DataКП, ПроводкиБезСправочникаНФА);
 -- Построение отчета
 if OK:
   ПостроениеОтчета;
   ValidateОтчетSection;
   if Позиции>0: Message("Расчет завершен!^MВремя работы - "+TimeToHMSstring(Time-начало), mtInformation); fi;
 fi;
end;

Proc Реквизиты;
var REC :Record;
var RO :Integer;
 REC=OpenCardFile("КОНТРАГЕНТ", "НАШЕ", УЧР_REC, crdRecordOnly);
 if REC=NIL: Exit; fi;
 RO=OpenWorkArea("КОНТРАГЕНТ", "", "Ukey="+RecordToString(REC));
 Try
   if Records(RO)=1:
     УЧР_REC=REC;
     УЧР_ИМЯ  = GetFieldS(RO, 1, "КОРИМЯ");
     УЧР_ОКПО = GetFieldS(RO, 1, "ОКПО");
   fi;
 Finally
   CloseWorkArea(RO);
 end;
end;

Proc РазрешенЗависимостьМОЛ(Разрешено:Logical);
 if Разрешено: отчМХЭ=""; МХЭимя=""; else flgМОЛМХЭcur=1; flgМОЛМХЭold=flgМОЛМХЭcur; fi;
 Bevel3.Enabled=Разрешено;
 rbtМОЛМХЭ.Enabled=Разрешено;
 rbtМХЭМОЛ.Enabled=Разрешено;
end;

Proc Инициализация;
 lblVersion.Caption=infoVersion;
 SetИСКЛvoc;
 --
 if not Позиции>0:
   curAcc = 1;
   отчВФО="[?] Все виды финансового обеспечения"; флагиВФО="11111111";
   отчСЧТ="101.?? 102.?? 103.?? 105.??"; СЧТимя=" Все 'Нефинансовые активы'"; отчКБК="";
   отчМОЛ=""; МОЛимя =""; отчМХЭ=""; МХЭимя=""; отчVOC=""; VOCимя=""; отчДАН=""; ДАНимя="";
   отчАНА=""; OldотчАНА="";
   flgОбоФинГод=False;
   flgОтчКварт=False;
   отчГод=Year(ToDay);
   отчПерНом=Mon(ToDay);
   отчПерИмя=ИменаОтчетногоПериода(отчПерНом, False);
 fi;
 --
 РазрешенЗависимостьМОЛ(if(flgФтрАнаcur<>1, False, True));
 РазрешенЗабаланс(отчСЧТ);
 ВФО_ВнешнийВид_Обновить;
 --
 ValidateSection(False);
 ЗапомнитьЗначения;
end;

Func Template_OnClear :Logical;
 if Trim(flgClear)="":
   Message("Ошибка!^MВероятно была произведена 'очистка полей'.^MБудет произведена инициализация значений по умолчанию.^MПосле этого бланк будет готов к работе!", mtError);
   Очистить;
   Инициализация;
   flgClear=GetGuid;
   Message("Бланк проинициализирован!", mtInformation);
   Template.Field="Фокус";
   ^True;
 fi;
 ^False;
end;

Proc ДетализацияПозиции(ДНП:Date; ДКП:Date; номерПериода:Integer; ОборотыЗаГод:Logical; Квартальная:Logical; TabIter:Integer);
var Путь, MaskACC, MaskANA :String;
var storeДНП, repДН, repДК :Date;
var jj, num :Integer;
var Work :Logical;
var Sum :Numeric;
 ClearVariable(Buf);
 repДН=1.1.100; repДК=1.1.100;
 Work=False;
 if ДНП>=1.1.1990 and ДКП>=1.1.1990:
   if (Квартальная and номерПериода>0 and номерПериода<5) or (not Квартальная and номерПериода>0 and номерПериода<13):
       Work=True;
   fi;
 fi;
 if Work:
   ClearVariable(BufDНП);
   ClearVariable(BufDКП);
   storeДНП=ДНП;
   if ОборотыЗаГод:
     for jj=1 to 12 do
       if jj>номерПериода: Break; fi;
       BufDНП[jj]=storeДНП;
       BufDКП[jj]=AddMon(storeДНП, if(Квартальная, 3, 1));
       Buf[jj]=ИменаОтчетногоПериода(jj, Квартальная);
       storeДНП=BufDКП[jj];
     od;
   else
     BufDНП[1]=ДНП;
     BufDКП[1]=ДКП;
   fi;
   num=LengthOfArray(BufDНП);
   if num>1:
     num=0;
     num=Alternate("Выберите период отчета...", Buf, -1, 1, 12);
     if num=0: Exit; fi;
     repДН=BufDНП[num]; repДК=BufDКП[num];
   |  num=1: repДН=BufDНП[1]; repДК=BufDКП[1];
   else
     Message("Нечего детализировать!", mtError);
   fi;
   if repДН<>1.1.100 and repДК<>1.1.100:
     Путь=PlanVar("НФА")+"\ОТЧЕТЫ\НФАОТЧ2007.lst";
     if not ExistFile(Путь): Message("Файл с отчетами отсутствует!", mtError); Exit; fi;
     --MaskACC=ИтоговаяМаскаСчетовОтчета_Взять(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, curAcc);
     MaskACC=ИтоговаяМаскаСчетовОтчета_Взять(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, curAcc);
     MaskANA="";
     if Trim(отчМОЛ)<>"": MaskANA=Объединить(MaskANA, "("+отчМОЛ+")", "&"); fi;
     if Trim(отчМХЭ)<>"": MaskANA=Объединить(MaskANA, "("+отчМХЭ+")", "&"); fi;
     if Trim(отчДАН)<>"": MaskANA=Объединить(MaskANA, "("+отчДАН+")", "&"); fi;
     if Trim(отчАНА)<>"": MaskANA=Объединить(MaskANA, "("+отчАНА+")", "&"); fi;
     if Trim(тКОДНФА[TabIter])<>"" and ValidSign(тКОДНФА[TabIter]): MaskANA=Объединить(MaskANA, "("+тКОДНФА[TabIter]+")", "&"); fi;
     if Trim(тУЧННОМ[TabIter])<>"" and ValidSign(тУЧННОМ[TabIter]): MaskANA=Объединить(MaskANA, "("+тУЧННОМ[TabIter]+")", "&"); fi;
     Try Sum=Saldo(MaskACC, 1.1.100); Except Message("Ошибка в условии отбора!^MВозможно слишком длинное выражение...", mtError); Exit; end;
     Try Sum=Saldo("*{"+MaskANA+"}", 1.1.100); Except Message("Ошибка в условии отбора!^MВозможно слишком длинное выражение...", mtError); Exit; end;
     Report(Путь+"|По_проводкам", repДН, repДК, MaskACC, MaskANA);
   fi;
 else
   Message("Ошибка детализации!", mtError);
 fi;
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 ТрансляцияДиапазонаКолонок(c1:Integer; c2:Integer) :String;
var Res, v1, v2: String;
 Res=""; v1=""; v2="";
 if c1>0 and c2>c1 and c1<21 and c1<21:
   if c1=01: v1="$A";
   |  c1=02: v1="$B";
   |  c1=03: v1="$C";
   |  c1=04: v1="$D";
   |  c1=05: v1="$E";
   |  c1=06: v1="$F";
   |  c1=07: v1="$G";
   |  c1=08: v1="$H";
   |  c1=09: v1="$I";
   |  c1=10: v1="$J";
   |  c1=11: v1="$K";
   |  c1=12: v1="$L";
   |  c1=13: v1="$M";
   |  c1=14: v1="$N";
   |  c1=15: v1="$O";
   |  c1=16: v1="$P";
   |  c1=17: v1="$Q";
   |  c1=18: v1="$R";
   |  c1=19: v1="$S";
   |  c1=20: v1="$T";
   fi;
   if c2=01: v2="$A";
   |  c2=02: v2="$B";
   |  c2=03: v2="$C";
   |  c2=04: v2="$D";
   |  c2=05: v2="$E";
   |  c2=06: v2="$F";
   |  c2=07: v2="$G";
   |  c2=08: v2="$H";
   |  c2=09: v2="$I";
   |  c2=10: v2="$J";
   |  c2=11: v2="$K";
   |  c2=12: v2="$L";
   |  c2=13: v2="$M";
   |  c2=14: v2="$N";
   |  c2=15: v2="$O";
   |  c2=16: v2="$P";
   |  c2=17: v2="$Q";
   |  c2=18: v2="$R";
   |  c2=19: v2="$S";
   |  c2=20: v2="$T";
   fi;
   if v1<>"" and v2<>"": Res=v1+":"+v2; fi;
 fi;
 ^Res;
end;

Proc УстановитьНастройкиПринтера(objApp:AutoObject; objSheet:AutoObject; flgRusExcel:Logical; НетКолонтитула:Logical; Альбомная:Logical; СквозныеСтроки:String; СквозныеКолонки:String; НаправлениеПечати:Integer; РовнятьВертикально:Logical; ValZoom:Integer);
var xlsRng :AutoObject;
var valNum :Numeric;
 xlsRng=AsAutoObject(objSheet.PageSetup);
 Try
   xlsRng.Orientation = if(Альбомная, РАБ.EXCEL.xlLandscape, РАБ.EXCEL.xlPortrait);
   if not Trim(СквозныеСтроки)  = "": xlsRng.PrintTitleRows    = СквозныеСтроки;  fi;
   if not Trim(СквозныеКолонки) = "": xlsRng.PrintTitleColumns = СквозныеКолонки; fi;
   xlsRng.CenterHorizontally = True;
   xlsRng.CenterVertically   = РовнятьВертикально;
   xlsRng.BlackAndWhite = True;
   xlsRng.Order = НаправлениеПечати;
   xlsRng.Zoom = ValZoom;
   if not НетКолонтитула:
     if flgRusExcel:
       xlsRng.LeftHeader  = '&"Arial,обычный"&7'+TimeCreationRep;
       xlsRng.RightFooter = '&"Arial,полужирный"&8Страница &С из &К';
     else
       xlsRng.LeftHeader  = '&"Arial,normal"&7'+TimeCreationRep;
       xlsRng.RightFooter = '&"Arial,bold"&8Страница &P из &N';
     fi;
   fi;
   valNum=asReal(objApp.InchesToPoints[0.393700787401575]);
   xlsRng.LeftMargin   = valNum;
   xlsRng.RightMargin  = valNum;
   xlsRng.TopMargin    = valNum;
   xlsRng.BottomMargin = valNum;
   valNum=asReal(objApp.InchesToPoints[0.196850393700787]);
   xlsRng.HeaderMargin = valNum;
   xlsRng.FooterMargin = valNum;
 Finally
   ClearVariable(xlsRng);
 end;
end;

Proc Экспорт_Excel_Титул(objSheet:AutoObject);
var max_col, incRow :Integer;
 -- Устанавливаем ширину колонок таблицы
 max_col=14;
 ProgressPos(2);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 01,  3.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 02,  3.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 03,  3.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 04, 12.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 05,  2.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 06,  6.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 07,  7.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 08,  2.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 09, 10.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 10,  2.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 11, 20.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 12, 33.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 13,  8.0);
 РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(objSheet, 14, 20.0);
 -- Пишем ТИТУЛ
 incRow=0;
 ProgressPos(3);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, "ОБОРОТНАЯ ВЕДОМОСТЬ");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, max_col);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Times New Roman", 14, 0, True, True, False, 0, True);
 ProgressPos(4);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, "по нефинансовым активам");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, max_col);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Times New Roman", 14, 0, True, True, False, 0, True);
 ProgressPos(5);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col, "КОДЫ");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 ProgressPos(6);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col-2, "Форма по ОКУД");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, max_col-2, incRow, max_col-1);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col-2, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col-0, "0504035");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col-0, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Symbol", 9, 0, True, True, False, 0, True);
 ProgressPos(7);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, отчПерТит);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, max_col-1);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 10, 0, True, True, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col, if(DataКП>1.1.100, DateToString(DataКП), ""));
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 ProgressPos(8);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, "Учреждение");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, 5);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 6, УЧР_ИМЯ);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 6, incRow, max_col-2);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 6, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 6, incRow,  max_col-2, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col-1, "по ОКПО");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col-1, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col-0, УЧР_ОКПО);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col-0, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 ProgressPos(9);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, "Структурное подразделение");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, 5);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 6, МХЭИМЯ);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 6, incRow, max_col-2);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 6, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 6, incRow,  max_col-2, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col, отчМХЭ);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 ProgressPos(10);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, "Материально ответственное лицо");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, 5);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 6, МОЛИМЯ);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 6, incRow, max_col-2);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 6, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 6, incRow,  max_col-2, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col, отчМОЛ);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 ProgressPos(11);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, VOCимя);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, 5);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 6, ДАНимя);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 6, incRow, max_col-2);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 6, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 6, incRow,  max_col-2, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col, отчДАН);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 ProgressPos(12);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(objSheet, 3, max_col, incRow, max_col, True, True, True, True, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, 4, max_col, incRow, max_col, True, True, True, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
 --
 ProgressPos(13);
 incRow=incRow+2;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col-2, "Номер счета");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, max_col-2, incRow, max_col-1);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col-2, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, max_col-0, отчСЧТ);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, max_col-0, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, max_col, incRow, max_col, True, True, True, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlMedium);
 --
 ProgressPos(14);
 incRow=incRow+2;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, "Исполнитель:");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 1, incRow, 4);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 5, incRow, 7);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 5, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 5, incRow, 7, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 9, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 9, incRow, 9, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 11, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 11, incRow, 11, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 incRow=incRow+1;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 5, "(должность)");
 РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(objSheet, incRow, 5, incRow, 7);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 5, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(objSheet, incRow, 5, incRow, 5, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 9, "(подпись)");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 9, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(objSheet, incRow, 9, incRow, 9, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 11, "(Ф.И.О. исполнителя)");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 11, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.НадстрочноеНачертаниеДиапазона(objSheet, incRow, 11, incRow, 11, True);
 ProgressPos(14);
 incRow=incRow+2;
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 1, '"');
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 1, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 2, incRow, 2, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 2, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 3, '"');
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 3, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 4, incRow, 4, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 4, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.УстановитьВсеГраницыДиапазона(objSheet, incRow, 6, incRow, 6, False, False, False, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 6, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 РАБ.EXCEL.ЗаписатьЯчейкуТекст(objSheet, incRow, 7, "г.");
 РАБ.EXCEL.ФорматироватьЯчейку(objSheet, incRow, 7, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 9, 0, True, False, False, 0, True);
 ProgressPos(15);

end;

Proc Экспорт_Excel_НарастаниемМес;
var xlsApp, xlsBooks, xlsBook, xlsSheets, xlsSheet, xlsRng :AutoObject;
var localTS, localDS, ExcelVersion, xlNameFile, xlNameFolder, Value :String;
var num, len, ii, начало, maxIterCount, IterCount, IterSave, kol, max_kol, MyColor, IterCol, incRow :Integer;
var NoError, rusExcel, ExportWork, verXLS2007andAbove :Logical;

 if not Позиции>0: Message("Нет данных для выгрузки.^MПредварительно сделайте расчет формы.", mtInformation); Exit; fi;
 num=Позиции;
 if num>0:
   NoError=True;
   maxIterCount=300;
   kol=0;
   verXLS2007andAbove=False;
   if ChooseFolder(xlNameFolder, "Выберите папку для сохранения файла экспорта...")=cmOK:
     начало=Time;
     xlNameFile=xlNameFolder+"Rep0504035_o"+if(flgОбоФинГод, "1", "0")+if(flgОтчКварт, "1", "0")+"_"+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": verXLS2007andAbove=True; fi;
         if verXLS2007andAbove: 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]);
           MyColor=РАБ.УПП.LIB.Цвет(192, 192, 192);
           --
           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
                     ShowProgress(17, "Формируем титульный лист...");
                     ProgressPos(1);
                     xlsSheet.Name = "Титул"; -- ограничение на количество символов - должно быть меньше 32 символов
                     Try 2Экспорт_Excel_Титул(xlsSheet)0; Except NoError=False; end;
                     ProgressPos(16);
                     if NoError: УстановитьНастройкиПринтера(xlsApp, xlsSheet, rusExcel, True, True, "", "", РАБ.EXCEL.xlDownThenOver, True, 95); fi;
                     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; -- Формирование титульного листа
     -- ОСНОВНАЯ ТАБЛИЦА
     if NoError:
       ShowProgress(38, "Формируем шапку основной таблицы...");
       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
                   ProgressPos(1);
                   kol=kol+1;
                   xlsSheet=AsAutoObject(xlsBook.Worksheets[kol]);
                   Try
                     xlsSheet.Name = "Таблица"; -- ограничение на количество символов - должно быть меньше 32 символов
                     -- Устанавливаем ширину колонок таблицы
                     ProgressPos(2);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 01,  6.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 02, 15.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 03, 35.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 04,  9.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 05, 16.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 06, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 07, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 08, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 09, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 10, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 11, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 12, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 13, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 14, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 15, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 16, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 17, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 18, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 19, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 20, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 21, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 22, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 23, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 24, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 25, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 26, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 27, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 28, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 29, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 30, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 31, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 32, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 33, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 34, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 35, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 36, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 37, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 38, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 39, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 40, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 41, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 42, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 43, 33.0);
                     -- Пишем заголовки таблицы
                     ProgressPos(3);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 1, 1, "Форма 0504035 с. 2");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 1, 1, 3);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 1, РАБ.EXCEL.xlLeft,  0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 1, 4, " "+ИнфоФильтр);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 4, 1, 9);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 4, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     --
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 10, 1, 15);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 10, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 16, 1, 21);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 16, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 22, 1, 27);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 22, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 28, 1, 33);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 28, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 34, 1, 39);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 34, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 40, 1, 43);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 40, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     --
                     IterCol=0; -- будем считать колонки
                     ProgressPos(4);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, Chr(185)+Chr(10)+"п/п");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(5);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Инвентарный"+Chr(10)+"номер");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True, False, MyColor, False);
                     ProgressPos(6);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Наименование"+Chr(10)+"нефинансового"+Chr(10)+"актива");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True, False, MyColor, False);
                     ProgressPos(7);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "единица"+Chr(10)+"измерения"+Chr(10)+"/"+Chr(10)+"источник"+Chr(10)+"средств");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(8);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "КБК /"+Chr(10)+"Счет синтетический");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, MyColor, False);
                     ProgressPos(9);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст00);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(10);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот01);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(11);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст01);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(12);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот02);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(13);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст02);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(14);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот03);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(15);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст03);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(16);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот04);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(17);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст04);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(18);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот05);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(19);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст05);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(20);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот06);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(21);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст06);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(22);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот07);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(23);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст07);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(24);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот08);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(25);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст08);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(26);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот09);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(27);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст09);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(28);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот10);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(29);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст10);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(30);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот11);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(31);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст11);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(32);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот12);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(33);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст12);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(34);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Примечание");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, MyColor, False);
                     ProgressPos(35);
                     РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, 1, 1, 3, 43, True, True, True, True, True, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                     -- Пишем настройки принтера
                     ProgressPos(36);
                     Value=ТрансляцияДиапазонаКолонок(1, 3);
                     УстановитьНастройкиПринтера(xlsApp, xlsSheet, rusExcel, False, True, "$1:$3", Value, РАБ.EXCEL.xlDownThenOver, False, 100);
                     ProgressPos(37);
                     xlsRng=AsAutoObject(xlsSheet.Rows["1:3"]);
                     Try
                       xlsRng.AutoFit;
                     Finally
                       ClearVariable(xlsRng);
                     end;
                     ProgressPos(38);
                     --
                     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; --
     -- ОСНОВНАЯ ТАБЛИЦА
     if NoError:
       len=LengthOfArray(тКОДНФА);
       if len>0:
         ShowProgress(len+18, "Формируем основную таблицу...");
         Try
           incRow=3; -- 3 строки заголовка
           IterCount=0;
           IterSave=1;
           ExportWork=True;
           while ExportWork do
             if NoError:
               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["Таблица"]);
                         Try
                           for ii=IterSave to len do
                             ProgressPos(ii);
                             IterCol=0; -- будем считать колонки
                             incRow=incRow+1;
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow, IterCol, Str(НПП[ii]));
                             РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, IterCol, incRow+1, IterCol);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тИНВНОМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тУЧННОМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тКОДНФА[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тИМЯНФА[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, ЕДНИЗМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, ИСТСРД[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тКБКСЧТ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тКОДСЧТ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ00[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ00[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД05[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД05[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК05[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК05[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ05[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ05[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД06[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД06[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК06[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК06[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ06[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ06[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД07[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД07[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК07[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК07[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ07[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ07[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД08[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД08[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК08[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК08[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ08[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ08[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД09[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД09[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК09[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК09[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ09[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ09[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД10[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД10[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК10[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК10[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ10[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ10[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД11[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД11[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК11[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК11[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ11[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ11[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД12[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД12[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК12[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК12[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ12[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ12[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, IterCol, incRow+1, IterCol);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             --
                             РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, incRow, 1, incRow+1, 43, True, True, True, True, True, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                             incRow=incRow+1;
                             --
                             if ii=len:
                               incRow=incRow+1;
                               ProgressPos(len+1);
                               РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow, 01, "И Т О Г О :");
                               РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, 1, incRow, 3);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 01, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                               РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, 4, incRow, 5);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 04, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                               ProgressPos(len+2);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 06, ИТГ_СУМОСТ00, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 06, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+3);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 07, ИТГ_СУМОБД01, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 07, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 08, ИТГ_СУМОБК01, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 08, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 09, ИТГ_СУМОСТ01, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 09, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+4);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 10, ИТГ_СУМОБД02, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 10, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 11, ИТГ_СУМОБК02, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 11, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 12, ИТГ_СУМОСТ02, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 12, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+5);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 13, ИТГ_СУМОБД03, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 13, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 14, ИТГ_СУМОБК03, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 14, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 15, ИТГ_СУМОСТ03, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 15, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+6);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 16, ИТГ_СУМОБД04, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 16, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 17, ИТГ_СУМОБК04, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 17, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 18, ИТГ_СУМОСТ04, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 18, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+7);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 19, ИТГ_СУМОБД05, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 19, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 20, ИТГ_СУМОБК05, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 20, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 21, ИТГ_СУМОСТ05, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 21, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+8);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 22, ИТГ_СУМОБД06, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 22, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 23, ИТГ_СУМОБК06, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 23, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 24, ИТГ_СУМОСТ06, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 24, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+9);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 25, ИТГ_СУМОБД07, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 25, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 26, ИТГ_СУМОБК07, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 26, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 27, ИТГ_СУМОСТ07, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 27, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+10);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 28, ИТГ_СУМОБД08, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 28, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 29, ИТГ_СУМОБК08, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 29, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 30, ИТГ_СУМОСТ08, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 30, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+11);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 31, ИТГ_СУМОБД09, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 31, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 32, ИТГ_СУМОБК09, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 32, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 33, ИТГ_СУМОСТ09, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 33, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+12);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 34, ИТГ_СУМОБД10, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 34, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 35, ИТГ_СУМОБК10, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 35, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 36, ИТГ_СУМОСТ10, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 36, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+13);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 37, ИТГ_СУМОБД11, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 37, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 38, ИТГ_СУМОБК11, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 38, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 39, ИТГ_СУМОСТ11, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 39, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+14);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 40, ИТГ_СУМОБД12, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 40, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 41, ИТГ_СУМОБК12, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 41, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 42, ИТГ_СУМОСТ12, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 42, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+15);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 43, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               ProgressPos(len+16);
                               РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, incRow, 1, incRow, 43, True, True, True, True, True, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                               ProgressPos(len+17);
                               xlsRng=AsAutoObject(xlsSheet.Rows["4:"+Str(incRow)]);
                               Try
                                 xlsRng.AutoFit;
                               Finally
                                 ClearVariable(xlsRng);
                               end;
                               ProgressPos(len+18);
                             fi;
                             --
                             IterCount=IterCount+1;
                             if IterCount>=maxIterCount: IterSave=IterSave+IterCount; IterCount=0; Break; fi;
                           od;
                           NoError=True;
                         Finally
                           ClearVariable(xlsSheet);
                         end;
                       Except
                         NoError=False;
                         ExportWork=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;
                 ExportWork=False;
                 ClearVariable(xlsRng);
                 ClearVariable(xlsSheet);
                 ClearVariable(xlsSheets);
                 ClearVariable(xlsBook);
                 ClearVariable(xlsBooks);
                 ClearVariable(xlsApp);
               end;
               if ii>=len: ExportWork=False; fi;
             else
               ExportWork=False;
             fi;
           end; -- while
         Finally
           CloseProgress;
         end;
       fi; -- len>0:
     fi; --Основная таблица
     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
 fi; -- num>0

end;

Proc Экспорт_Excel_НарастаниемКвр;
var xlsApp, xlsBooks, xlsBook, xlsSheets, xlsSheet, xlsRng :AutoObject;
var localTS, localDS, ExcelVersion, xlNameFile, xlNameFolder, Value :String;
var num, len, ii, начало, maxIterCount, IterCount, IterSave, kol, max_kol, MyColor, IterCol, incRow :Integer;
var NoError, rusExcel, ExportWork, verXLS2007andAbove :Logical;

 if not Позиции>0: Message("Нет данных для выгрузки.^MПредварительно сделайте расчет формы.", mtInformation); Exit; fi;
 num=Позиции;
 if num>0:
   NoError=True;
   maxIterCount=300;
   kol=0;
   verXLS2007andAbove=False;
   if ChooseFolder(xlNameFolder, "Выберите папку для сохранения файла экспорта...")=cmOK:
     начало=Time;
     xlNameFile=xlNameFolder+"Rep0504035_o"+if(flgОбоФинГод, "1", "0")+if(flgОтчКварт, "1", "0")+"_"+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": verXLS2007andAbove=True; fi;
         if verXLS2007andAbove: 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]);
           MyColor=РАБ.УПП.LIB.Цвет(192, 192, 192);
           --
           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
                     ShowProgress(17, "Формируем титульный лист...");
                     ProgressPos(1);
                     xlsSheet.Name = "Титул"; -- ограничение на количество символов - должно быть меньше 32 символов
                     Try 2Экспорт_Excel_Титул(xlsSheet)0; Except NoError=False; end;
                     ProgressPos(16);
                     if NoError: УстановитьНастройкиПринтера(xlsApp, xlsSheet, rusExcel, True, True, "", "", РАБ.EXCEL.xlDownThenOver, True, 95); fi;
                     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; -- Формирование титульного листа
     -- ОСНОВНАЯ ТАБЛИЦА
     if NoError:
       ShowProgress(22, "Формируем шапку основной таблицы...");
       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
                   ProgressPos(1);
                   kol=kol+1;
                   xlsSheet=AsAutoObject(xlsBook.Worksheets[kol]);
                   Try
                     xlsSheet.Name = "Таблица"; -- ограничение на количество символов - должно быть меньше 32 символов
                     -- Устанавливаем ширину колонок таблицы
                     ProgressPos(2);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 01,  6.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 02, 15.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 03, 35.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 04,  9.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 05, 16.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 06, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 07, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 08, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 09, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 10, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 11, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 12, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 13, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 14, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 15, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 16, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 17, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 18, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 19, 33.0);
                     -- Пишем заголовки таблицы
                     ProgressPos(3);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 1, 1, "Форма 0504035 с. 2");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 1, 1, 3);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 1, РАБ.EXCEL.xlLeft,  0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 1, 4, " "+ИнфоФильтр);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 4, 1, 9);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 4, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 10, 1, 15);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 10, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 16, 1, 19);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 16, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     IterCol=0; -- будем считать колонки
                     ProgressPos(4);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, Chr(185)+Chr(10)+"п/п");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(5);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Инвентарный"+Chr(10)+"номер");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True, False, MyColor, False);
                     ProgressPos(6);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Наименование"+Chr(10)+"нефинансового"+Chr(10)+"актива");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True, False, MyColor, False);
                     ProgressPos(7);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "единица"+Chr(10)+"измерения"+Chr(10)+"/"+Chr(10)+"источник"+Chr(10)+"средств");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(8);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "КБК /"+Chr(10)+"Счет синтетический");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, MyColor, False);
                     ProgressPos(9);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст00);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(10);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот01);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(11);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст01);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(12);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот02);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(13);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст02);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(14);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот03);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(15);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст03);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(16);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот04);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(17);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст04);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     ProgressPos(18);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Примечание");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, MyColor, False);
                     --
                     ProgressPos(19);
                     РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, 1, 1, 3, 19, True, True, True, True, True, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                     -- Пишем настройки принтера
                     ProgressPos(20);
                     Value=ТрансляцияДиапазонаКолонок(1, 3);
                     УстановитьНастройкиПринтера(xlsApp, xlsSheet, rusExcel, False, True, "$1:$3", Value, РАБ.EXCEL.xlDownThenOver, False, 100);
                     ProgressPos(21);
                     xlsRng=AsAutoObject(xlsSheet.Rows["1:3"]);
                     Try
                       xlsRng.AutoFit;
                     Finally
                       ClearVariable(xlsRng);
                     end;
                     ProgressPos(22);
                     --
                     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; --
     -- ОСНОВНАЯ ТАБЛИЦА
     if NoError:
       len=LengthOfArray(тКОДНФА);
       if len>0:
         ShowProgress(len+3, "Формируем основную таблицу...");
         Try
           incRow=3; -- 3 строки заголовка
           IterCount=0;
           IterSave=1;
           ExportWork=True;
           while ExportWork do
             if NoError:
               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["Таблица"]);
                         Try
                           for ii=IterSave to len do
                             ProgressPos(ii);
                             IterCol=0; -- будем считать колонки
                             incRow=incRow+1;
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow, IterCol, Str(НПП[ii]));
                             РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, IterCol, incRow+1, IterCol);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тИНВНОМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тУЧННОМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тКОДНФА[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тИМЯНФА[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, ЕДНИЗМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, ИСТСРД[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тКБКСЧТ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тКОДСЧТ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ00[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ00[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ02[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ03[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ04[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, IterCol, incRow+1, IterCol);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             --
                             РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, incRow, 1, incRow+1, 19, True, True, True, True, True, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                             incRow=incRow+1;
                             --
                             if ii=len:
                                ProgressPos(len+1);
                                incRow=incRow+1;
                                РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow, 01, "И Т О Г О :");
                                РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, 1, incRow, 3);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 01, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                                РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, 4, incRow, 5);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 04, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                                --
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 06, ИТГ_СУМОСТ00, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 06, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 07, ИТГ_СУМОБД01, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 07, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 08, ИТГ_СУМОБК01, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 08, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 09, ИТГ_СУМОСТ01, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 09, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 10, ИТГ_СУМОБД02, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 10, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 11, ИТГ_СУМОБК02, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 11, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 12, ИТГ_СУМОСТ02, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 12, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 13, ИТГ_СУМОБД03, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 13, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 14, ИТГ_СУМОБК03, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 14, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 15, ИТГ_СУМОСТ03, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 15, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 16, ИТГ_СУМОБД04, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 16, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 17, ИТГ_СУМОБК04, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 17, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 18, ИТГ_СУМОСТ04, localDS, localTS);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 18, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 19, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                                --
                                РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, incRow, 1, incRow, 19, True, True, True, True, True, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                                --
                                ProgressPos(len+2);
                                xlsRng=AsAutoObject(xlsSheet.Rows["4:"+Str(incRow)]);
                                Try
                                  xlsRng.AutoFit;
                                Finally
                                  ClearVariable(xlsRng);
                                end;
                                ProgressPos(len+3);
                             fi;
                             --
                             IterCount=IterCount+1;
                             if IterCount>=maxIterCount: IterSave=IterSave+IterCount; IterCount=0; Break; fi;
                           od;
                           NoError=True;
                         Finally
                           ClearVariable(xlsSheet);
                         end;
                       Except
                         NoError=False;
                         ExportWork=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;
                 ExportWork=False;
                 ClearVariable(xlsRng);
                 ClearVariable(xlsSheet);
                 ClearVariable(xlsSheets);
                 ClearVariable(xlsBook);
                 ClearVariable(xlsBooks);
                 ClearVariable(xlsApp);
               end;
               if ii>=len: ExportWork=False; fi;
             else
               ExportWork=False;
             fi;
           end; -- while
         Finally
           CloseProgress;
         end;
       fi; -- len>0:
     fi; --Основная таблица
     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
 fi; -- num>0

end;

Proc Экспорт_Excel_Период;
var xlsApp, xlsBooks, xlsBook, xlsSheets, xlsSheet, xlsRng :AutoObject;
var localTS, localDS, ExcelVersion, xlNameFile, xlNameFolder :String;
var num, len, ii, начало, maxIterCount, IterCount, IterSave, kol, max_kol, MyColor, IterCol, incRow :Integer;
var NoError, rusExcel, ExportWork, verXLS2007andAbove :Logical;

 if not Позиции>0: Message("Нет данных для выгрузки.^MПредварительно сделайте расчет формы.", mtInformation); Exit; fi;
 num=Позиции;
 if num>0:
   NoError=True;
   maxIterCount=300;
   kol=0;
   verXLS2007andAbove=False;
   if ChooseFolder(xlNameFolder, "Выберите папку для сохранения файла экспорта...")=cmOK:
     начало=Time;
     xlNameFile=xlNameFolder+"Rep0504035_o"+if(flgОбоФинГод, "1", "0")+if(flgОтчКварт, "1", "0")+"_"+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": verXLS2007andAbove=True; fi;
         if verXLS2007andAbove: 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]);
           MyColor=РАБ.УПП.LIB.Цвет(192, 192, 192);
           --
           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
                     ShowProgress(17, "Формируем титульный лист...");
                     ProgressPos(1);
                     xlsSheet.Name = "Титул"; -- ограничение на количество символов - должно быть меньше 32 символов
                     Try 2Экспорт_Excel_Титул(xlsSheet)0; Except NoError=False; end;
                     ProgressPos(16);
                     if NoError: УстановитьНастройкиПринтера(xlsApp, xlsSheet, rusExcel, True, True, "", "", РАБ.EXCEL.xlDownThenOver, True, 95); fi;
                     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; -- Формирование титульного листа
     -- ОСНОВНАЯ ТАБЛИЦА
     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
                   ProgressPos(1);
                   kol=kol+1;
                   xlsSheet=AsAutoObject(xlsBook.Worksheets[kol]);
                   Try
                     xlsSheet.Name = "Таблица"; -- ограничение на количество символов - должно быть меньше 32 символов
                     -- Устанавливаем ширину колонок таблицы
                     ProgressPos(2);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 1,  6.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 2, 15.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 3, 34.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 4,  9.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 5, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 6, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 7, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 8, 13.0);
                     РАБ.EXCEL.УстановитьШиринуСтолбцаСимвол(xlsSheet, 9, 16.0);
                     -- Пишем заголовки таблицы
                     ProgressPos(3);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 1, 1, ИнфоФильтр);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 1, 1, 1, 8);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 1, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 1, 9, "Форма 0504035 с. 2");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 1, 9, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 7, 0, True, False, False, MyColor, False);
                     IterCol=0; -- будем считать колонки
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, Chr(185)+Chr(10)+"п/п");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Инвентарный"+Chr(10)+"номер");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Наименование"+Chr(10)+"нефинансового"+Chr(10)+"актива");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "единица"+Chr(10)+"измерения"+Chr(10)+"/"+Chr(10)+"источник"+Chr(10)+"средств");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст00);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОборот01);
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 2, IterCol+1);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "КРЕДИТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, ЗагОст01);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 3, IterCol, "ДЕБЕТ"+Chr(10)+"количество /"+Chr(10)+"сумма");
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 3, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                     IterCol=IterCol+1;
                     РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, 2, IterCol, "Примечание"+Chr(10)+"(КБК /"+Chr(10)+"Счет синтетический)");
                     РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, 2, IterCol, 3, IterCol);
                     РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, 2, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, MyColor, False);
                     --
                     РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, 1, 1, 3, 9, True, True, True, True, True, True, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                     -- Пишем настройки принтера
                     ProgressPos(4);
                     УстановитьНастройкиПринтера(xlsApp, xlsSheet, rusExcel, False, True, "$1:$3", "", РАБ.EXCEL.xlDownThenOver, False, 100);
                     ProgressPos(5);
                     xlsRng=AsAutoObject(xlsSheet.Rows["1:3"]);
                     Try
                       xlsRng.AutoFit;
                     Finally
                       ClearVariable(xlsRng);
                     end;
                     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; --
     -- ОСНОВНАЯ ТАБЛИЦА
     if NoError:
       len=LengthOfArray(тКОДНФА);
       if len>0:
         ShowProgress(len+2, "Формируем основную таблицу...");
         Try
           incRow=3; -- 3 строки заголовка
           IterCount=0;
           IterSave=1;
           ExportWork=True;
           while ExportWork do
             if NoError:
               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["Таблица"]);
                         Try
                           for ii=IterSave to len do
                             ProgressPos(ii);
                             IterCol=0; -- будем считать колонки
                             incRow=incRow+1;
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow, IterCol, Str(НПП[ii]));
                             РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, IterCol, incRow+1, IterCol);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тИНВНОМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тУЧННОМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тКОДНФА[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlLeft,   0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тИМЯНФА[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, ЕДНИЗМ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, ИСТСРД[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ00[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ00[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБД01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБД01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОБК01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОБК01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow,   IterCol, КОЛОСТ01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow+1, IterCol, СУМОСТ01[ii], localDS, localTS);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlRight,  0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             IterCol=IterCol+1;
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow,   IterCol, тКБКСЧТ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow,   IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow+1, IterCol, тКОДСЧТ[ii]);
                             РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow+1, IterCol, РАБ.EXCEL.xlCenter, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False,  False, 0, True);
                             --
                             РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, incRow, 1, incRow+1, 9, True, True, True, True, True, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                             incRow=incRow+1;
                             --
                             if ii=len:
                               ProgressPos(len+1);
                               incRow=incRow+1;
                               РАБ.EXCEL.ЗаписатьЯчейкуТекст(xlsSheet, incRow, 1, "И Т О Г О :");
                               РАБ.EXCEL.ОбъединитьЯчейкиДиапазона(xlsSheet, incRow, 1, incRow, 4);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 1, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, True,  False, MyColor, False);
                               --
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 5, ИТГ_СУМОСТ00, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 5, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 6, ИТГ_СУМОБД01, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 6, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 7, ИТГ_СУМОБК01, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 7, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ЗаписатьЯчейкуЧисло(xlsSheet, incRow, 8, ИТГ_СУМОСТ01, localDS, localTS);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 8, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               РАБ.EXCEL.ФорматироватьЯчейку(xlsSheet, incRow, 9, РАБ.EXCEL.xlRight, 0, РАБ.EXCEL.xlCenter, True, "Arial", 8, 0, True, False, False, MyColor, False);
                               --
                               РАБ.EXCEL.УстановитьВсеГраницыДиапазонаИвнутри(xlsSheet, incRow, 1, incRow, 9, True, True, True, True, True, False, False, False, РАБ.EXCEL.xlContinuous, РАБ.EXCEL.xlThin);
                               --
                               ProgressPos(len+2);
                               xlsRng=AsAutoObject(xlsSheet.Rows["4:"+Str(incRow)]);
                               Try
                                 xlsRng.AutoFit;
                               Finally
                                 ClearVariable(xlsRng);
                               end;
                             fi;
                             --
                             IterCount=IterCount+1;
                             if IterCount>=maxIterCount: IterSave=IterSave+IterCount; IterCount=0; Break; fi;
                           od;
                           NoError=True;
                         Finally
                           ClearVariable(xlsSheet);
                         end;
                       Except
                         NoError=False;
                         ExportWork=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;
                 ExportWork=False;
                 ClearVariable(xlsRng);
                 ClearVariable(xlsSheet);
                 ClearVariable(xlsSheets);
                 ClearVariable(xlsBook);
                 ClearVariable(xlsBooks);
                 ClearVariable(xlsApp);
               end;
               if ii>=len: ExportWork=False; fi;
             else
               ExportWork=False;
             fi;
           end; -- while
         Finally
           CloseProgress;
         end;
       fi; -- len>0:
     fi; --Основная таблица
     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
 fi; -- num>0

end;

Proc Экспорт_Excel(ОборотыНарастанием:Logical; Квартальная:Logical);
 if ОборотыНарастанием:
   if Квартальная:
     Экспорт_Excel_НарастаниемКвр;
   else
     Экспорт_Excel_НарастаниемМес;
   fi;
 else
   Экспорт_Excel_Период;
 fi;
end;

2-- События объектов
Proc btnOnClick(Sender:String); -- объекты при нажатии
 if Sender="btnExit":       Close;
 |  Sender="btnExcl":       Экспорт_Excel(flgОбоФинГод, flgОтчКварт);
 |  Sender="btnCalc":       РасчетВедомости;
 |  Sender="btnVisibleRep": ValidateОтчетSectionТитулSection(False);
 |  Sender="btnVisibleTit": ValidateОтчетSectionТитулSection(True);
 fi;
end;

Proc Флаги_onChange(Sender:String);
var Flag, Old, Work :Logical;
var nameVar :String;
var ОбъектИмя :Object;
 if Template_OnClear: Exit; fi;
 Work=False;
 if FindObject(Sender, ОбъектИмя): Work=True; fi;
 if Work:
   nameVar="flg"+SubStr(Sender, 4, Length(Sender)-3); -- вычисляем имя переменной - 3=cb_
   Flag=GetVariableL(nameVar); -- текущий статус;
   Old=not(Flag); -- предыдущий статус
   if ОтменитьИзмененияУсловийОтчета: Flag=Old; fi;
   PutVariableL(nameVar, Flag);
   ОбъектИмя.State=Flag;
   if Flag<>Old: 
     if Sender="cb_Забаланс":  РазрешенКБК(flgЗабаланс);
     |  Sender="cb_ОбоФинГод":
     |  Sender="cb_ОтчКварт":  отчПерНом=1; отчПерИмя=ИменаОтчетногоПериода(отчПерНом, Flag);
     fi;
     ValidateОтчетSection;
   fi;
 fi;
end;  

Proc ФлагиМОЛ_onChange(Sender:String);
var curFlag, oldFlag :Integer;
 if Template_OnClear: Exit; fi;
 curFlag=flgМОЛМХЭcur; -- текущий статус
 oldFlag=flgМОЛМХЭold; -- предыдущий статус
 if ОтменитьИзмененияУсловийОтчета: curFlag=oldFlag; fi;
 flgМОЛМХЭcur=curFlag;
 if curFlag<>oldFlag: 
   if curFlag=1: отчМХЭ=""; МХЭимя=""; Template.Field="отчМОЛ_";
   |  curFlag=2: отчМОЛ=""; МОЛимя=""; Template.Field="отчМХЭ_";
   fi;
   flgМОЛМХЭold=curFlag;
   ValidateОтчетSection;
 fi;
end;  

Proc ФлагиСчетов_onChange(Sender:String);
var curFlag, oldFlag :Integer;
 if Template_OnClear: Exit; fi;
 curFlag=curAcc; -- текущий статус
 oldFlag=oldAcc; -- предыдущий статус
 if ОтменитьИзмененияУсловийОтчета: curFlag=oldFlag; fi;
 curAcc=curFlag;
 if curFlag<>oldFlag:
   if curFlag=2: отчСЧТ="101.?? 102.?? 103.??";        СЧТимя=" Все 'Основные средства'";
   |  curFlag=3: отчСЧТ="105.??";                      СЧТимя=" Все 'Материальные запасы'";
   |  curFlag=4: отчСЧТ="104.??";                      СЧТимя=" Амортизация по всем счетам";
   else          отчСЧТ="101.?? 102.?? 103.?? 105.??"; СЧТимя=" Все 'Нефинансовые активы'";
   fi;
   if flgФтрАнаcur=1: отчКБК=""; отчМОЛ=""; МОЛимя=""; отчМХЭ=""; МХЭимя=""; отчДАН=""; ДАНимя=""; fi;
   oldAcc=curFlag;
   ValidateОтчетSection;
   РазрешенЗабаланс(отчСЧТ);
 fi;
end;

Proc ФлагиАНА_onChange(Sender:String);
var curFlag, oldFlag :Integer;
 if Template_OnClear: Exit; fi;
 curFlag=flgФтрАнаcur; -- текущий статус
 oldFlag=flgФтрАнаold; -- предыдущий статус
 if ОтменитьИзмененияУсловийОтчета: curFlag=oldFlag; fi;
 flgФтрАнаcur=curFlag;
 if curFlag<>oldFlag: 
   if curFlag=1: отчКБК=""; отчМОЛ=""; МОЛимя=""; отчМХЭ=""; МХЭимя=""; отчДАН=""; ДАНимя=""; fi;
   РазрешенЗависимостьМОЛ(if(curFlag<>1, False, True));
   flgФтрАнаold=curFlag;
   ValidateОтчетSection;
 fi;
end;  

2-- События клеток
Func Field_onEnter(Field:String; Iter:Integer): Logical; -- на входе в клетку
 if Template_OnClear: ^False; fi;
 Flag_onEnter=False;
 if Field="ОтчГод":         Flag_onEnter=True;
 |  Field="отчПерИмя_":     ОтчетныйПериод_Get(flgОбоФинГод, flgОтчКварт); ^False;
 |  Field="отчВФО_":        ВФО_ВидФинансовогоОбеспечения_OnEnter; ^False;
 |  Field="отчСЧТ_":        Счета_ВыборСчетаНФАonEnter(if(flgФтрАнаcur=1, True, False), curAcc); ^False;
 |  Field="отчКБК_":        Счета_ВыборКБК(if(flgФтрАнаcur=1, True, False), False); ^False;
 |  Field="отчМОЛ_":        МОЛ_ВыборМОЛ(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, if(flgФтрАнаcur=1, True, False), False); ^False;
 |  Field="отчМХЭ_":        МХЭ_ВыборМХЭ(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, if(flgФтрАнаcur=1, True, False), False); ^False;
 |  Field="отчVOC_":        ВыборДопСправочника(False); ^False;
 |  Field="отчДАН_":        ВыборДопПризнака(отчVOC, флагиВФО, flgЗабаланс, отчСЧТ, отчКБК, if(flgФтрАнаcur=1, True, False), False); ^False;
 |  Field="UserSortField_": ВыбратьUserПолеСортировки; ^False;
 |  Field="отчАНА" :        OldотчАНА=отчАНА; Flag_onEnter=True; ^True;
 |  Field="Расшифр":        ДетализацияПозиции(DataНП, DataКП, отчПерНом, flgОбоФинГод, flgОтчКварт, Iter); ^False;
 |  Field="УЧР_ИМЯ":        Реквизиты; ^False;
 |  Field="УЧР_ОКПО":       Реквизиты; ^False;
 fi;
 ^True;
end;

Proc Field_onExit(Field:String; Iter:Integer); -- на выходе из клетки
 if Template_OnClear: Exit; fi;
 if Field="ОтчГод" :       if Flag_onEnter and ОтчГод<>ОтчГодold: if ОтменитьИзмененияУсловийОтчета: ОтчГод=ОтчГодold; fi; fi;
                           if ОтчГод=0: ОтчГод=ОтчГодold; fi;
 |  Field="отчКБК_":       Счета_ВыборКБК(if(flgФтрАнаcur=1, True, False), True);
 |  Field="отчМОЛ_":       МОЛ_ВыборМОЛ(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, if(flgФтрАнаcur=1, True, False), True);
 |  Field="отчМХЭ_":       МХЭ_ВыборМХЭ(флагиВФО, отчСЧТ, отчКБК, flgЗабаланс, if(flgФтрАнаcur=1, True, False), True);
 |  Field="отчVOC_":       ВыборДопСправочника(True);
 |  Field="отчДАН_":       ВыборДопПризнака(отчVOC, флагиВФО, flgЗабаланс, отчСЧТ, отчКБК, if(flgФтрАнаcur=1, True, False), True);
 |  Field="отчАНА" :       if     Flag_onEnter and отчАНА<>OldотчАНА: if ОтменитьИзмененияУсловийОтчета: отчАНА=OldотчАНА; fi; fi;
                           if not Flag_onEnter and отчАНА="":         if ОтменитьИзмененияУсловийОтчета: отчАНА=OldотчАНА; fi; fi;
 |  Field="УЧРЕЖ_ИМЯ":     if УЧР_ИМЯ="": УЧР_ОКПО=""; УЧР_REC=NIL; fi;
 |  Field="ОКПО":          if УЧР_ИМЯ="": УЧР_ОКПО=""; УЧР_REC=NIL; fi;
 |  Field="ИспФИО" :       if ИспФИО="": ИспДол=""; ИспREC=NIL; fi;
 fi;
 ValidateОтчетSection;
 Flag_onEnter=False;
end;

Func Field_OnValidateS(Field:String; Iter:Integer; Value:String) :Logical;
var Res :Numeric;
 if Field="отчАНА":
   if Length(Value)>253: Message("Строка доп. аналитики не может быть больше 253 символов!", mtWarning); ^False; fi;
   Try Res=Saldo("{"+Value+"}", 1.1.100); Except ^False; end;
 fi;
 ^True;
end;

Func Field_OnValidateI(Field:String; Iter:Integer; Value:Integer): Logical;
 if Value<0: Message("Нельзя вводить отрицательное число.", mtError); ^False; fi;
 if Field="отчГОД":
   if Value<1990 or Value>2090: Message("Отчетный год задан вне допустимого диапазона.^M[1990-2090 гг.]", mtError); ^False; fi;
   ОтчГодold=Value;
 fi;
 ^True;
end;

Func Год_onLookup(Sect:String; Row:Integer; Col:Integer; Cur:String) :String;
var ii, StoreVal, ResultVal :Integer;
var FieldName :String;
 Template.HideEditor(False);
 FieldName=AsString(Template.Field);
 if not VariableExists(FieldName): Message("Не найдена переменная!", mtError); ^Cur; fi;
 Try ResultVal=GetVariableI(FieldName); Except ^Cur; end;
 StoreVal=ResultVal;
 ClearVariable(Buf);
 ii=0;
 for ii=1 to 5 do Buf[ii]=Str(Year(ToDay)+ii-4); od;
 ii=Alternate("Год расчета", Buf, 20, 4-(Year(ToDay)-ResultVal), 12);
 if ii=0: ^Cur; fi;
 ResultVal=Int(Buf[ii]);
 if ResultVal<>StoreVal: if ОтменитьИзмененияУсловийОтчета: ResultVal=StoreVal; fi; fi;
 PutVariableI(FieldName, ResultVal);
 ОтчГодold=ResultVal;
 ^"";
end;

Func Сотрудники_onLookup(Sect:String; Row:Integer; Col:Integer; Cur:String): String;
var REC :Record;
var FieldName, СТРФИО, СТРДОЛ, tmp1, tmp2 :String;
 Template.HideEditor(False);
 if not AutoRefresh: RefreshAna; fi;
 FieldName=asString(Template.Field);
 REC=OpenCardFile("СОТРУДНИКИ", "", ИспREC, crdRecordOnly);
 if REC=NIL: ^Cur; fi;
 tmp1=GetCardFieldS("СОТРУДНИКИ", REC, "ИНИЦИАЛЫ");
 tmp2=GetCardFieldS("СОТРУДНИКИ", REC, "ФАМИЛИЯ");
 СТРФИО=if(tmp2="", GetCardFieldS("СОТРУДНИКИ", REC, "ФИОТ"), tmp2+" "+if(tmp1<>"..", tmp1, ""));
 Try СТРДОЛ=GetCardFieldS("СОТРУДНИКИ", REC, "ДОЛЖНОСТЬ.ДОЛЖ"); Except СТРДОЛ=""; end;
 if FieldName="ИСПФИО": ИСПФИО=СТРФИО; ИСПДОЛ=СТРДОЛ;
 |  FieldName="ИСПДОЛ": ИСПФИО=СТРФИО; ИСПДОЛ=СТРДОЛ;
 fi;
 ^"";
end;

Func ДопАналитика_OnLookup(Sect:String; Row:Integer; Col:Integer; Cur:String): String;
var StoreANA, tmp :String;
 Template.HideEditor(False);
 if Template_OnClear: ^Cur; fi;
 StoreANA=отчАНА;
 if Trim(constИСКЛvoc)="": SetИСКЛvoc; fi;
 tmp=AnaElection("*.*&~("+constИСКЛvoc+"|ГРП.*|КБК.*|М.*|МОЛ.*|МХЭ.*|СЧТ.*"+")", False, False, StoreANA);
-- tmp=Up(AnaElection(""));
 if tmp="": ^Cur; fi;
 if отчАНА="": 
   отчАНА=tmp; 
 else 
   if Pos(tmp, Up(отчАНА))=0:
     отчАНА=Объединить(отчАНА, tmp, Оператор);
     if Length(отчАНА)>253:
       Message("Строка доп. аналитики не может быть больше 253 символов.^MВыбор отменен!", mtWarning);
       отчАНА=StoreANA;
       OldотчАНА=отчАНА;
       ^Cur;
     fi;
   fi;
 fi;
 if отчАНА<>StoreANA: if ОтменитьИзмененияУсловийОтчета: отчАНА=StoreANA; fi; ValidateОтчетSection; fi;
 OldотчАНА=отчАНА;
 ^Cur;
end;

Func Дата_onLookup(Sect:String; Row:Integer; Col:Integer; Cur:String) :String;
var ddSave : Date;
 Template.HideEditor(False);
 ddSave=ВыборДаты(GetDate);
 SetDate(ddSave);
 ^"";
end;

2-- События шаблона
Proc Template_OnOpen(Create:Logical); -- при открытии шаблона
 РАБ.НАСТР_ПЕЧАТЬ.Cfg(PlanVar("НФА")+"\Настройки\", "ТББ_STD_Album10_000.cfg"); -- стандартная настройка !(возможно надо будет заменить)
end;

Proc Template_AfterOpen(Create:Logical); -- после открытия шаблона
var num :Integer;
 Очистить;
 if Позиции>0:
    num=EnqOkCancel("Обнаружены данные предыдущего расчета!^MСформировать ведомость?", mtConfirmation);
    if num=cmOk:  ПостроениеОтчета; else ОчисткаОтчета; fi;
 else
    ОчисткаОтчета;
 fi;
 Инициализация;
 flgClear=GetGuid;
 Template.Field="Фокус";
end;

Proc Template_OnClose(Destroy:Logical); -- при закрытии шаблона
var num :Integer;
 Очистить;
 flgClear="";
 if Позиции>0:
    num=Enquiry("Выберите действие...", "Очистить ведомость (быстрее будет открываться бланк)^Mили сохранить данные для дальнейшего просмотра?", "Очистить;Сохранить", mtConfirmation);
    if num=1: ОчисткаОтчета; fi;
 fi;
end;

КОНЕЦ