МенеджерГлобальногоПоиска.ПолучитьПлан

Методы · GetPlan

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

Синтаксис

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

МенеджерГлобальногоПоиска.ПолучитьПлан (GlobalSearchManager.GetPlan)

МенеджерГлобальногоПоиска (GlobalSearchManager)

ПолучитьПлан (GetPlan)

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

Синтаксис:
ПолучитьПлан()
Возвращаемое значение:
Тип: ПланГлобальногоПоиска.

Описание:

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

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

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

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

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

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

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

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

Три отдельные команды сохраняют исходные параметры, запускают собственный поиск и восстанавливают их после наблюдения результата. Настройка проверяет имя собственной базы.

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

Полный модуль собственной управляемой формы: клиентские переменные, три клиентские команды и одна серверная функция. Общий клиентский модуль из первого урока создаётся отдельно.

Подготовка

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

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

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

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

&НаКлиенте
Перем ИсходныйПлан;
&НаКлиенте
Перем ИсходноеОписание;
&НаКлиенте
Перем ИсходнаяПодсказка;
&НаКлиенте
Перем НастройкиСохранены;
&НаКлиенте
Перем УчебныйПоискНастроен;


&НаКлиенте
Процедура НастроитьУчебныйПоиск(Команда)
    Если НастройкиСохранены = Истина Тогда
        ВызватьИсключение "Сначала восстановите уже сохранённые исходные настройки";
    КонецЕсли;
    ИсходныйПлан = ГлобальныйПоиск.ПолучитьПлан();
    ИсходноеОписание = ГлобальныйПоиск.ПолучитьОписание();
    ИсходнаяПодсказка = ГлобальныйПоиск.ПолучитьПодсказкуВвода();
    НастройкиСохранены = Истина;
    УчебныйПоискНастроен = Ложь;
    УчебныйПлан = Новый ПланГлобальногоПоиска;
    УчебныйПлан.Добавить("НайтиУчебныеКниги", "УчебныйГлобальныйПоиск", Ложь, Ложь, 10, Новый Структура("Префикс", "guide-"));
    Попытка
        ГлобальныйПоиск.УстановитьПлан(УчебныйПлан);
        ГлобальныйПоиск.УстановитьОписание("Учебный поиск только по Книге и Ручке");
        ГлобальныйПоиск.УстановитьПодсказкуВвода("Введите кни или руч");
    Исключение
        ВызватьИсключение "Настройка не завершена. Выполните ВосстановитьПоиск до закрытия формы: " + ОписаниеОшибки();
    КонецПопытки;
    УчебныйПоискНастроен = Истина;
    Сообщить("Теперь запустите НачатьУчебныйПоиск, дождитесь результата и выполните ВосстановитьПоиск");
КонецПроцедуры

&НаКлиенте
Процедура НачатьУчебныйПоиск(Команда)
    Если УчебныйПоискНастроен <> Истина Тогда
        ВызватьИсключение "Сначала успешно завершите НастроитьУчебныйПоиск";
    КонецЕсли;
    ГлобальныйПоиск.НачатьПоиск("кни");
    Сообщить("Поиск инициирован. Это не подтверждение его завершения; проверьте результат в окне");
КонецПроцедуры

&НаКлиенте
Процедура ВосстановитьПоиск(Команда)
    Если НастройкиСохранены <> Истина Тогда
        Сообщить("В этой форме исходные настройки не сохранялись");
        Возврат;
    КонецЕсли;
    Попытка
        ГлобальныйПоиск.УстановитьПлан(ИсходныйПлан);
        ГлобальныйПоиск.УстановитьОписание(ИсходноеОписание);
        ГлобальныйПоиск.УстановитьПодсказкуВвода(ИсходнаяПодсказка);
    Исключение
        ВызватьИсключение "Восстановление не завершено; снимок сохранён в открытой форме. Не закрывайте её: " + ОписаниеОшибки();
    КонецПопытки;
    Сообщить(ГлобальныйПоиск.ПолучитьПодсказкуВвода() = ИсходнаяПодсказка);
    Сообщить("Исходные параметры переданы менеджеру; проверьте восстановленный поиск и описание в окне");
    НастройкиСохранены = Ложь;
    УчебныйПоискНастроен = Ложь;
