К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

В чем отличие Выбрать() и Выгрузить()

med
0 - 26.06.2013 - 10:13
Пытаюсь найти разницу между двумя методами обработки результата запроса
между
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
КонецЦикла

и

Итог = Запрос.Выполнить().Выгрузить();
Для каждого Выборка из Итог Цикл
КонецЦикла

в чем принципиальная разница между этими двумя способами ?
Для варианта, когда группировок нет.
Собственно история вопроса - столкнулся с тем, что первый вариант, почему то не всегда выдает информацию
Один и тот же запрос в отладчике .Количество() выдает цифру, скажем - 2
Но Выборка.Следующий() выдает ложь,
а Для каждого Выборка из Итог Цикл отрабатывает нормально
В чем прикол ?



Гость
1 - 27.06.2013 - 11:24
Выбрать - это перебор результата запроса
выгрузить - выгружается результат запроса в таблицу значений
Гость
2 - 27.06.2013 - 11:27
+(1)
можно выгрузить и в дерево значений если выгружаешь с иерархией
Гость
3 - 27.06.2013 - 11:29
+(2) вернее сказать с группировками
med
4 - 28.06.2013 - 13:18
Цитата:
Сообщение от vodoley_ol Посмотреть сообщение
Выбрать - это перебор результата запроса выгрузить - выгружается результат запроса в таблицу значений
Сами действия то , - как раз понятны, меня интересуют их отличия
Чем перебор так сказать в лоб через выбрать отличается от перебора после выгрузки в ТЗ ?
Почему при выгрузке в ТЗ и перебор - строки есть
а при обработке в лоб через Выбрать() - строк нет, т.е. цикл
Пока Выборка.Следующий() Цикл
КонецЦикла
вообще не отрабатывается
Выборка.Следующий() = Ложь сразу же.
Почему ?
Uho
5 - 28.06.2013 - 13:51
Цитата:
Сообщение от med Посмотреть сообщение
Почему при выгрузке в ТЗ и перебор - строки есть а при обработке в лоб через Выбрать() - строк нет, т.е. цикл Пока Выборка.Следующий() Цикл КонецЦикла вообще не отрабатывается
ты хочешь сказать, что при выгрузке в ТЗ есть детальные записи? а при переборе выборки их нет?
не верю!
Гость
6 - 28.06.2013 - 13:52
смотря какая выборка, может там несколько выборок с итогами
med
7 - 01.07.2013 - 07:27
Цитата:
Сообщение от Uho Посмотреть сообщение
ты хочешь сказать, что при выгрузке в ТЗ есть детальные записи? а при переборе выборки их нет? не верю!
Сам в шоке :-)
Скажем
Выборка.Количество() выдает - 2 есть две строки
у самого запроса нет ни группировок ни итогов
единственное это полное объединение (объединить всё) двух запросов , конкретно - двух типов приходных документов из которых берутся одни и те же поля.
Но вот такая катавасия...
med
8 - 01.07.2013 - 07:28
Т.е. похоже это глюк 1С, т.е. по правилам оба эти варианта должны обрабатываться одинаково ?
Uho
9 - 02.07.2013 - 09:34
Цитата:
Сообщение от med Посмотреть сообщение
Выборка.Количество() выдает - 2 есть две строки
Цитата:
Сообщение от med Посмотреть сообщение
Но Выборка.Следующий() выдает ложь

