РезультатГлобальногоПоиска

Типы · GlobalSearchResult

Представляет собой коллекцию результатов глобального поиска.

Полное описание, параметры и ограничения

РезультатГлобальногоПоиска (GlobalSearchResult)

РезультатГлобальногоПоиска (GlobalSearchResult)

Доступен, начиная с версии 8.3.15.

Элементы коллекции:
ЭлементРезультатаГлобальногоПоиска
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы.
Возможно обращение к элементам посредством оператора [...]. В качестве аргумента передается индекс элемента (нумерация с 0).

Методы:
Вставить (Insert)
Добавить (Add)
Индекс (IndexOf)
Количество (Count)
Найти (Find)
Очистить (Clear)
Получить (Get)
Удалить (Delete)

Конструкторы:
По умолчанию

Описание:

Представляет собой коллекцию результатов глобального поиска.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент).

См. также:
ЭлементПланаГлобальногоПоиска, свойство ИмяПроцедуры

Использование в версии:

Доступен, начиная с версии 8.3.15.

Методическая информация

Практические примеры

Написать работающий учебный обработчик поиска по двум карточкам

Полная экспортная процедура фильтрует Книгу и Ручку по строке поиска. Отдельная процедура проверяет результат без настройки интерфейса.

Где и как запускать

Полный код клиентского неглобального общего модуля УчебныйГлобальныйПоиск. Не вставляйте его внутрь обработчика формы и не ставьте Сервер вместо клиентского флага.

Подготовка

  1. Используйте отдельную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса и учебного пользователя. Не устанавливайте этот поиск в рабочую УТ/КА2/УНФ: пример намеренно оставляет в плане только собственный обработчик.

  2. Создайте общий модуль УчебныйГлобальныйПоиск: Глобальный=Ложь, Клиент (управляемое приложение)=Истина, Сервер=Ложь. Вставьте в него полный код урока собственного обработчика. Он работает только с константами и не обращается к базе.

  3. Создайте собственную управляемую обработку с командами НастроитьУчебныйПоиск, НачатьУчебныйПоиск, ВосстановитьПоиск. Вставьте полный модуль формы из последнего урока и назначьте эти обработчики команд.

  4. Запускайте в поддерживаемом клиенте 8.5.1.1343. Сначала настройте поиск, затем начните, дождитесь результата и восстановите исходные настройки до закрытия формы. Не выполняйте восстановление сразу после НачатьПоиск: он только начинает операцию.

Процедура НайтиУчебныеКниги(СтрокаПоиска, РезультатыПоиска, ДополнительныеПараметры) Экспорт
    Искомое = НРег(СокрЛП(СтрокаПоиска));
    Если ПустаяСтрока(Искомое) Тогда
        Возврат;
    КонецЕсли;
    Префикс = "guide-";
    Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
        ПереданныйПрефикс = Неопределено;
        Если ДополнительныеПараметры.Свойство("Префикс", ПереданныйПрефикс) Тогда
            Если ТипЗнч(ПереданныйПрефикс) <> Тип("Строка") Тогда
                ВызватьИсключение "Префикс должен быть строкой";
            КонецЕсли;
            Префикс = ПереданныйПрефикс;
        КонецЕсли;
    КонецЕсли;
    Если СтрНайти(НРег("Книга"), Искомое) > 0 Тогда
        РезультатыПоиска.Добавить(Префикс + "book", "Книга", Новый Картинка, "УчебныеКниги", "Учебный экземпляр: количество 3");
    КонецЕсли;
    Если СтрНайти(НРег("Ручка"), Искомое) > 0 Тогда
        РезультатыПоиска.Добавить(Префикс + "pen", "Ручка", Новый Картинка, "УчебныеКниги", "Учебный экземпляр: количество 1");
    КонецЕсли;
КонецПроцедуры

Процедура ПроверитьУчебныйПоиск() Экспорт
    Результаты = Новый РезультатГлобальногоПоиска;
    НайтиУчебныеКниги(" КНИ ", Результаты, Новый Структура("Префикс", "guide-"));
    Сообщить(Результаты.Количество() = 1);
    Книга = Результаты.Найти("guide-book");
    Если Книга = Неопределено Тогда
        ВызватьИсключение "Тест учебной книги не прошёл";
    КонецЕсли;
    Сообщить(Книга.Представление = "Книга");
    ПустойПоиск = Новый РезультатГлобальногоПоиска;
    НайтиУчебныеКниги("   ", ПустойПоиск, Неопределено);
    Сообщить(ПустойПоиск.Количество() = 0);
    Ручки = Новый РезультатГлобальногоПоиска;
    НайтиУчебныеКниги("руч", Ручки, Неопределено);
    Сообщить(Ручки.Найти("guide-pen") <> Неопределено);
