Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 12:28

Запрос-Группировка

Автор Grom, 06 янв 2011, 17:44

0 Пользователей и 1 гость просматривают эту тему.

Grom

Добрый день!
Платформа 7.7
Как упростить следующий код, что бы 1с меньше времени тратила на циклы?

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

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"   
   Таб.ВывестиСекцию("Шапка");
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
      // Заполнение полей Месяц
      Таб.ВывестиСекцию("Месяц");
      Пока Запрос.Группировка(2) = 1 Цикл
         Пока Запрос.Группировка(3) = 1 Цикл
            Пока Запрос.Группировка(4) = 1 Цикл
               Пока Запрос.Группировка(5) = 1 Цикл
                  Пока Запрос.Группировка(6) = 1 Цикл 
                     Пока Запрос.Группировка(7) = 1 Цикл
                        Таб.ВывестиСекцию("Код");
                     КонецЦикла;
                  КонецЦикла;
               КонецЦикла;   
            КонецЦикла;   
         КонецЦикла;
      КонецЦикла;               
   КонецЦикла;
********
Мне нужна информация которая получается после 7 группировки, как упростить?
Заранее СПАСИБО!

Теги:
Рейтинг@Mail.ru

Поиск