Имя: Пароль:
1C
1С v8
Последняя ли запись в выборке запроса?
0 korchak
 
13.06.13
13:52
Добрый день коллеги!

Подскажите, как узнать при выборке из результатов запроса, что мы спозиционированы на последней записи?
1 Ненавижу 1С
 
гуру
13.06.13
13:52
зачем?
2 korchak
 
13.06.13
13:55
(1) для того, что если это последняя запись, то провести определенные арифметические операции, иначе нет
3 ale-sarin
 
13.06.13
13:55
(2) После цикла, не?
4 Ненавижу 1С
 
гуру
13.06.13
13:55
(2) становится еще более интереснее, зачем?
5 korchak
 
13.06.13
13:56
(3) нет в цикле перебора
6 ДенисЧ
 
13.06.13
13:56
Перел выборкой взять Количество(), в цикле считать итерации
7 Ursus maritimus
 
13.06.13
13:57
(1) За тем, что группировки еще не проходили.
8 ale-sarin
 
13.06.13
13:57
(5) Это я предложение такое выдвинул - считать после цикла.
9 korchak
 
13.06.13
13:58
(4) ну к примеру так: если на последней записи до к итогам добавить значение данных выборки
10 YF
 
13.06.13
13:59
(9) После цикла добавь, в чем фишка именно внутри?
11 korchak
 
13.06.13
14:01
интересно есть ли такая возможность... узнавать на какой по счету записи выборки мы находимся, в том числе последней...  после цикла понятно :)
12 GANR
 
13.06.13
14:02
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Счетчик = 0;

Пока Выборка.Следующий() Цикл
   Счетчик = Счетчик + 1;
   Если Счетчик = Выборка.Количество() Тогда
       // запись последняя
   Иначе
       // запись НЕ последняя
   КонецЕсли;
КонецЦикла;
13 Ненавижу 1С
 
гуру
13.06.13
14:03
(9) зачем? используй обходы по итогам
14 korchak
 
13.06.13
14:05
(13) и все остальным спасибо!
15 Lama12
 
13.06.13
14:06
(0) А можно пример, для общего развития?
В каких задачах может возникнуть такая необходимость?
16 korchak
 
13.06.13
14:10
(15) хорошо, может кто подскажет, как в этом запросе добавить сделать так что если это последняя запись ВТПоказанияСпидометра, то добавить к итогам ВТПоказанияСпидометра.Пробег1, а не потом химичить с обходами по группировкам?

   |ВЫБРАТЬ
   |    ВТПоказанияСпидометра.Авто КАК Авто,
   |ВЫБОР
   |    КОГДА ВТПоказанияСпидометра.Пробег1 < ВТПоказанияСпидометра.Пробег2
   |        ТОГДА ВТПоказанияСпидометра.Пробег2
   |    ИНАЧЕ 0
   |КОНЕЦ КАК НарастающийИтог
   |ИЗ
   |   ВТПоказанияСпидометра КАК ВТПоказанияСпидометра
   |ИТОГИ
   |    СУММА(НарастающийИтог)
   |ПО
   |    ОБЩИЕ,
   |    Авто
17 Рэйв
 
13.06.13
14:11
(16)При выходе из цикла Выборка стоит на последней записи.Делай с ней что хошь
18 korchak
 
13.06.13
14:12
извиняюсь, ошибся: "а не потом химичить с обходами по итогам"
19 korchak
 
13.06.13
14:12
(17) это понятно, а самом запросе как ухитриться?
20 Рэйв
 
13.06.13
14:14
(19)А какая тебе разница где?
21 Рэйв
 
13.06.13
14:14
(19)Фика в том что до выполнения запроса нет вообще никаких записей
22 korchak
 
13.06.13
14:16
понятно, разобрался... всем еще раз спасибо :)
23 zladenuw
 
13.06.13
14:17
(22) так можно при обходе выборки узнать.
ТипЗаписиЗапроса (QueryRecordType)
ТипЗаписиЗапроса (QueryRecordType)
Значения

ДетальнаяЗапись (DetailRecord)
ИтогПоГруппировке (GroupTotal)
ИтогПоИерархии (TotalByHierarchy)
ОбщийИтог (Overall)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан