Получает следующую порцию результатов поиска.
Синтаксис
СледующаяЧасть(<ТекущаяНачальнаяПозиция>)Полное описание, параметры и ограничения
СписокПолнотекстовогоПоиска.СледующаяЧасть (FullTextSearchList.NextPart)
СписокПолнотекстовогоПоиска (FullTextSearchList)
СледующаяЧасть (NextPart)
Доступен, начиная с версии 8.1.
Синтаксис:
СледующаяЧасть(<ТекущаяНачальнаяПозиция>)
Параметры:
<ТекущаяНачальнаяПозиция> (необязательный)
Тип: Число.
Если указан, то производится установка текущей позиции в указанное в параметре значение, а затем выполняется метод.
Описание:
Получает следующую порцию результатов поиска.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Если строка поиска содержит ошибки, или если по каким-либо причинам, поиск не может вернуть результаты поиска, генерируется исключение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Перейти к следующей порции и вернуться к первой
Курсор хранит позицию начала порции. Методы принимают при необходимости текущую начальную позицию, не номер следующего элемента.
Где и как запускать
Полный серверный общий модуль УчебныйПолнотекстовыйПоиск своей отдельной учебной базы.
Подготовка
Используйте только отдельную собственную конфигурацию УчебнаяКонфигурацияСинтаксиса с собственным справочником УчебныеТовары. Включите использование полнотекстового поиска у справочника и Наименование в своей учебной конфигурации.
Вручную создайте ровно три товара: Учебномаяк Книга, Учебномаяк Ручка, Учебномаяк Коробка. Код урока не создаёт и не записывает эти товары. Маркер Учебномаяк нужен, чтобы не искать реальные сведения.
Создайте серверный общий модуль УчебныйПолнотекстовыйПоиск с флагом Сервер, вставьте весь модуль выбранного урока. Из серверного обработчика своей учебной обработки вызовите УчебныйПолнотекстовыйПоиск.ВыполнитьПример().
Сначала вручную разрешите поиск и обновите индекс своей учебной базы либо используйте отдельный урок обновления. Для опытов поиска индекс должен быть актуален, пользователь должен иметь чтение всех трёх собственных товаров.
Для административных уроков нужен единственный пользователь УчебныйПользовательСинтаксиса, право Администрирование, монопольный сеанс без разделителей данных. В этих уроках используется только Версия1; Версия2 требует отдельной подготовки поискового сервера.
Первый запуск административного урока делайте с пустым подтверждением. Не используйте рабочую базу или копию с реальными данными. Обслуживание меняет индекс/настройки и может занимать время, но не должно подменяться удалением товаров.
Процедура ВыполнитьПример() Экспорт
Если НЕ ПолнотекстовыйПоиск.ИндексАктуален() Тогда
ВызватьИсключение "Сначала обновите индекс своей отдельной учебной базы";
КонецЕсли;
Список = ПолнотекстовыйПоиск.СоздатьСписок("учебномаяк", 2);
Область = Новый Массив;
Область.Добавить(Метаданные.Справочники.УчебныеТовары);
Список.ОбластьПоиска = Область;
Список.ИспользованиеМетаданных = ИспользованиеМетаданныхПолнотекстовогоПоиска.НеИспользовать;
Список.ОграничиватьСтрокуПоиска = Истина;
Список.ПолучатьПредставление = Истина;
Список.ПолучатьОписание = Истина;
Список.ПорогНечеткости = 0;
Список.ПерваяЧасть();
ПерваяПозиция = Список.НачальнаяПозиция();
ПервоеКоличество = Список.Количество();
ОбщееКоличество = Список.ПолноеКоличество();
Сообщить(ПерваяПозиция = 0);
Сообщить(ПервоеКоличество = 2);
Сообщить(ОбщееКоличество = 3);
Если Список.СлишкомМногоРезультатов() Тогда
ВызватьИсключение "На учебных трёх товарах результат не должен усекаться";
КонецЕсли;
Если ПерваяПозиция + ПервоеКоличество < ОбщееКоличество Тогда
Список.СледующаяЧасть(ПерваяПозиция);
ВтораяПозиция = Список.НачальнаяПозиция();
Сообщить(ВтораяПозиция > ПерваяПозиция);
Сообщить(Список.Количество() = 1);
Сообщить(Список.ПолноеКоличество() = 3);
Список.ПредыдущаяЧасть(ВтораяПозиция);
Сообщить(Список.НачальнаяПозиция() = ПерваяПозиция);
Сообщить(Список.Количество() = ПервоеКоличество);
КонецЕсли;
Сообщить("Переходы изменяли порцию, не товары");
КонецПроцедурыРазбор по шагам
Получить первую порцию. Сохранить начальную позицию и размер до следующего вызова.
Не переходить вперёд, если позиции и размера уже достаточно для всего результата. Проверить признак усечения.
СледующаяЧасть получает текущую первую позицию. Метод сам переводит курсор и заменяет текущую порцию.
ПредыдущаяЧасть получает текущую вторую позицию. Проверить восстановление позиции и размера первой порции.
На крупной базе перед переходами учитывайте изменение индекса и прав; эта выдача не является неизменяемым снимком документов.
Как проверить результат
В собственной подготовленной базе проверки Истина: 2 результата, затем 1, затем снова 2.
Вторая начальная позиция выводится через проверки, не принимается за идентификатор товара.
Ожидаемый результат
Показан полный безопасный цикл курсора на двух небольших порциях.
На что обратить внимание
После перехода старый индекс 1 может стать недопустимым: в последней порции только одна строка.
РазмерПорции не ограничивает общее количество найденного. Количество и ПолноеКоличество не взаимозаменяемы.
Не запускайте бесконечную прокрутку до появления подходящего результата.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.