Имя: Пароль:
1C
 
Как получить номер строки при обходе выборки результата запроса?
0 quick
 
21.10.04
12:32
сабж
1 Волшебник
 
21.10.04
12:32
Запрос в студию
2 quick
 
21.10.04
12:33
|ВЫБРАТЬ
   |    Док.Номенклатура КАК Номенклатура,
   |    Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |    Док.Сумма КАК Сумма,
   |    Док.Пошлина КАК Пошлина,
   |    Док.НДС КАК НДС,
   |    ПартииБух.ПартияУпр КАК ПартияУпр
   |ИЗ
   |  (ВЫБРАТЬ
   |         ТабДока.Номенклатура КАК Номенклатура,
   |         ТабДока.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |         СУММА(ТабДока.Сумма) КАК Сумма,
   |         СУММА(ТабДока.Пошлина) КАК Пошлина,
   |         СУММА(ТабДока.НДС) КАК НДС
   |   ИЗ
   |     Документ.ТаможенныеСборы.ТабличнаяЧасть КАК ТабДока
   |   ГДЕ
   |     ТабДока.Ссылка = &Ссылка
   |   СГРУППИРОВАТЬ ПО
   |                   ТабДока.Номенклатура,                  
   |                   ТабДока.ХарактеристикаНоменклатуры) КАК Док
   |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТМЦБух.Остатки(&Дата, Фирма = &Фирма И ДокументПокупки=&ДокументОснование И ДокументПоступления=&ДокументОснование) КАК ПартииБух
   |        ПО Док.Номенклатура = ПартииБух.Номенклатура И Док.ХарактеристикаНоменклатуры = ПартииБух.ХарактеристикаНоменклатуры
   |ИТОГИ ПО
   |Номенклатура,
   |ХарактеристикаНоменклатуры
3 quick
 
21.10.04
12:40
Нужно при иерархическом обходе определить момент, когда последняя строка.
4 quick
 
21.10.04
13:12
ОбходПоНом = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока ОбходПоНом.Следующий() Цикл
       ОбходПоХар = ОбходПоНом.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
       Пока ОбходПоХар.Следующий() Цикл
           Выборка = ОбходПоХар.Выбрать();
           Пока Выборка.Следующий() Цикл
               //Если НЕ ПоследняяСтрока Тогда   ///////**************************************************************
                   Движение.Стоимость = Выборка.Сумма/СуммаПокупки*ТаможенныйСбор;
                   РаспределеноСбора=РаспределеноСбора+Движение.Стоимость;
               Иначе
                   Движение.Стоимость = ТаможенныйСбор-РаспределеноСбора;    
               КонецЕсли;
           КонецЦикла;    
       КонецЦикла;    
   КонецЦикла;
5 Harley
 
21.10.04
13:27
Количество = Выборка.Количество();
Пока Выборка.Следующий() Цикл
  Количество = Количество - 1;
  Если Количество = 1 Тогда  
      // ПоследняяСтрока
  Иначе
      //Непоследняя строка
  КонецЕсли;
 КонецЦикла;
6 quick
 
21.10.04
17:49
Спасибо.