ПланГлобальногоПоиска.Добавить

Методы · Add

Добавляет элемент в конец коллекции плана глобального поиска.

Синтаксис

Добавить(<Значение>)
Добавить(<ВидПоиска>, <Порядок>)
Добавить(<ИмяПроцедуры>, <Модуль>, <НаСервере>, <Фоновый>, <Порядок>, <ДополнительныеПараметры>)
Полное описание, параметры и ограничения

ПланГлобальногоПоиска.Добавить (GlobalSearchPlan.Add)

ПланГлобальногоПоиска (GlobalSearchPlan)

Добавить (Add)

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

Вариант синтаксиса: По значению

Синтаксис:
Добавить(<Значение>)
Параметры:

<Значение> (обязательный)
Тип: ЭлементПланаГлобальногоПоиска.
Вставляемое значение.
Вариант синтаксиса: По виду поиска

Синтаксис:
Добавить(<ВидПоиска>, <Порядок>)
Параметры:

<ВидПоиска> (обязательный)
Тип: СтандартныйВидГлобальногоПоиска.
Вид поиска.

<Порядок> (необязательный)
Тип: Число.
Порядок выдачи результатов поиска.
Значение по умолчанию: 0.
Вариант синтаксиса: По обработчику

Синтаксис:
Добавить(<ИмяПроцедуры>, <Модуль>, <НаСервере>, <Фоновый>, <Порядок>, <ДополнительныеПараметры>)
Параметры:

<ИмяПроцедуры> (обязательный)
Тип: Строка.
Имя экспортируемой процедуры общего модуля.

<Модуль> (обязательный)
Тип: Строка.
Имя общего модуля.

<НаСервере> (обязательный)
Тип: Булево.
Признак выполнения поиска на сервере.

<Фоновый> (необязательный)
Тип: Булево.
Признак выполнения поиска в фоновом задании.
Значение по умолчанию: Ложь.

<Порядок> (необязательный)
Тип: Число.
Порядок выдачи результатов поиска.
Значение по умолчанию: 0.

<ДополнительныеПараметры> (необязательный)
Тип: Произвольный.
Дополнительные параметры, передаваемые в вызываемую процедуру.
Значение по умолчанию: Неопределено.
Описание:

Добавляет элемент в конец коллекции плана глобального поиска.

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

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

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

Доступен, начиная с версии 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. Каждый урок создаёт новую коллекцию в памяти. Код не загружает и не сохраняет избранное пользователя, не заменяет план ГлобальныйПоиск, не запускает поиск, не открывает ссылку и не читает рабочие документы.

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

План = Новый ПланГлобальногоПоиска;
План.Добавить(СтандартныйВидГлобальногоПоиска.Справка, 10);
План.Добавить("НайтиУчебныеКниги", "УчебныйГлобальныйПоиск", Истина, Ложь, 20);
План.Добавить(СтандартныйВидГлобальногоПоиска.МенюФункций, 30);
План.Удалить(СтандартныйВидГлобальногоПоиска.Справка);
План.Удалить("НайтиУчебныеКниги", "УчебныйГлобальныйПоиск");
Сообщить(План.Количество() = 1);
Сообщить(План.Найти(СтандартныйВидГлобальногоПоиска.Справка) = Неопределено);
Сообщить(План.Найти("НайтиУчебныеКниги", "УчебныйГлобальныйПоиск") = Неопределено);
Если План.Количество() = 1 Тогда
    Сообщить(План.Получить(0).ВидПоиска = СтандартныйВидГлобальногоПоиска.МенюФункций);
    План.Удалить(0);
КонецЕсли;
Сообщить(План.Количество() = 0);
План.Добавить(СтандартныйВидГлобальногоПоиска.Справка);
План.Очистить();
Сообщить(План.Количество() = 0);

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

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

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

  3. После удаления проверяем Найти на Неопределено. Обращение к Получить(0) происходит только при количестве 1.

  4. Последняя очистка удаляет заново добавленный пункт собственного плана. Менеджер ГлобальныйПоиск не вызывается.

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

  1. Шесть контрольных Истина. После первых удалений остаётся только МенюФункций.

  2. Основное окно не меняет состав реального поиска: ни пустой, ни сокращённый план не устанавливался.

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

Разобраны перегрузки удаления и очистка собственного плана.

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

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

  2. Пара имя процедуры/модуль должна совпадать целиком: одинаковые имена процедур в разных модулях — разные маршруты.

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

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

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

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

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