![]() |
![]() |
![]() |
|
Как повторить выборку не вызывая ее дважды | ☑ | ||
---|---|---|---|---|
0
Boroda444
22.01.10
✎
10:03
|
Есть строка
ВыбДокументы = Документы[ИмяДокумента].Выбрать(Начало,Конец); Как перебрать ВыбДокументы дважды. Сначала узнать кво выбраных документов а потом используя эту же выборку заново перебрать все эти доки по циклу? |
|||
1
MRAK
22.01.10
✎
10:05
|
выбирай запросом
|
|||
2
Boroda444
22.01.10
✎
10:06
|
не хочу - массив за год
|
|||
3
Boroda444
22.01.10
✎
10:06
|
слишком много будет запросом - хочу дважды выбрать. такое вообще возможно?
типа выборака.Вначало? |
|||
4
AndrewKiev
22.01.10
✎
10:07
|
(3) таких методов нету у такой выборки. У выборки с результата запроса есть...
|
|||
5
MRAK
22.01.10
✎
10:08
|
(3) запрос будет быстрее
|
|||
6
Boroda444
22.01.10
✎
10:09
|
ок. спасибо за помощь. сделаю запросом
|
|||
7
AndrewKiev
22.01.10
✎
10:09
|
(0) получай количество запросом
|
|||
8
Boroda444
22.01.10
✎
10:09
|
типа кво запросом а потом выборка?
|
|||
9
Boroda444
22.01.10
✎
10:09
|
:) по моему это даже лаконичнее.
|
|||
10
73
22.01.10
✎
10:10
|
(3) К тому же выборка как в (0) динамическая, и не факт, что не изменится...
|
|||
11
Boroda444
22.01.10
✎
10:10
|
выборака же не тащит все ссылки в память... а кво я просто получу как выбрать различные. Так?
|
|||
12
MRAK
22.01.10
✎
10:10
|
(8) это изврат))))
|
|||
13
Boroda444
22.01.10
✎
10:10
|
это свретка - пользователей нет
|
|||
14
Boroda444
22.01.10
✎
10:11
|
ладно... просто я думаю что если не собирать все 55000 доков в запрос а просто из перебрать будет быстрее
|
|||
15
Pasha
22.01.10
✎
10:12
|
(2) Разработчики рекомендуют все делать через запрос и нефиг тут выпендриваться
|
|||
16
H A D G E H O G s
22.01.10
✎
10:17
|
Запрос=новый запрос;
запрос.Текст= "ВЫБРАТЬ ПЕРВЫЕ 1000 | Тестирование.Номер, | Тестирование.Ссылка |ИЗ | Документ.Тестирование КАК Тестирование |ГДЕ | (НЕ Тестирование.Ссылка В (&СписокСсылок))"; списокссылок=новый СписокЗначений; пока истина цикл Запрос.УстановитьПараметр("СписокСсылок",СписокСсылок); Выборка=Запрос.Выполнить().Выбрать(); пока Выборка.Следующий() Цикл списокссылок.Добавить(Выборка.Ссылка); КонецЦикла; КонецЦикла; |
|||
17
H A D G E H O G s
22.01.10
✎
10:17
|
Даже вот так:
Запрос=новый запрос; запрос.Текст= "ВЫБРАТЬ ПЕРВЫЕ 1000 | Тестирование.Номер, | Тестирование.Ссылка |ИЗ | Документ.Тестирование КАК Тестирование |ГДЕ | (НЕ Тестирование.Ссылка В (&СписокСсылок))"; списокссылок=новый СписокЗначений; пока истина цикл Запрос.УстановитьПараметр("СписокСсылок",СписокСсылок); Выборка=Запрос.Выполнить().Выбрать(); Если Выборка.Количество()=0 Тогда Прервать; КонецЕсли; пока Выборка.Следующий() Цикл списокссылок.Добавить(Выборка.Ссылка); КонецЦикла; КонецЦикла; |
|||
18
Mitriy
22.01.10
✎
10:19
|
(0) Выборка.Сбросить()
|
|||
19
Mitriy
22.01.10
✎
10:23
|
(18) млин... пардон за невнимательность...
|
|||
20
H A D G E H O G s
22.01.10
✎
10:23
|
(0) Узнать количество:
| СУММА(1) КАК КоличествоДокументов |ИЗ | Документ.Тестирование КАК Тестирование" |
|||
21
mikecool
22.01.10
✎
10:29
|
(20) тогда уж может лучше
| СУММА(*) КАК КоличествоДокументов |ИЗ | Документ.Тестирование КАК Тестирование" ? или однобоко? |
|||
22
MRAK
22.01.10
✎
10:30
|
(17) это ты так издеваешься?
|
|||
23
H A D G E H O G s
22.01.10
✎
10:42
|
(22)
Ни капли. Поясни. |
|||
24
H A D G E H O G s
22.01.10
✎
10:42
|
(21) Нет
|
|||
25
Mitriy
22.01.10
✎
10:44
|
(23) у тебя спискоссылок за циклом создается...
|
|||
26
H A D G E H O G s
22.01.10
✎
10:46
|
(25) И?
|
|||
27
AndrewKiev
22.01.10
✎
10:46
|
(23) и (25) если количество элементов в выобрке будет не ноль - она будет вечна. а список правильно создавать за циклом, так как циклом он его наполняет
|
|||
28
Mitriy
22.01.10
✎
10:47
|
(26) катавасия какая-то получатся...
|
|||
29
H A D G E H O G s
22.01.10
✎
10:48
|
(27) <<она будет вечна.>>
Прикалываешься? |
|||
30
H A D G E H O G s
22.01.10
✎
10:48
|
(28) Где?
|
|||
31
Mitriy
22.01.10
✎
10:50
|
(30) мля... все сработает, мои извинения ))
|
|||
32
H A D G E H O G s
22.01.10
✎
10:50
|
ППЦ, народ, вы че курите?
Мне даже пришлось проверить, работает алгоритм или нет. Нагнали на меня сомнения... |
|||
33
Mitriy
22.01.10
✎
10:51
|
(32) :))
|
|||
34
AndrewKiev
22.01.10
✎
10:52
|
(32) и (29) сразу не понял глубину мысли, извини ;)
|
|||
35
agarych
22.01.10
✎
10:54
|
(0) чтобы количество получить просто используй функцию
Выборка.Количество() |
|||
36
AndrewKiev
22.01.10
✎
10:54
|
(35) это только для выборки с запроса
|
|||
37
agarych
22.01.10
✎
10:57
|
(36) ну собственно, я предупредил автора, а то вдруг он два запроса сделает. один для обхода, а второй для получения количества документов.
|
|||
38
H A D G E H O G s
22.01.10
✎
11:00
|
(37) Так и надо
|
|||
39
H A D G E H O G s
22.01.10
✎
11:00
|
В случае "псевдодинамической" выборки.
|
|||
40
Mitriy
22.01.10
✎
11:02
|
(37) третьим будешь...
|
|||
41
Mitriy
22.01.10
✎
11:03
|
(40)* даже четвертым )
|
|||
42
Boroda444
22.01.10
✎
12:34
|
а я сделал в конце концов так
Выбрать док.Ссылка, Количество(Док.Ссылка) из Документ.БлаблА как Док Где Док = блабла Сгруппировать по Док.Ссылка Итоги ПО Общие И первую строку в выборке пропускаю - беру из нее количество доков а все остальные строки - то що доктор прописал |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |