Имя: Пароль:
1C
1C 7.7
v7: Как выбирать на уровне группировок у прямых запросов?
0 EvgeniuXP
 
24.05.12
13:09
Есть запрос:

   "ВЫБРАТЬ
   |  Доходы.Филиал КАК [Филиал $Справочник.Филиалы],
   |  Доходы.Товар КАК [Товар $Справочник.Товары],
   |  СУММА(Доходы.ОстатокТовараОстаток) КАК ОстатокТовара
   |ИЗ
   |  $РегистрОстатки.УчетРеализации(:КонПериода,,(Филиал),(ОстатокТовара)) КАК Доходы
   |
   |СГРУППИРОВАТЬ
   |  Филиал,
   |  Товар
   |";
   Запрос.УстановитьТекстовыйПараметр("КонПериода",Дата('15.01.2012'));
   Запрос.Текст=ТекстЗапроса;
   ТЗ=Запрос.Выполнить();

   ТЗ.ВыбратьСтроку();

Нужно вывести:

   Филиал1 - ИтогПоВсемТоварам
       Товар1 - ИтогПоТовару
       Товар2 - ИтогПоТовару
       и т.д.
   Филиал2 - ИтогПоВсемТоварам
       Товар150 - ИтогПоТовару
       Товар151 - ИтогПоТовару

Как строить выборку дальше?

У штатного запроса, можно было написать:
   Пока Запрос.Группировка(1)=1 Цикл
       // Выводим Филиал и Итог по всем товарам
       Пока Запрос.Группировка(2)=1 Цикл
           // Выводим Товар и Итог по товару

А у прямого запроса как делают?
1 Попытка1С
 
24.05.12
13:11
Индексированная таблица и метод группировать тебя спасет.
2 viktor_vv
 
24.05.12
13:11
В индексированнуюТаблицу из 1cpp и Группировать().
3 Попытка1С
 
24.05.12
13:12
4 ДенисЧ
 
24.05.12
13:12
Группировать() ещё не предлагали?
5 EvgeniuXP
 
24.05.12
13:14
гы, как просто :) спасибо!
6 Mikeware
 
24.05.12
13:19
Группировать() лучше использовать, если нужны итоги по группировкам. А если просто перебор - быстрее отсортировать прямо в запросе по нужным полям, да простым перебором таблицы...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn