В частности, там есть такой момент, который меня удивил:
Следует учитывать, что если в процессе обхода выборки данные изменяются (в данной сессии, или другими сессиями), то могут возникать такие ситуации, как получение данных удаленного объекта, получение в выборке одного объекта два раза, не попадание некоторых записей в выборку и т.д.Т.е. они хотят сказать, что вы высоконагруженных системах моя любимая выборка будет "глючить" и придется тянуть здоровенные таблицы в память?
Конечно, какая эта еще вероятность, того что данные изменятся в момент выборки. Но важен сам принцип.
И все-таки я сомневаюсь. С одной стороны логика подсказывает, что если оно сразу не пишется все в память, значит, читается порциями. А так как еще и зависит от скорости выполнения кода 1С, то может быть хорошо растянуто во времени.
Так же на эту рекомендацию авторитетно ссылается Радченко.
С другой стороны, все сообщения датируются 2008-2009 годом, а сама статья на ИТС и того старше, поди. Может быть что-то поменялось, просто я не знаю где почитать более актуальную статью?
Еще один, самый главный момент для сомнения в том, есть ли разница в работе методов Справочники.Номенклатура.Выбрать() и Запрос.Выполнить().Выбрать().
Да, типы возвращаются разные, но сам механизм и запросы, которые отправляются к БД? Возможно ли, что такая выборка порциями относится только к выборке при обращении к менеджеру объекта, или же с выборкой запроса механизм одинаковый?
Складывается ощущение, что я не правильно понял статью и под динамической выборкой подразумевается именно выборка из менеджера объекта, а не из результата запроса. Действительно, как, например, в сложном "навороченном" запросе выбрать строки с 25 по 50?
Коллеги, кто-то еще интересовался этим?