ТЗВозврат= СоздатьОбъект("ТаблицаЗначений"); ТЗВозврат.НоваяКолонка("Документ"); ТЗВозврат.НоваяКолонка("Подраздел","Справочник.Подразделения"); ТЗВозврат.НоваяКолонка("ПервПарам","Число",1,0); ТЗВозврат.НоваяКолонка("СуммаПервПарам","Число",15,2); ТЗВозврат.НоваяКолонка("МинСуммаПервПарам","Число",15,2); ТЗВозврат.НоваяКолонка("КолЮрЛицПодраздел","Число",1,0); ТЗВозврат.НоваяКолонка("СуммаКолЮрЛиц","Число",15,2); ТЗВозврат.НоваяКолонка("ОстПарам","Число",1,0); ТЗВозврат.НоваяКолонка("ПарамАЙТи","Число",1,0); ТЗВозврат.НоваяКолонка("ДатЛог","Дата"); ТЗВозврат.НоваяКолонка("ДатСклад","Дата"); ТЗВозврат.НоваяКолонка("ГруппаОфис","Справочник.ОфисныеПомещения"); ТЗВозврат.НоваяКолонка("КоэфОбъем","Число",5,2); ТЗВозврат.НоваяКолонка("ТЗРаспредел","ТаблицаЗначений"); Док = СоздатьОбъект("Документ.РезРаспределИздержек"); Док.ВыбратьДокументы(ДатаУсловий,ДатаУсловий); Пока Док.ПолучитьДокумент()=1 Цикл ТЗВозврат.НоваяСтрока(); ТЗВозврат.Документ = Док.ТекущийДокумент(); ТЗВозврат.Подраздел = Док.Подраздел; ТЗВозврат.ПервПарам = Док.ПервПарам; ТЗВозврат.СуммаПервПарам = Док.СуммаПервПарам; ТЗВозврат.МинСуммаПервПарам = Док.МинСуммаПервПарам; ТЗВозврат.КолЮрЛицПодраздел = Док.КолЮрЛицПодраздел; ТЗВозврат.СуммаКолЮрЛиц = Док.СуммаКолЮрЛиц; ТЗВозврат.ОстПарам = Док.ОстПарам; ТЗВозврат.ПарамАЙТи = Док.ПарамАЙТи; ТЗВозврат.ДатЛог = Док.ДатЛог; ТЗВозврат.ДатСклад = Док.ДатСклад; ТЗВозврат.ГруппаОфис = Док.ГруппаОфис; ТЗВозврат.КоэфОбъем = Док.КоэфОбъем; ТЗВозврат.ТЗРаспредел = СоздатьОбъект("ТаблицаЗначений"); ТЗВозврат.ТЗРаспредел.НоваяКолонка("Подраздел","Справочник.Подразделения",,,"Подразделение",7); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолПерсонала","Строка",25,,"Колич. персонала",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолЮрЛицПодраздел","Строка",25,,"Колич. юр. лиц",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолРабМест","Строка",25,,"Колич. рабочих мест",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолВыпДоставок","Строка",25,,"Колич. доставок",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолВыпЗаявок","Строка",25,,"Колич. заявок",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолНормЧас","Строка",25,,"Колич. нормочас",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("ПроцНачисления","Число",3,0,"% начисления",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолПродаж","Строка",25,,"Колич. продаж",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("КолСкладПлощ","Строка",25,,"Колич. склад. площ.",5); ТЗВозврат.ТЗРаспредел.НоваяКолонка("РаспредСумма","Число",10,2,"Сумма распределенная",5); Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл ТЗВозврат.ТЗРаспредел.НоваяСтрока(); ТЗВозврат.ТЗРаспредел.Подраздел = Док.ПодразделРаспред; ТЗВозврат.ТЗРаспредел.КолПерсонала = Док.КолПерсонала; ТЗВозврат.ТЗРаспредел.КолЮрЛицПодраздел = Док.КолЮрЛицПодразд; ТЗВозврат.ТЗРаспредел.КолРабМест = Док.КолРабМест; ТЗВозврат.ТЗРаспредел.КолВыпДоставок = Док.КолВыпДоставок; ТЗВозврат.ТЗРаспредел.КолВыпЗаявок = Док.КолВыпЗаявок; ТЗВозврат.ТЗРаспредел.КолНормЧас = Док.КолНормЧас; ТЗВозврат.ТЗРаспредел.ПроцНачисления = Док.ПроцНачисления; ТЗВозврат.ТЗРаспредел.КолПродаж = Док.КолПродаж; ТЗВозврат.ТЗРаспредел.КолСкладПлощ = Док.КолСкладПлощ; ТЗВозврат.ТЗРаспредел.РаспредСумма = Док.РаспредСумма; КонецЦикла; КонецЦикла;
Далее используем данные вложенной таблицы стандартно.
Процедура СохранитьУсловияРаспред(ТЗСохран) Док = СоздатьОбъект("Документ.РезРаспределИздержек"); ТЗСохран.ВыбратьСтроки(); Пока ТЗСохран.ПолучитьСтроку()=1 Цикл Если ПустоеЗначение(ТЗСохран.Документ)=0 Тогда Док.НайтиДокумент(ТЗСохран.Документ); Док.УдалитьСтроки(); Иначе Док.Новый(); КонецЕсли; Док.ДатаДок = КонДата; Док.Подраздел = ТЗСохран.Подраздел; Док.ПервПарам = ТЗСохран.ПервПарам; Док.СуммаПервПарам = ТЗСохран.СуммаПервПарам; Док.МинСуммаПервПарам = ТЗСохран.МинСуммаПервПарам; Док.КолЮрЛицПодраздел = ТЗСохран.КолЮрЛицПодраздел; Док.СуммаКолЮрЛиц = ТЗСохран.СуммаКолЮрЛиц; Док.ОстПарам = ТЗСохран.ОстПарам; Док.ПарамАЙТи = ТЗСохран.ПарамАЙТи; Док.ДатЛог = ТЗСохран.ДатЛог; Док.ДатСклад = ТЗСохран.ДатСклад; Док.ГруппаОфис = ТЗСохран.ГруппаОфис; Док.КоэфОбъем = ТЗСохран.КоэфОбъем; ТЗСохран.ТЗРаспредел.ВыбратьСтроки(); Пока ТЗСохран.ТЗРаспредел.ПолучитьСтроку()=1 Цикл Док.НоваяСтрока(); Док.ПодразделРаспред = ТЗСохран.ТЗРаспредел.Подраздел; Док.КолПерсонала = ТЗСохран.ТЗРаспредел.КолПерсонала; Док.КолЮрЛицПодразд = ТЗСохран.ТЗРаспредел.КолЮрЛицПодраздел; Док.КолРабМест = ТЗСохран.ТЗРаспредел.КолРабМест; Док.КолВыпДоставок = ТЗСохран.ТЗРаспредел.КолВыпДоставок; Док.КолВыпЗаявок = ТЗСохран.ТЗРаспредел.КолВыпЗаявок; Док.КолНормЧас = ТЗСохран.ТЗРаспредел.КолНормЧас; Док.ПроцНачисления = ТЗСохран.ТЗРаспредел.ПроцНачисления; Док.КолПродаж = ТЗСохран.ТЗРаспредел.КолПродаж; Док.КолСкладПлощ = ТЗСохран.ТЗРаспредел.КолСкладПлощ; Док.РаспредСумма = ТЗСохран.ТЗРаспредел.РаспредСумма; КонецЦикла; Док.Записать(); КонецЦикла; КонецПроцедуры // СохранитьУсловияРаспред