Вот код:
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб, ОтборСубконто1;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Контрагент = Документ.РасходнаяНакладная.Контрагент;
|Наименование = Документ.РасходнаяНакладная.ТМЦ.Наименование;
|Кво = Документ.РасходнаяНакладная.Кво;
|ЦенаБезНДС = Документ.РасходнаяНакладная.ЦенаБезНДС;
|Функция КвоСумма = Сумма(Кво);
|Функция ЦенаБезНДССумма = Сумма(ЦенаБезНДС);
|Группировка Контрагент упорядочить по Контрагент.Наименование;
|Группировка Наименование без упорядочивания;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Контрагент");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Наименование
Таб.ВывестиСекцию("Наименование");
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Процедура ПриВыбореСубконто1()
Если ПустоеЗначение(Субконто1) = 0 Тогда
ОтборСубконто1 = 1;
Иначе
ОтборСубконто1 = 0;
КонецЕсли;
КонецПроцедуры
! | Правила п.2,12 |