|
Непонятная работа перебора результата запроса | ☑ | ||
---|---|---|---|---|
0
LivingStar
18.09.14
✎
21:27
|
выполняется запрос
ВЫБРАТЬ ЦеныСрезПоследних.Регистратор ИЗ РегистрСведений.Цены.СрезПоследних(&ТекущаяДата, спрИсполнитель = &ИсполнительКонтрагент) КАК ЦеныСрезПоследних в запросе выбирается 4 записи, так как их столько есть в регистре по одному документу но в цикле перебор идет 800 с лишнем записей, почему, что не так сделано? Запрос.УстановитьПараметр("ИсполнительКонтрагент", Ссылка); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл ФормаДок = Выборка.Регистратор.ПолучитьФорму(); |
|||
1
Крошка Ру
18.09.14
✎
21:28
|
(0) сдается мне, что-то ты скрываешь...
|
|||
2
Vladal
18.09.14
✎
21:28
|
> по одному документу
и > СрезПоследних(&ТекущаяДата, Может, там и 4 документа, но в них может быть некисло по несколько тысяч строк |
|||
3
LivingStar
18.09.14
✎
21:29
|
спрИсполнитель = &ИсполнительКонтрагент - это условие на одну из табличных частей документа
|
|||
4
LivingStar
18.09.14
✎
21:30
|
(2) да не в регистр помещены 4 записи и они в одной из табличных частей документа, я так понимаю
Выборка.Следующий() должна отработать максимум 4 раза, а она крутит более 800 раз |
|||
5
Vladal
18.09.14
✎
21:31
|
(3) Открой личико, покажи весь запрос или расскажи всю задачу. Возможно, твою задачу можно решить и другим способом.
|
|||
6
Крошка Ру
18.09.14
✎
21:32
|
(5) +1
|
|||
7
Крошка Ру
18.09.14
✎
21:33
|
А ещё лучше покажи всё условие Если Не Рез.Пустой() Тогда
|
|||
8
Крошка Ру
18.09.14
✎
21:33
|
А то может ты где выборку сбрасываешь...
|
|||
9
LivingStar
18.09.14
✎
21:34
|
в выборке после Выборка.Следующий() по shift+f9 и f2 одна строка
|
|||
10
LivingStar
18.09.14
✎
21:34
|
(8) да не
|
|||
11
Крошка Ру
18.09.14
✎
21:35
|
(9) Да ладна!!! Кто бы мог подумать...
|
|||
12
Крошка Ру
18.09.14
✎
21:36
|
Вставь
Сообщить(Выборка.Количество()); и скажи что вывелось |
|||
13
LivingStar
18.09.14
✎
21:37
|
чет не то короче, буду разбираться, не ожидал такого!
|
|||
14
Крошка Ру
18.09.14
✎
21:37
|
ну или в отладчике посмотри
|
|||
15
Vladal
18.09.14
✎
21:39
|
Может вместо
Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда Выборка = Рез.Выбрать(); писать Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат; // или что ты предпочитаешь в это время суток КонецЕсли; Выборка = Рез.Выбрать(); |
|||
16
Крошка Ру
18.09.14
✎
21:39
|
"Запрос.Выполнить().Выгрузить()" что в отладчике показывает?
|
|||
17
Vladal
18.09.14
✎
21:39
|
(16) Всю интригу ... коту под хвост
|
|||
18
Крошка Ру
18.09.14
✎
21:44
|
(17) Ну, это так... Для развития сюжета. Судя по портфолио ТСа, там ещё поле непаханое интриг нас ждет...
|
|||
19
Vladal
18.09.14
✎
22:08
|
(18) Я тебе хотел сказать, что вместо "сообщить(выборка.количество())" надо бы в ТЗ выгрузить...
Ждём месье с отчетом о результатах. |
|||
20
H A D G E H O G s
19.09.14
✎
00:17
|
мсьё знатный тукан, ждем срыв покровов.
|
|||
21
LivingStar
19.09.14
✎
09:28
|
(15) да не, там все нормально с этим, выборка же происходит если запрос не пустой, а как это разветвлять не имеет значения
(16) я думаю в таблицу значений выгрузит то что есть в запросе, то есть 4 выбранные записи выборка производится из регистра сведений подчиненного регистратору, может в этом дело? выбирается 4 записи, а в переборе по Следующий() начинает крутить не понятно какой цикл |
|||
22
ДенисЧ
19.09.14
✎
09:29
|
разрешаю показать весь код
|
|||
23
Балоун
19.09.14
✎
09:31
|
(22) правильно, сегодня уже можно
|
|||
24
Любопытная
19.09.14
✎
09:33
|
(21) Ты прям регистр открыл и 4 записи в нем увидел?
|
|||
25
1Сергей
19.09.14
✎
09:36
|
Причем тут регистратор?
|
|||
26
Крошка Ру
19.09.14
✎
09:40
|
(21) Я ж спросил, что Запрос.Выполнить().Выгрузить() в отладчике показывает, а не "как ты думаешь, что он там покажет"
|
|||
27
LivingStar
19.09.14
✎
09:43
|
(24) по контрагенту по которому я делаю отбор есть 4 записи, но по Shift + F9 + F2, одна запись того документа в котором в одной из тч их 4 по этому контрагенту, и переберает сейчас 4
(26) сейчас гляну |
|||
28
LivingStar
19.09.14
✎
09:48
|
(26) выгружается в таблицу значений 4 записи
|
|||
29
Крошка Ру
19.09.14
✎
09:50
|
(28) Ок. Тогда код перебора целиком показывай. Сегодня пятница, сегодня можно, ветку не забанят.
|
|||
30
Любопытная
19.09.14
✎
09:51
|
А зачем ТС форму регистратора получает?
|
|||
31
Крошка Ру
19.09.14
✎
09:53
|
(30) Какая любопытная!
Этот вопрос мы на сладкое оставим. |
|||
32
Любопытная
19.09.14
✎
09:56
|
Предположу, что запрос не тот. Или просто не весь)
|
|||
33
LivingStar
19.09.14
✎
10:05
|
(28) перебор в 0 есть
(30) что бы её открыть это из справочника контрагенты по кнопке открывается документ в тч которого он есть, или создается новый с добавлением его в тч документа, в кратце |
|||
34
Крошка Ру
19.09.14
✎
10:09
|
(33) ты код показывай, а то я счас до грамматики докапываться начну
|
|||
35
Любопытная
19.09.14
✎
10:12
|
Я в сказки не верю. Не может быть, чтобы в результате 4 строки, а цикл 800 раз ходил.
|
|||
36
Балоун
19.09.14
✎
10:17
|
(35) а я верю в автора. талантище!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |