| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #49 : 23-02-2010 11:27 »   | 
								
								 | 
							  
							 
							Конфигурация -> Отчеты -> ТеоретическийБалансПодсолнечника -> ФормаОтчета Процедура КнопкаСформировать1Нажатие(Элемент) и Процедура КнопкаСформировать5Нажатие(Элемент)
  по этим двум процедурам у меня проблемы ((((
  Сначал рассказываю идею. Ты пишешь текст запроса в таком виде (псевдокод): ТекстЗапроса="   |ВЫБРАТЬ   |  (Выражение, например: КОНЕЦПЕРИОДА(ТаблицаЗапроса.Период, НЕДЕЛЯ)) КАК Группировка1,   |  (Выражение, например: ТаблицаЗапроса.Регистратор) Группировка2,   |  СУММА(ТаблицаЗапроса.ПолеСуммы) КАК СуммаПоляСуммы,   |  ...,   |  СУММА(ТаблицаЗапроса.ПолеКво) КАК СуммаПоляКво   |ИЗ   |  НазваниеТаблицыВКонфигураторе КАК ТаблицаЗапроса   |СГРУППИРОВАТЬ ПО   |  (Выражение аналогичное Группировка 1),   |  (Выражение аналогичное Группировка 2)   |ИТОГИ   |  СУММА(СуммаПоляСуммы),   |  ...,   |  СУММА(СуммаПоляКво)   |ПО   |  Группировка1,   |  Группировка2   |"; Потом обход по результатам запроса выполняется так: Результат=Запрос.Выполнить(); Выборка1=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка1.Следующий() Цикл 	// Здесь работаем с итогами по Группировке 1 	// Здесь что-то делаем ДО детализации по группировке 2 	Выборка2=Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 	// !!! Внимание: выборка 2 - это выборка из выборки 1 	Пока Выборка2.Следующий() Цикл 		// Здесь работаем с итогами по Группировке 2 	КонецЦикла; 	// Здесь что-то делаем ПОСЛЕ детализации по группировке 2 КонецЦикла;  Заметь: чем больше полей в блоке запроса ИТОГИ...ПО... (т.е. чем больше  группировок итогов) - тем больше  вложенных циклов у тебя будет Вот собственно и все. В итоге КнопкаСформировать1Нажатие() получилась вот такая (почитай в синтакс помощнике про  ЗаполнитьЗначенияСвойств()): Процедура КнопкаСформировать1Нажатие(Элемент) 	// Вставить содержимое обработчика. 	Запрос = Новый запрос; 	Запрос.Текст =  	"ВЫБРАТЬ 	|	ТеоретическийБалансПодсолнечника.Регистратор КАК Регистратор, 	|	КОНЕЦПЕРИОДА(ТеоретическийБалансПодсолнечника.Период, НЕДЕЛЯ) КАК КонецНедели, 	|	СУММА(ТеоретическийБалансПодсолнечника.z) КАК z, 	|	СУММА(ТеоретическийБалансПодсолнечника.z1) КАК z1, 	|	СУММА(ТеоретическийБалансПодсолнечника.z2) КАК z2, 	|	СУММА(ТеоретическийБалансПодсолнечника.z3) КАК z3, 	|	СУММА(ТеоретическийБалансПодсолнечника.z4) КАК z4, 	|	СУММА(ТеоретическийБалансПодсолнечника.z8) КАК z8, 	|	СУММА(ТеоретическийБалансПодсолнечника.z9) КАК z9, 	|	СУММА(ТеоретическийБалансПодсолнечника.z10) КАК z10, 	|	СУММА(ТеоретическийБалансПодсолнечника.z11) КАК z11, 	|	СУММА(ТеоретическийБалансПодсолнечника.z12) КАК z12, 	|	СУММА(ТеоретическийБалансПодсолнечника.z13) КАК z13, 	|	СУММА(ТеоретическийБалансПодсолнечника.z14) КАК z14, 	|	СУММА(ТеоретическийБалансПодсолнечника.z15) КАК z15, 	|	СУММА(ТеоретическийБалансПодсолнечника.z16) КАК z16, 	|	СУММА(ТеоретическийБалансПодсолнечника.z17) КАК z17, 	|	СУММА(ТеоретическийБалансПодсолнечника.z18) КАК z18, 	|	СУММА(ТеоретическийБалансПодсолнечника.z19) КАК z19, 	|	СУММА(ТеоретическийБалансПодсолнечника.x) КАК x, 	|	СУММА(ТеоретическийБалансПодсолнечника.x1) КАК x1, 	|	СУММА(ТеоретическийБалансПодсолнечника.x2) КАК x2, 	|	СУММА(ТеоретическийБалансПодсолнечника.x3) КАК x3, 	|	СУММА(ТеоретическийБалансПодсолнечника.x4) КАК x4, 	|	СУММА(ТеоретическийБалансПодсолнечника.x8) КАК x8, 	|	СУММА(ТеоретическийБалансПодсолнечника.x9) КАК x9, 	|	СУММА(ТеоретическийБалансПодсолнечника.x10) КАК x10, 	|	СУММА(ТеоретическийБалансПодсолнечника.x11) КАК x11, 	|	СУММА(ТеоретическийБалансПодсолнечника.x12) КАК x12, 	|	СУММА(ТеоретическийБалансПодсолнечника.x13) КАК x13, 	|	СУММА(ТеоретическийБалансПодсолнечника.x14) КАК x14, 	|	СУММА(ТеоретическийБалансПодсолнечника.x15) КАК x15, 	|	СУММА(ТеоретическийБалансПодсолнечника.x16) КАК x16, 	|	СУММА(ТеоретическийБалансПодсолнечника.x17) КАК x17, 	|	СУММА(ТеоретическийБалансПодсолнечника.x18) КАК x18, 	|	СУММА(ТеоретическийБалансПодсолнечника.x19) КАК x19, 	|	СУММА(ТеоретическийБалансПодсолнечника.c) КАК c, 	|	СУММА(ТеоретическийБалансПодсолнечника.c2) КАК c2, 	|	СУММА(ТеоретическийБалансПодсолнечника.c4) КАК c4, 	|	СУММА(ТеоретическийБалансПодсолнечника.c5) КАК c5, 	|	СУММА(ТеоретическийБалансПодсолнечника.c6) КАК c6, 	|	СУММА(ТеоретическийБалансПодсолнечника.c7) КАК c7, 	|	СУММА(ТеоретическийБалансПодсолнечника.c9) КАК c9, 	|	СУММА(ТеоретическийБалансПодсолнечника.c10) КАК c10, 	|	СУММА(ТеоретическийБалансПодсолнечника.c11) КАК c11, 	|	СУММА(ТеоретическийБалансПодсолнечника.c12) КАК c12, 	|	СУММА(ТеоретическийБалансПодсолнечника.c13) КАК c13, 	|	СУММА(ТеоретическийБалансПодсолнечника.c14) КАК c14, 	|	СУММА(ТеоретическийБалансПодсолнечника.c15) КАК c15, 	|	СУММА(ТеоретическийБалансПодсолнечника.c16) КАК c16, 	|	СУММА(ТеоретическийБалансПодсолнечника.c17) КАК c17, 	|	СУММА(ТеоретическийБалансПодсолнечника.c18) КАК c18, 	|	СУММА(ТеоретическийБалансПодсолнечника.c19) КАК c19, 	|	СУММА(ТеоретическийБалансПодсолнечника.c20) КАК c20, 	|	СУММА(ТеоретическийБалансПодсолнечника.c21) КАК c21, 	|	СУММА(ТеоретическийБалансПодсолнечника.c22) КАК c22, 	|	СУММА(ТеоретическийБалансПодсолнечника.c23) КАК c23, 	|	СУММА(ТеоретическийБалансПодсолнечника.c24) КАК c24, 	|	СУММА(ТеоретическийБалансПодсолнечника.c25) КАК c25, 	|	СУММА(ТеоретическийБалансПодсолнечника.c26) КАК c26, 	|	СУММА(ТеоретическийБалансПодсолнечника.c27) КАК c27, 	|	СУММА(ТеоретическийБалансПодсолнечника.c28) КАК c28, 	|	СУММА(ТеоретическийБалансПодсолнечника.c29) КАК c29, 	|	СУММА(ТеоретическийБалансПодсолнечника.c30) КАК c30, 	|	СУММА(ТеоретическийБалансПодсолнечника.c31) КАК c31, 	|	СУММА(ТеоретическийБалансПодсолнечника.c32) КАК c32, 	|	СУММА(ТеоретическийБалансПодсолнечника.c33) КАК c33, 	|	СУММА(ТеоретическийБалансПодсолнечника.c34) КАК c34, 	|	СУММА(ТеоретическийБалансПодсолнечника.c35) КАК c35, 	|	СУММА(ТеоретическийБалансПодсолнечника.k) КАК k, 	|	СУММА(ТеоретическийБалансПодсолнечника.k2) КАК k2, 	|	СУММА(ТеоретическийБалансПодсолнечника.k3) КАК k3, 	|	СУММА(ТеоретическийБалансПодсолнечника.k4) КАК k4, 	|	СУММА(ТеоретическийБалансПодсолнечника.k5) КАК k5 	|ИЗ 	|	РегистрНакопления.ТеоретическийБалансПодсолнечника КАК ТеоретическийБалансПодсолнечника 	|ГДЕ 	|	ТеоретическийБалансПодсолнечника.Период МЕЖДУ &НачалоДня И &КонецДня 	| 	|СГРУППИРОВАТЬ ПО 	|	ТеоретическийБалансПодсолнечника.Регистратор, 	|	КОНЕЦПЕРИОДА(ТеоретическийБалансПодсолнечника.Период, НЕДЕЛЯ) 	| 	|УПОРЯДОЧИТЬ ПО 	|	Регистратор 	|ИТОГИ 	|	СУММА(z), 	|	СУММА(z1), 	|	СУММА(z2), 	|	СУММА(z3), 	|	СУММА(z4), 	|	СУММА(z8), 	|	СУММА(z9), 	|	СУММА(z10), 	|	СУММА(z11), 	|	СУММА(z12), 	|	СУММА(z13), 	|	СУММА(z14), 	|	СУММА(z15), 	|	СУММА(z16), 	|	СУММА(z17), 	|	СУММА(z18), 	|	СУММА(z19), 	|	СУММА(x), 	|	СУММА(x1), 	|	СУММА(x2), 	|	СУММА(x3), 	|	СУММА(x4), 	|	СУММА(x8), 	|	СУММА(x9), 	|	СУММА(x10), 	|	СУММА(x11), 	|	СУММА(x12), 	|	СУММА(x13), 	|	СУММА(x14), 	|	СУММА(x15), 	|	СУММА(x16), 	|	СУММА(x17), 	|	СУММА(x18), 	|	СУММА(x19), 	|	СУММА(c), 	|	СУММА(c2), 	|	СУММА(c4), 	|	СУММА(c5), 	|	СУММА(c6), 	|	СУММА(c7), 	|	СУММА(c9), 	|	СУММА(c10), 	|	СУММА(c11), 	|	СУММА(c12), 	|	СУММА(c13), 	|	СУММА(c14), 	|	СУММА(c15), 	|	СУММА(c16), 	|	СУММА(c17), 	|	СУММА(c18), 	|	СУММА(c19), 	|	СУММА(c20), 	|	СУММА(c21), 	|	СУММА(c22), 	|	СУММА(c23), 	|	СУММА(c24), 	|	СУММА(c25), 	|	СУММА(c26), 	|	СУММА(c27), 	|	СУММА(c28), 	|	СУММА(c29), 	|	СУММА(c30), 	|	СУММА(c31), 	|	СУММА(c32), 	|	СУММА(c33), 	|	СУММА(c34), 	|	СУММА(c35), 	|	СУММА(k), 	|	СУММА(k2), 	|	СУММА(k3), 	|	СУММА(k4), 	|	СУММА(k5) 	|ПО 	|	КонецНедели, 	|	Регистратор 	|АВТОУПОРЯДОЧИВАНИЕ"; 	Запрос.УстановитьПараметр("НачалоДня", НачалоДня(НачПериода)); 	Запрос.УстановитьПараметр("КонецДня", КонецДня(КонПериода)); 	 	темп = Новый ТабличныйДокумент; 	ТабДок = ПолучитьМакет("Макет"); 	 	ОбластьВведение = ТабДок.ПолучитьОбласть("Введение"); 	Темп.Вывести(ОбластьВведение); 	 	Результат = Запрос.Выполнить(); 	ВыборкаПериод = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 	Пока ВыборкаПериод.Следующий() Цикл 		ВыборкаРегистратор = ВыборкаПериод.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 		Пока ВыборкаРегистратор.Следующий() Цикл 			Если ВыборкаРегистратор=Неопределено Тогда Продолжить; КонецЕсли; 			 			ОбластьРегистратор = ТабДок.ПолучитьОбласть("Регистратор"); 			ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата; 			ЗаполнитьЗначенияСвойств(ОбластьРегистратор.Параметры, ВыборкаРегистратор, 			  "z,z1,z2,z3,z4,z8,z9,z10,z11,z12,z13,z14,z15,z16,z17,z18,z19,"+ 			  "x,x1,x2,x3,x4,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,"+ 			  "c,c2,c4,c5,c6,c7,c9,c11,c12,c13,c14,c15,c16,c17,c19,c20,c21,"+ 			  "c22,c23,c24,c25,c26,c27,c28,c29,c30,c31,c32,c33,c34,c35"+ 			  ""); 			Темп.Вывести(ОбластьРегистратор); 		КонецЦикла; 		 		ОбластьПериод = ТабДок.ПолучитьОбласть("Период"); 		ОбластьПериод.Параметры.Дата1=ВыборкаПериод.Регистратор; 		ЗаполнитьЗначенияСвойств(ОбластьПериод.Параметры, ВыборкаПериод, 		  "k,k2,k3,k4,k5"); 		ОбластьПериод.Параметры.k1=//ВыборкаПериод.k1; 		  ((ВыборкаПериод.z2) + (ВыборкаПериод.x2)) / (ВыборкаПериод.k); 		ОбластьПериод.Параметры.k6=//ВыборкаПериод.k6; 		  ((ВыборкаПериод.z4) + (ВыборкаПериод.x4)) / (ВыборкаПериод.k); 		//ОбластьПериод.Параметры.k7=ВыборкаПериод.k7; 		//ОбластьПериод.Параметры.k8=ВыборкаПериод.k8; 		//ОбластьПериод.Параметры.k9=ВыборкаПериод.k9; 		//ОбластьПериод.Параметры.k10=ВыборкаПериод.k10; 		//ОбластьПериод.Параметры.k11=ВыборкаПериод.k11; 		//ОбластьПериод.Параметры.k12=ВыборкаПериод.k12; 		//ОбластьПериод.Параметры.k13=ВыборкаПериод.k13; 		//ОбластьПериод.Параметры.k14=ВыборкаПериод.k14; 		//ОбластьПериод.Параметры.k15=ВыборкаПериод.k15; 		//ОбластьПериод.Параметры.k16=ВыборкаПериод.k16; 		//ОбластьПериод.Параметры.k17=ВыборкаПериод.k17; 		//ОбластьПериод.Параметры.k18=ВыборкаПериод.k18; 		//ОбластьПериод.Параметры.k19=ВыборкаПериод.k19; 		//ОбластьПериод.Параметры.k20=ВыборкаПериод.k20; 		//ОбластьПериод.Параметры.k21=ВыборкаПериод.k21; 		//ОбластьПериод.Параметры.k22=ВыборкаПериод.k22; 		//ОбластьПериод.Параметры.k23=ВыборкаПериод.k23; 		//ОбластьПериод.Параметры.k24=ВыборкаПериод.k24; 		//ОбластьПериод.Параметры.k25=ВыборкаПериод.k25; 		//ОбластьПериод.Параметры.k26=ВыборкаПериод.k26; 		//ОбластьПериод.Параметры.k27=ВыборкаПериод.k27; 		Темп.Вывести(ОбластьПериод); 	КонецЦикла; 	ТабФорма = Отчеты.ТеоретическийБалансПодсолнечника.ПолучитьФорму("ФормаТаблицы"); 	ТабФорма.Открыть(); 	ТабФорма.ЭлементыФормы.Результат.Вывести(Темп); КонецПроцедуры
  Мне было лень прописывать все  коэффициенты в результате - это сделаешь сам по аналогии с  k1 и  k6. Аналогично для КнопкаСформировать5Нажатие().  
						 |