СписокПолнотекстовогоПоиска.ПолучитьОтображение

Методы · GetRepresentation

Получает результат поиска: объект ЧтениеXML или строку с текстом в формате HTML, в котором средствами HTML найденные слова подсвечены (полужирный шрифт и цвет фона). При этом слова, соответствующие разным словам поискового выражения, подсвечиваются разными цветами из набора в 16 предопределенных цветов.

Синтаксис

ПолучитьОтображение(<ВидОтображения>)
Полное описание, параметры и ограничения

СписокПолнотекстовогоПоиска.ПолучитьОтображение (FullTextSearchList.GetRepresentation)

СписокПолнотекстовогоПоиска (FullTextSearchList)

ПолучитьОтображение (GetRepresentation)

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

Синтаксис:
ПолучитьОтображение(<ВидОтображения>)
Параметры:

<ВидОтображения> (обязательный)
Тип: ВидОтображенияПолнотекстовогоПоиска.
Вид отображения результата полнотекстового поиска.
Возвращаемое значение:
Тип: Строка, ЧтениеXML.

Описание:

Получает результат поиска: объект ЧтениеXML или строку с текстом в формате HTML, в котором средствами HTML найденные слова подсвечены (полужирный шрифт и цвет фона).
При этом слова, соответствующие разным словам поискового выражения, подсвечиваются разными цветами из набора в 16 предопределенных цветов.

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

Сервер, толстый клиент, внешнее соединение.

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

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

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

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

Получить HTML и XML выдачи, не исполняя её как код

ПолучитьОтображение возвращает либо строку HTML, либо объект ЧтениеXML в зависимости от значения перечисления. XML-чтение закрывается.

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

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

Подготовка

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

  2. Вручную создайте ровно три товара: Учебномаяк Книга, Учебномаяк Ручка, Учебномаяк Коробка. Код урока не создаёт и не записывает эти товары. Маркер Учебномаяк нужен, чтобы не искать реальные сведения.

  3. Создайте серверный общий модуль УчебныйПолнотекстовыйПоиск с флагом Сервер, вставьте весь модуль выбранного урока. Из серверного обработчика своей учебной обработки вызовите УчебныйПолнотекстовыйПоиск.ВыполнитьПример().

  4. Сначала вручную разрешите поиск и обновите индекс своей учебной базы либо используйте отдельный урок обновления. Для опытов поиска индекс должен быть актуален, пользователь должен иметь чтение всех трёх собственных товаров.

  5. Для административных уроков нужен единственный пользователь УчебныйПользовательСинтаксиса, право Администрирование, монопольный сеанс без разделителей данных. В этих уроках используется только Версия1; Версия2 требует отдельной подготовки поискового сервера.

  6. Первый запуск административного урока делайте с пустым подтверждением. Не используйте рабочую базу или копию с реальными данными. Обслуживание меняет индекс/настройки и может занимать время, но не должно подменяться удалением товаров.

Процедура ВыполнитьПример() Экспорт
    Если НЕ ПолнотекстовыйПоиск.ИндексАктуален() Тогда
        ВызватьИсключение "Сначала обновите индекс своей отдельной учебной базы";
    КонецЕсли;
    Список = ПолнотекстовыйПоиск.СоздатьСписок("учебномаяк", 2);
    Область = Новый Массив;
    Область.Добавить(Метаданные.Справочники.УчебныеТовары);
    Список.ОбластьПоиска = Область;
    Список.ИспользованиеМетаданных = ИспользованиеМетаданныхПолнотекстовогоПоиска.НеИспользовать;
    Список.ОграничиватьСтрокуПоиска = Истина;
    Список.ПолучатьПредставление = Истина;
    Список.ПолучатьОписание = Истина;
    Список.ПорогНечеткости = 0;
    Список.ПерваяЧасть();
    HTML = Список.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.HTMLТекст);
    Сообщить(ТипЗнч(HTML) = Тип("Строка"));
    Сообщить("Символов HTML: " + Строка(СтрДлина(HTML)));
    Чтение = Список.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.XML);
    Если ТипЗнч(Чтение) <> Тип("ЧтениеXML") Тогда
        ВызватьИсключение "Ожидался документированный объект XML-чтения";
    КонецЕсли;
    КоличествоУзлов = 0;
    Попытка
        Пока Чтение.Прочитать() Цикл
            КоличествоУзлов = КоличествоУзлов + 1;
        КонецЦикла;
    Исключение
        ОшибкаЧтения = ОписаниеОшибки();
        Попытка
            Чтение.Закрыть();
        Исключение
            ВызватьИсключение ОшибкаЧтения + Символы.ПС + "Закрытие XML: " + ОписаниеОшибки();
        КонецПопытки;
        ВызватьИсключение ОшибкаЧтения;
    КонецПопытки;
    Чтение.Закрыть();
    Сообщить(КоличествоУзлов > 0);
    Сообщить("Чтение XML завершено и закрыто; HTML не исполнялся");
КонецПроцедуры

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

  1. Настроить и выполнить первую порцию собственного поиска.

  2. Запросить HTMLТекст: это строка разметки с подсветкой найденных слов. Проверить тип и вывести только её длину.

  3. Запросить XML: это уже открытый ЧтениеXML. Обойти реальные узлы без предположений об именах элементов.

  4. Закрыть XML и при успехе, и при ошибке. Если закрытие тоже не удалось, сохранить описание обеих ошибок.

  5. Не вставлять HTML в неизвестный веб-контекст и не выдавать количество XML-узлов за количество товаров.

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

  1. Проверка типа HTML и наличия XML-узлов Истина. Длины и число узлов выводятся фактически.

  2. Количество узлов не обязано равняться 2 или 3, потому что XML содержит служебную структуру и свойства.

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

Показаны два разных формата представления и корректное владение XML-ресурсом.

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

  1. XML-объект — не строка для УстановитьСтроку: он уже получен от платформы.

  2. HTML-подсветка является оформлением выдачи, не сохранением найденных объектов.

  3. Урок не сохраняет файлы, не открывает внешние адреса и не выполняет скрипты.

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

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

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

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

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