КонецПроцедуры

Разбор по шагам

  1. Сигнатура экспортной процедуры точно соответствует обработчику элемента плана: СтрокаПоиска, РезультатыПоиска, ДополнительныеПараметры. Выходная коллекция дополняется, не заменяется новой.

  2. СокрЛП убирает края, НРег делает регистронезависимую проверку. Ищем подстроку в двух собственных названиях, не используем SQL, полнотекстовый индекс или бизнес-остатки.

  3. Пустая строка возвращает ноль собственных результатов. Параметр Префикс необязателен, но при наличии обязан быть строкой; проверка Свойство предшествует использованию.

  4. ПроверитьУчебныйПоиск создаёт отдельную коллекцию для каждого запроса. Вызовите её из клиентского обработчика собственной формы: УчебныйГлобальныйПоиск.ПроверитьУчебныйПоиск().

  5. Это минимальный собственный поиск с реальными платформенными карточками, а не поиск настоящего товара в одной из предоставленных конфигураций.

Как проверить результат

  1. Четыре проверки дают Истина: КНИ находит Книгу, пробелы ничего не находят, руч находит Ручку.

  2. Замените Префикс на Число: процедура выдаёт объясняющую ошибку типа, не формирует некорректный ключ.

Ожидаемый результат

Подготовлен полный обработчик с проверками и детерминированными собственными результатами.

На что обратить внимание

  1. Не заменяйте существующий план рабочего поиска одним учебным обработчиком.

  2. Этот учебный фильтр не заменяет полнотекстовый поиск с правами, ранжированием и поиском по реальным данным.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Собрать карточку результата поиска для учебной книги

Разделяем внутренний идентификатор, представление, описание, вид поиска и картинку. Карточка создаётся вручную, а не выдаётся за результат запроса базы.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу. В серверном общем модуле УчебныеЗадачи создайте процедуру ВыполнитьПример() Экспорт и вставьте в неё код одного урока. Вызовите её из серверного обработчика собственной учебной обработки.

  2. Каждый урок создаёт новую коллекцию в памяти. Код не загружает и не сохраняет избранное пользователя, не заменяет план ГлобальныйПоиск, не запускает поиск, не открывает ссылку и не читает рабочие документы.

  3. Для трёх уроков избранного создайте в собственной учебной конфигурации два пустых справочника УчебныеКниги и УчебныеАвторы. Учебные ссылки относятся к спискам этих объектов; записи справочников для упражнения не нужны. Право СохранениеДанныхПользователя требуется для использования избранного по справке платформы.

Карточка = Новый ЭлементРезультатаГлобальногоПоиска("guide-book", "Книга", Новый Картинка, "УчебныеКниги", "Учебный экземпляр, количество 3");
Сообщить(Карточка.Значение = "guide-book");
Сообщить(Карточка.Представление = "Книга");
Сообщить(Карточка.Описание = "Учебный экземпляр, количество 3");
Сообщить(Карточка.ВидПоиска = "УчебныеКниги");
Сообщить(ТипЗнч(Карточка.Картинка) = Тип("Картинка"));
Сообщить(Карточка.Действия.Количество() = 0);
Результаты = Новый РезультатГлобальногоПоиска;
Результаты.Добавить(Карточка);
Сообщить(Результаты.Количество() = 1);

Разбор по шагам

  1. Значение guide-book — собственный ключ. Представление Книга служит для показа, но не становится уникальным идентификатором.

  2. ВидПоиска допускает строку для собственного поиска. Она не является автоматически зарегистрированным стандартным видом.

  3. Пустая Картинка — настоящий платформенный объект без графического ресурса. Проверяем его тип, не обещая видимый значок.

  4. Действия — доступная только для чтения ссылка на коллекцию: свойство не переназначаем. Сама коллекция позволяет добавлять действия в отдельном уроке.

Как проверить результат

  1. Все семь логических проверок дают Истина; создан один результат без действий.

  2. Не открываются карточки настоящих товаров и не запускается ГлобальныйПоиск: массив результатов заполнен собственными константами.

Ожидаемый результат

Подготовлена полноценная типизированная карточка результата с разделёнными полями.

На что обратить внимание

  1. Конструирование карточки не доказывает поиск в базе и не проверяет права на настоящий товар.

  2. Не храните ключи доступа в Значение, Описание или пользовательском представлении результата.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.