фигня, ошибка в коде, ну или версия платформы какая-нибудь экзотическая
med
10 - 02.07.2013 - 11:51
Цитата:
Сообщение от Uho Посмотреть сообщение
фигня, ошибка в коде, ну или версия платформы какая-нибудь экзотическая
Код я весь привел
платформа - может быть ...
Uho
11 - 02.07.2013 - 11:59
это далеко не весь код
med
12 - 02.07.2013 - 12:07
Цитата:
Сообщение от Uho Посмотреть сообщение
это далеко не весь код
Пожалуйста:
Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ
| Данные.Ссылка,
| Данные.Дата,
| Данные.Склад,
| Данные.Организация
|ИЗ
| (ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК Дата,
| РеализацияТоваровУслуг.Склад КАК Склад,
| РеализацияТоваровУслуг.Организация КАК Организация
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Проведен
| И РеализацияТоваровУслуг.Дата >= &ДатаНачала
| И РеализацияТоваровУслуг.Дата <= &ДатаОкончания
| И РеализацияТоваровУслуг.Организация В(&Организации)
| И ВЫБОР
| КОГДА &ЕстьОтбор
| ТОГДА РеализацияТоваровУслуг.Контрагент <> &Контрагент
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ВЫБОР
| КОГДА &ЕстьОтбор2
| ТОГДА РеализацияТоваровУслуг.Контрагент <> &Контрагент2
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ВЫБОР
| КОГДА &ЕстьСклад
| ТОГДА РеализацияТоваровУслуг.Склад = &Склад
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТребованиеНакладная.Ссылка,
| НАЧАЛОПЕРИОДА(ТребованиеНакладная.Дата, ДЕНЬ),
| ТребованиеНакладная.Склад,
| ТребованиеНакладная.Организация
| ИЗ
| Документ.ТребованиеНакладная КАК ТребованиеНакладная
| ГДЕ
| ТребованиеНакладная.Проведен
| И ТребованиеНакладная.Дата >= &ДатаНачала
| И ТребованиеНакладная.Дата <= &ДатаОкончания
| И ТребованиеНакладная.Организация В(&Организации)
| И ВЫБОР
| КОГДА &ЕстьСклад
| ТОГДА ТребованиеНакладная.Склад = &Склад
| ИНАЧЕ ИСТИНА
| КОНЕЦ) КАК Данные
|
|УПОРЯДОЧИТЬ ПО
| Данные.Дата,
| Данные.Организация,
| Данные.Склад
|АВТОУПОРЯДОЧИВАНИЕ";

Запрос.УстановитьПараметр("ЕстьОтбор",НЕ ПокупательИсключение.Пустая());
Запрос.УстановитьПараметр("ЕстьОтбор2",НЕ ПокупательИсключение2.Пустая());
Запрос.УстановитьПараметр("Контрагент",ПокупательИ сключение);
Запрос.УстановитьПараметр("Контрагент2",Покупатель Исключение2);
Запрос.УстановитьПараметр("ДатаНачала",НачалоДня(Д атаНачала));
Запрос.УстановитьПараметр("ДатаОкончания",КонецДня (ДатаОкончания));
Запрос.УстановитьПараметр("Организации",Организаци и.ВыгрузитьКолонку("Организация"));
Запрос.УстановитьПараметр("ЕстьСклад",НЕ Склад.Пустая());
Запрос.УстановитьПараметр("Склад",Склад);


// Выборка = Запрос.Выполнить().Выбрать();
Итог = Запрос.Выполнить().Выгрузить();

// Всего = Выборка.Количество();
Всего = Итог.Количество();
Сч = 0;

ОшибочныхДокументов = 0;

ТабКПроведению.Очистить();
МассивВПроведению = Новый Массив;
МассивРеализаций = Новый Массив;
СтарДата = Неопределено;
СтарСклад = Неопределено;
СтарОрганизация = Неопределено;

ТипРТУ = Тип("ДокументСсылка.РеализацияТоваровУслуг");

// Пока Выборка.Следующий() Цикл
Для каждого Выборка из Итог Цикл

Никакой группировки никаких итогов...
Uho
13 - 02.07.2013 - 12:18
если закрыть глаза на сам ужасный запрос, то в принципе должно работать

ЗЫ. реквизита Выборка случаем нигде нет, или может быть, если смотришь через отладчик, в табло что-нибудь гадкое написано...
med
14 - 02.07.2013 - 12:32
Запрос не мой :-), но общий смысл понятен
было так, как закомментировано.
реквизита Выборка нет
в отладчике отображается обычная таблица


К списку вопросов






Copyright ©, Все права защищены