Имя: Пароль:
1C
 
Вопрос по НайтиСледующий()
0 Momus
 
09.06.21
13:06
Два запроса:
Выбрать Ссылка
и
Выбрать Ссылка, Номенклатура, Количество

ВыборкаПоДокуметам = РезультатЗапроса[0].Выбрать();
ВыборкаПоТЧ = РезультатЗапроса[1].Выбрать();

Пока ВыборкаПоДокументам.Следующий() Цикл
    ...
    Пока ВыборкаПоТЧ.НайтиСледующий(Новый Структура("Ссылка", ВыборкаПоДокумента.Ссылка)) Цикл
        ...
    КонецЦикла;
КонецЦикла;

Нужно ли сбрасывать ВыборкаПоТЧ по окончанию шага цикла по ВыборкаПоДокументам? Результат второго запроса может быть неупорядоченным.
1 lubitelxml
 
09.06.21
13:08
Почему не сделать 1 запрос?
2 lubitelxml
 
09.06.21
13:09
Я обычно не использую НайтиСледующий, а использую НайтиСтроки()
3 Momus
 
09.06.21
13:12
(1) хочу знать, как работает НайтиСледующий(). По логике надо сбрасывать, но не проверял
4 Momus
 
09.06.21
13:23
Не проверял, но посмотрел в типовой. Нужно сбрасывать
5 Dzenn
 
гуру
09.06.21
13:29
(0) да, однозначно нужно сбрасывать, даже если кажется, что всё упорядоченно
6 Михаил Козлов
 
09.06.21
13:36
Почему бы не использовать итоги и выбирать по группировкам?
7 Serg_1960
 
09.06.21
13:40
(3) Логика проста: методы Следующий() и НайтиСледующий() - последовательный поиск от текущей записи и далее, если найдут запись - позицируются на ней. Следовательно, если изменяется структура поиска - поиск надо проводить заново (т.е - сбрасывать текущую позицию). Пример из типовой конфигурации:

Пока ВыборкаПоНДСПродукция.Следующий() Цикл
   СтруктураПоискаВыпуск = ПолучитьСтруктуруПоискаСтрокВыпускаПродукции(СтруктураШапкиДокумента, ВыборкаПоНДСПродукция);
      ВыборкаПоВыпуску.Сбросить();
         Пока ВыборкаПоВыпуску.НайтиСледующий(СтруктураПоискаВыпуск) Цикл
8 AlexTim03
 
09.06.21
13:43
Надо сбрасывать.
Либо обе выборки одинаково упорядочивать (по ссылке документа)
9 Momus
 
09.06.21
13:49
(7) проверил себя на случай, если что-то не так понял :)
(6) мой пример немного упрощенный, нужен поиск по нескольким полям (номенклатура, характеристика, склад). Использование итогов по-моему для этой задачи не подойдет.
10 mistеr
 
09.06.21
13:58
(0) Запрос-то покажи!

Все такие телепаты, как вы это делаете?
11 lodger
 
09.06.21
14:01
(10) вполне конкретный вопрос, зачем тебе запрос?
(3) работает согласно логике, проверял.
12 mistеr
 
09.06.21
14:14
(11) Не понятно, как связаны две выборки.
2 + 2 = 3.9999999999999999999999999999999...