Добрый день, уважаемые Знатоки!
Я хочу получить количество элементов (строк) в выборке, до начала перебора ее элементов методом Следующий.
Пишет, что метод Количество не существует.
Подскажите, пожалуйста, в чем моя ошибка. Работаю в версии 1С 8.1
Я хочу получить количество элементов (строк) в выборке, до начала перебора ее элементов методом Следующий.
Выборка = Справочники.Номенклатура.Выбрать();
Если Выборка.Количество() >0 тогда
КонецЕсли;
Если Выборка.Количество() >0 тогда
КонецЕсли;
Пишет, что метод Количество не существует.
Подскажите, пожалуйста, в чем моя ошибка. Работаю в версии 1С 8.1
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Фишка выборки в том, что она динамическая. Т.е. она не сразу болтается вся в памяти, а подгружается порционно по команде Следующий().
Плюсы - работает шустрее, не забивает память
Минусы - нельзя посчитать количество, нельзя посмотреть всю выборку в отладчике и т.п.
ко второму посту добавлю, что еще вариант в запросе так и указать "ВЫБРАТЬ КОЛИЧЕСТВО(Ссылка) ИЗ Справочник.Номенклатура" - такой запрос отработает быстрее
Фишка выборки в том, что она динамическая. Т.е. она не сразу болтается вся в памяти, а подгружается порционно по команде Следующий().
Плюсы - работает шустрее, не забивает память
Минусы - нельзя посчитать количество, нельзя посмотреть всю выборку в отладчике и т.п.
ко второму посту добавлю, что еще вариант в запросе так и указать "ВЫБРАТЬ КОЛИЧЕСТВО(Ссылка) ИЗ Справочник.Номенклатура" - такой запрос отработает быстрее
ну у такой выборки и не будет этого метода
делай запросом
делай запросом
Запрос = Новый Запрос("ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура");
Результат = Запрос.Выполнить().Выбрать();
Количество = Результат.Количество();
(2)
Так не правильно. Не нужно выбирать ссылки. Нужно сразу количество Выбирать:
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| КОЛИЧЕСТВО(*) КАК Кол
|ИЗ
| Справочник.Номенклатура КАК Номенклатура"
РезультатЗапроса = Запрос.Выполнить().Выбрать();
РезультатЗапроса.Следующий();
Количество = РезультатЗапроса.Кол;
Так не правильно. Не нужно выбирать ссылки. Нужно сразу количество Выбирать:
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| КОЛИЧЕСТВО(*) КАК Кол
|ИЗ
| Справочник.Номенклатура КАК Номенклатура"
РезультатЗапроса = Запрос.Выполнить().Выбрать();
РезультатЗапроса.Следующий();
Количество = РезультатЗапроса.Кол;
(0) если не ошибаюсь, там 25 элемента в выборке.
(3) у 1С вообще странно:
в Выборке из запроса - есть метод "Количество()", и НайтиСледующий(), а, например, в выборке у РС "РегистрСведенийВыборка" (получаемого из менеджера регистра и командой "РегистрСведений.ИмяРегистра.Выбрать()") нет ни того, ни другого.
Т.е. в случае регистра 1С не пользуется своим же механизмом запросов.
(3) у 1С вообще странно:
в Выборке из запроса - есть метод "Количество()", и НайтиСледующий(), а, например, в выборке у РС "РегистрСведенийВыборка" (получаемого из менеджера регистра и командой "РегистрСведений.ИмяРегистра.Выбрать()") нет ни того, ни другого.
Т.е. в случае регистра 1С не пользуется своим же механизмом запросов.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот