Процедура ОсновныеДействияФормыСформировать(Кнопка) ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; ТабДок.Очистить(); Макет = ПолучитьМакет("Макет"); ОбластьЗаголовка = Макет.ПолучитьОбласть("Заголовок"); ОбластьЗаголовка.Параметры.Заголовок = "План закупок"; ТабДок.Вывести(ОбластьЗаголовка); Пробел = Макет.ПолучитьОбласть("Пробел"); ТабДок.Вывести(Пробел); Шапка = Макет.ПолучитьОбласть("Шапка"); ТабДок.Вывести(Шапка); Запрос = Новый Запрос ( "ВЫБРАТЬ | ВЫБОР | КОГДА Форма1.ФормаПЗ.Наименование = ""Форма №1"" | ТОГДА Форма1.Количество | ИНАЧЕ 0 | КОНЕЦ КАК Кол1, | ВЫБОР | КОГДА Форма1.ФормаПЗ.Наименование = ""Форма №2"" | ТОГДА Форма1.Количество | ИНАЧЕ 0 | КОНЕЦ КАК Кол2, | ВЫБОР | КОГДА Форма1.ФормаПЗ.Наименование = ""Форма №1"" | ТОГДА Форма1.Цена | ИНАЧЕ 0 | КОНЕЦ КАК Цена1, | ВЫБОР | КОГДА Форма1.ФормаПЗ.Наименование = ""Форма №2"" | ТОГДА Форма1.Цена | ИНАЧЕ 0 | КОНЕЦ КАК Цена2, | ВЫБОР | КОГДА Форма1.ФормаПЗ.Наименование = ""Форма №1"" | ТОГДА Форма1.Сумма | ИНАЧЕ 0 | КОНЕЦ КАК Сумма1, | ВЫБОР | КОГДА Форма1.ФормаПЗ.Наименование = ""Форма №2"" | ТОГДА Форма1.Сумма | ИНАЧЕ 0 | КОНЕЦ КАК Сумма2, | Форма1.Номенклатура КАК Номенклатура, | Форма1.Группа, | Форма1.Подгруппа, | Форма1.БазЕдиница, | Форма1.Тип, | Форма1.Организация КАК Организация |ИЗ | РегистрНакопления.Форма1 КАК Форма1 |ГДЕ | Форма1.Квартал = &Квартал | " + ?(Организация.Пустая(), "", " | И Форма1.Организация = &Организация") + " | |УПОРЯДОЧИТЬ ПО | Организация") ; Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение); Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Период.Значение); Результат = Запрос.Выполнить().Выбрать(); НомСлед = ""; НомПред = ""; К = 0; Пока Результат.Следующий() Цикл НомСлед = Результат.Организация; Если (НомСлед <> НомПред)И(НомПред <> "") Тогда ОбластьИсполнитель = ТабДок.Область(ТабДок.ВысотаТаблицы-К+1,1,ТабДок.ВысотаТаблицы,1); Если (К > 1) Тогда ОбластьИсполнитель.Объединить(); КонецЕсли; ОбластьИсполнитель.ВертикальноеПоложение = ВертикальноеПоложение.Центр; ОбластьИсполнитель.Текст = НомПред; К = 0; КонецЕсли; НомПред = НомСлед; Детали = Макет.ПолучитьОбласть("Детали"); Детали.Параметры.Организация = Результат.Организация; Детали.Параметры.Группа = Результат.Группа; Детали.Параметры.Подгруппа = Результат.Подгруппа; Детали.Параметры.Номенклатура = Результат.Номенклатура; Детали.Параметры.БазЕдиница = Результат.БазЕдиница; Детали.Параметры.Тип = Результат.Тип; Детали.Параметры.Кол1 = Результат.Кол1; Детали.Параметры.Кол2 = Результат.Кол2; Детали.Параметры.Цена1 = Результат.Цена1; Детали.Параметры.Цена2 = Результат.Цена2; Детали.Параметры.Сумма1 = Результат.Сумма1; Детали.Параметры.Сумма2 = Результат.Сумма2; ТабДок.Вывести(Детали); К = К + 1; КонецЦикла; Если (К > 1) Тогда ОбластьИсполнитель = ТабДок.Область(ТабДок.ВысотаТаблицы-К+1,1,ТабДок.ВысотаТаблицы,1); ОбластьИсполнитель.Объединить(); ОбластьИсполнитель.ВертикальноеПоложение = ВертикальноеПоложение.Центр; ОбластьИсполнитель.Текст = НомПред; К = 0; КонецЕсли; Итого = Макет.ПолучитьОбласть("Итого"); Итого.Параметры.ИтогоЦена1 = ТабДок.Итог("Кол-во"); ТабДок.Вывести(Итого); КонецПроцедуры
ИтоговаяСтрока = Макет.ПоучитьОбласть("НазваниеОбласти"); ИтоговаяСтрока.Параметры.<ЯчейкаВКоторуюЗаписываешьИтог> = Состав.Итог("НазваниеКолонкиПоКоторойСчитаешьИтог"); ТабДокумент.Вывести(ИтоговаяСтрока);