Возвращает текущий план выполнения глобального поиска. В качестве начального значения используется план, заполненный всеми видами стандартного поиска.
Синтаксис
ПолучитьПлан()Полное описание, параметры и ограничения
МенеджерГлобальногоПоиска.ПолучитьПлан (GlobalSearchManager.GetPlan)
МенеджерГлобальногоПоиска (GlobalSearchManager)
ПолучитьПлан (GetPlan)
Доступен, начиная с версии 8.3.15.
Синтаксис:
ПолучитьПлан()
Возвращаемое значение:
Тип: ПланГлобальногоПоиска.
Описание:
Возвращает текущий план выполнения глобального поиска.
В качестве начального значения используется план, заполненный всеми видами стандартного поиска.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, внешнее соединение, мобильное приложение (клиент).
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Показать учебный поиск в окне и вернуть исходный план
Три отдельные команды сохраняют исходные параметры, запускают собственный поиск и восстанавливают их после наблюдения результата. Настройка проверяет имя собственной базы.
Где и как запускать
Полный модуль собственной управляемой формы: клиентские переменные, три клиентские команды и одна серверная функция. Общий клиентский модуль из первого урока создаётся отдельно.
Подготовка
Используйте отдельную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса и учебного пользователя. Не устанавливайте этот поиск в рабочую УТ/КА2/УНФ: пример намеренно оставляет в плане только собственный обработчик.
Создайте общий модуль УчебныйГлобальныйПоиск: Глобальный=Ложь, Клиент (управляемое приложение)=Истина, Сервер=Ложь. Вставьте в него полный код урока собственного обработчика. Он работает только с константами и не обращается к базе.
Создайте собственную управляемую обработку с командами НастроитьУчебныйПоиск, НачатьУчебныйПоиск, ВосстановитьПоиск. Вставьте полный модуль формы из последнего урока и назначьте эти обработчики команд.
Запускайте в поддерживаемом клиенте 8.5.1.1343. Сначала настройте поиск, затем начните, дождитесь результата и восстановите исходные настройки до закрытия формы. Не выполняйте восстановление сразу после НачатьПоиск: он только начинает операцию.
&НаКлиенте
Перем ИсходныйПлан;
&НаКлиенте
Перем ИсходноеОписание;
&НаКлиенте
Перем ИсходнаяПодсказка;
&НаКлиенте
Перем НастройкиСохранены;
&НаКлиенте
Перем УчебныйПоискНастроен;
&НаКлиенте
Процедура НастроитьУчебныйПоиск(Команда)
Если НастройкиСохранены = Истина Тогда
ВызватьИсключение "Сначала восстановите уже сохранённые исходные настройки";
КонецЕсли;
ИсходныйПлан = ГлобальныйПоиск.ПолучитьПлан();
ИсходноеОписание = ГлобальныйПоиск.ПолучитьОписание();
ИсходнаяПодсказка = ГлобальныйПоиск.ПолучитьПодсказкуВвода();
НастройкиСохранены = Истина;
УчебныйПоискНастроен = Ложь;
УчебныйПлан = Новый ПланГлобальногоПоиска;
УчебныйПлан.Добавить("НайтиУчебныеКниги", "УчебныйГлобальныйПоиск", Ложь, Ложь, 10, Новый Структура("Префикс", "guide-"));
Попытка
ГлобальныйПоиск.УстановитьПлан(УчебныйПлан);
ГлобальныйПоиск.УстановитьОписание("Учебный поиск только по Книге и Ручке");
ГлобальныйПоиск.УстановитьПодсказкуВвода("Введите кни или руч");
Исключение
ВызватьИсключение "Настройка не завершена. Выполните ВосстановитьПоиск до закрытия формы: " + ОписаниеОшибки();
КонецПопытки;
УчебныйПоискНастроен = Истина;
Сообщить("Теперь запустите НачатьУчебныйПоиск, дождитесь результата и выполните ВосстановитьПоиск");
КонецПроцедуры
&НаКлиенте
Процедура НачатьУчебныйПоиск(Команда)
Если УчебныйПоискНастроен <> Истина Тогда
ВызватьИсключение "Сначала успешно завершите НастроитьУчебныйПоиск";
КонецЕсли;
ГлобальныйПоиск.НачатьПоиск("кни");
Сообщить("Поиск инициирован. Это не подтверждение его завершения; проверьте результат в окне");
КонецПроцедуры
&НаКлиенте
Процедура ВосстановитьПоиск(Команда)
Если НастройкиСохранены <> Истина Тогда
Сообщить("В этой форме исходные настройки не сохранялись");
Возврат;
КонецЕсли;
Попытка
ГлобальныйПоиск.УстановитьПлан(ИсходныйПлан);
ГлобальныйПоиск.УстановитьОписание(ИсходноеОписание);
ГлобальныйПоиск.УстановитьПодсказкуВвода(ИсходнаяПодсказка);
Исключение
ВызватьИсключение "Восстановление не завершено; снимок сохранён в открытой форме. Не закрывайте её: " + ОписаниеОшибки();
КонецПопытки;
Сообщить(ГлобальныйПоиск.ПолучитьПодсказкуВвода() = ИсходнаяПодсказка);
Сообщить("Исходные параметры переданы менеджеру; проверьте восстановленный поиск и описание в окне");
НастройкиСохранены = Ложь;
УчебныйПоискНастроен = Ложь;
КонецПроцедурыРазбор по шагам
Исходные план, описание и подсказка сохраняются один раз в переменных этой формы. Повторная настройка до восстановления запрещена, чтобы не потерять оригинал.
Новый план содержит только собственный клиентский обработчик: НаСервере=Ложь и Фоновый=Ложь. Общий модуль и экспортная процедура должны быть созданы заранее по первому уроку.
УстановитьПлан, УстановитьОписание и УстановитьПодсказкуВвода меняют менеджер приложения. При частичном сбое исходный снимок остаётся для отдельной команды восстановления.
НачатьПоиск только начинает операцию. Поэтому не восстанавливаем план в следующей строке; вручную дождитесь карточки Книга и только затем нажмите ВосстановитьПоиск.
Восстановление передаёт именно исходный план, не Неопределено. Неопределено восстановило бы стандартный план по умолчанию, а не возможные исходные пользовательские обработчики.
Для веб-клиента недоступное поле глобального поиска может привести к отсутствию запуска. Сообщение после вызова не доказывает поиск или отображение результата.
Как проверить результат
В собственной учебной базе запрос кни должен показать Книгу с количеством 3 из константы обработчика; никакой реальный товар не ищется.
После команды восстановления подсказка совпадает с исходной. Проверьте план и описание командой чтения, а также вручную в окне.
При отсутствии модуля/ошибке настройки не закрывайте форму до восстановления. При потере процесса снимок переменных формы потеряется — это ограничение упражнения, не гарантия автоматического отката.
Ожидаемый результат
Подготовлен полный учебный цикл интеграции поиска с наблюдением асинхронного запуска и возвратом исходных параметров.
На что обратить внимание
Проверка имени — предохранитель от случайного запуска, не доказательство отсутствия рабочих данных. Используйте действительно пустую собственную базу.
Не закрывайте форму до восстановления: снимок не сохраняется на диск или в базу.
В данном упражнении карточка только показывается. Обработчик выбора результата/его действий не реализует бизнес-операции и не должен выдаваться за готовую товарную интеграцию.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Прочитать настройки глобального поиска перед экспериментом
Отдельная клиентская команда показывает описание, подсказку и количество маршрутов. Текущий план не редактируется.
Где и как запускать
Полный клиентский обработчик команды ВыполнитьПример собственной управляемой формы. Существующие обработчики не перезаписывайте.
Подготовка
Используйте отдельную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса и учебного пользователя. Не устанавливайте этот поиск в рабочую УТ/КА2/УНФ: пример намеренно оставляет в плане только собственный обработчик.
Создайте общий модуль УчебныйГлобальныйПоиск: Глобальный=Ложь, Клиент (управляемое приложение)=Истина, Сервер=Ложь. Вставьте в него полный код урока собственного обработчика. Он работает только с константами и не обращается к базе.
Создайте собственную управляемую обработку с командами НастроитьУчебныйПоиск, НачатьУчебныйПоиск, ВосстановитьПоиск. Вставьте полный модуль формы из последнего урока и назначьте эти обработчики команд.
Запускайте в поддерживаемом клиенте 8.5.1.1343. Сначала настройте поиск, затем начните, дождитесь результата и восстановите исходные настройки до закрытия формы. Не выполняйте восстановление сразу после НачатьПоиск: он только начинает операцию.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Описание = ГлобальныйПоиск.ПолучитьОписание();
Подсказка = ГлобальныйПоиск.ПолучитьПодсказкуВвода();
План = ГлобальныйПоиск.ПолучитьПлан();
Сообщить("Описание: " + Строка(Описание));
Сообщить("Подсказка: " + Подсказка);
Сообщить("Маршрутов в плане: " + Строка(План.Количество()));
Для Каждого Маршрут Из План Цикл
Если Маршрут.ВидПоиска <> Неопределено Тогда
Сообщить("Стандартный вид: " + Строка(Маршрут.ВидПоиска));
Иначе
Сообщить("Обработчик: " + Маршрут.Модуль + "." + Маршрут.ИмяПроцедуры);
КонецЕсли;
КонецЦикла;
КонецПроцедурыРазбор по шагам
ГлобальныйПоиск — глобальный менеджер, а не тип для Новый. Получаем три независимых настройки через его методы.
Описание может быть Строка или ФорматированнаяСтрока: для диагностического показа используем Строка. Пустое описание допустимо.
У стандартного маршрута есть ВидПоиска. У собственного обработчика он Неопределено, зато заданы Модуль и ИмяПроцедуры.
Количество пунктов плана — число видов/обработчиков, не число результатов и не число найденных документов. Не меняем полученный план.
Как проверить результат
Показаны текущие описание и подсказка; каждая строка маршрута соответствует стандартному виду или обработчику учебного приложения.
Поиск не запускается и подсказка не заменяется: в коде только получение настроек.
Ожидаемый результат
Получен снимок текущего плана перед безопасным учебным экспериментом.
На что обратить внимание
Не вызывайте эти методы в серверном общем модуле: менеджер поиска там недоступен.
Имена модулей диагностируйте только в своей учебной базе, не публикуйте внутренние маршруты чужого рабочего приложения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.