Главная Регистрация Форум Поиск по форуму Продать разработку Программное обеспечение Опубликовать статью Статьи по программированию Общение Сообщества Фриланс Добавить проект Web-бухгалтерия Железо Книги

forum1C8.ru

Социальная сеть программистов
 


 Авторизация
Логин:

Пароль:



 Забыли пароль ?

 Регистрация
На сайте:
Содержание

Как при получении данных из запроса обойти только итоговые записи?


ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; 
ТабДок.Очистить();
Макет = ПолучитьМакет("Отчет");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура,
| ПродажиКомпанииОбороты.Номенклатура.Представление,
| ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот,
| ПродажиКомпанииОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот
|ИЗ
| РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода,&КонПериода) КАК ПродажиКомпанииОбороты
|ИТОГИ СУММА(КоличествоОборот), СУММА(СуммаПродажиОборот) ПО
| ОБЩИЕ,
| Номенклатура Иерархия";
Запрос.УстановитьПараметр("&НачПериода", НачПериода);
Запрос.УстановитьПараметр("&КонПериода", КонецДня(КонПериода));
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги");
ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
// Обход по определенным в запросе итоговым группировкам.
ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
// Запись общих итогов одна, поэтому нет необходимости в цикле.
ВыборкаОбщийИтог.Следующий();
ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
ТабДок.Вывести(ОбластьОбщийИтог);
// Получить подчиненную выборку по итоговой группировке "номенклатура".
ВыборкаНоменклатура = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
ТабДок.Вывести(ОбластьНоменклатура);
// Несмотря на то, что можем получить еще одну подчиненную
// выборку (по детальным записям) мы это не делаем, т.е. фактически
// при обходе пропускаем детальные записи.
КонецЦикла;
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
Copyright © 2012-2018 forum1C8.ru
http://www.forum1c8.ru
Сделать стартовой
Добавить в Избранное

Нравится

Программирование finansoft.ru