| 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Нажатие(). |