КонецПроцедуры

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

  1. Исходные план, описание и подсказка сохраняются один раз в переменных этой формы. Повторная настройка до восстановления запрещена, чтобы не потерять оригинал.

  2. Новый план содержит только собственный клиентский обработчик: НаСервере=Ложь и Фоновый=Ложь. Общий модуль и экспортная процедура должны быть созданы заранее по первому уроку.

  3. УстановитьПлан, УстановитьОписание и УстановитьПодсказкуВвода меняют менеджер приложения. При частичном сбое исходный снимок остаётся для отдельной команды восстановления.

  4. НачатьПоиск только начинает операцию. Поэтому не восстанавливаем план в следующей строке; вручную дождитесь карточки Книга и только затем нажмите ВосстановитьПоиск.

  5. Восстановление передаёт именно исходный план, не Неопределено. Неопределено восстановило бы стандартный план по умолчанию, а не возможные исходные пользовательские обработчики.

  6. Для веб-клиента недоступное поле глобального поиска может привести к отсутствию запуска. Сообщение после вызова не доказывает поиск или отображение результата.

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

  1. В собственной учебной базе запрос кни должен показать Книгу с количеством 3 из константы обработчика; никакой реальный товар не ищется.

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

  3. При отсутствии модуля/ошибке настройки не закрывайте форму до восстановления. При потере процесса снимок переменных формы потеряется — это ограничение упражнения, не гарантия автоматического отката.

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

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

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

  1. Проверка имени — предохранитель от случайного запуска, не доказательство отсутствия рабочих данных. Используйте действительно пустую собственную базу.

  2. Не закрывайте форму до восстановления: снимок не сохраняется на диск или в базу.

  3. В данном упражнении карточка только показывается. Обработчик выбора результата/его действий не реализует бизнес-операции и не должен выдаваться за готовую товарную интеграцию.

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

Прочитать настройки глобального поиска перед экспериментом

Отдельная клиентская команда показывает описание, подсказку и количество маршрутов. Текущий план не редактируется.

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

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

Подготовка

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

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

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

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

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    Описание = ГлобальныйПоиск.ПолучитьОписание();
    Подсказка = ГлобальныйПоиск.ПолучитьПодсказкуВвода();
    План = ГлобальныйПоиск.ПолучитьПлан();
    Сообщить("Описание: " + Строка(Описание));
    Сообщить("Подсказка: " + Подсказка);
    Сообщить("Маршрутов в плане: " + Строка(План.Количество()));
    Для Каждого Маршрут Из План Цикл
        Если Маршрут.ВидПоиска <> Неопределено Тогда
            Сообщить("Стандартный вид: " + Строка(Маршрут.ВидПоиска));
        Иначе
            Сообщить("Обработчик: " + Маршрут.Модуль + "." + Маршрут.ИмяПроцедуры);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

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

  1. ГлобальныйПоиск — глобальный менеджер, а не тип для Новый. Получаем три независимых настройки через его методы.

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

  3. У стандартного маршрута есть ВидПоиска. У собственного обработчика он Неопределено, зато заданы Модуль и ИмяПроцедуры.

  4. Количество пунктов плана — число видов/обработчиков, не число результатов и не число найденных документов. Не меняем полученный план.

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

  1. Показаны текущие описание и подсказка; каждая строка маршрута соответствует стандартному виду или обработчику учебного приложения.

  2. Поиск не запускается и подсказка не заменяется: в коде только получение настроек.

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

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

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

  1. Не вызывайте эти методы в серверном общем модуле: менеджер поиска там недоступен.

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

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

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

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

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

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