Как включить строку глобального поиска в заголовке окна 1С:Предприятие 8.3.15?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При переходе на платформу 1С:Предприятие 8.3.15 и последующие релизы многие пользователи и разработчики сталкиваются с неприятной особенностью: в заголовке главного окна некоторых конфигураций (например, «1С:Бухгалтерия предприятия 3.0») отсутствует удобная строка Глобального поиска. Вместо неё отображается лишь привычная иконка в виде лупы, которая открывает старое окно полнотекстового поиска. При этом в других конфигурациях (например, «Управление торговлей 11» или «Зарплата и управление персоналом 3») на той же самой версии платформы строка глобального поиска отображается и отлично работает.

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

Выясняем причину: почему пропадает строка поиска

Начиная с версии платформы 8.3.15.1489, фирма «1С» внедрила совершенно новый, интеллектуальный механизм — Глобальный поиск. Этот инструмент позволяет быстро находить данные по самым разным источникам: элементам интерфейса, функциям меню, истории работы, избранному, встроенной справке, обсуждениям Системы взаимодействия и, конечно же, по данным самой базы данных.

С внедрением этого механизма старое свойство конфигурации Основная форма поиска было признано устаревшим. Поведение платформы при отрисовке интерфейса подчиняется следующей строгой логике:

  1. Если свойство конфигурации «Основная форма поиска» оставлено пустым, платформа автоматически активирует и выводит современную строку глобального поиска в заголовке окна.
  2. Если это свойство заполнено (то есть в нем указана конкретная общая форма для поиска, как это исторически сделано во многих версиях БП 3.0), платформа считает, что разработчики конфигурации хотят использовать собственную специализированную форму поиска вместо стандартной. В этом случае современная строка в заголовке скрывается, а пользователю предлагается лишь кнопка-лупа для вызова назначенной формы.

Поскольку «1С:Бухгалтерия предприятия 3.0» долгое время развивалась с использованием режима совместимости с предыдущими версиями платформы (например, 8.3.14), свойство Основная форма поиска оставалось заполненным разработчиками «1С». Это и привело к тому, что при запуске на платформе 8.3.15 пользователи БП 3.0 остались без нового удобного инструмента.

Решаем задачу с помощью расширения конфигурации

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

Рассмотрим по шагам процесс настройки:

  1. Запустите базу данных в режиме Конфигуратор.
  2. Откройте меню Конфигурация — Расширения конфигурации.
  3. В открывшемся окне нажмите кнопку Добавить для создания нового расширения.
  4. В свойствах нового расширения укажите произвольное имя (например, ВключениеГлобальногоПоиска) и выберите назначение Адаптация. Снимите флажки Безопасный режим и Защита от опасных действий, если это необходимо для работы вашего расширения.
  5. В дереве метаданных основной конфигурации нажмите правой кнопкой мыши на самый верхний корневой элемент (имя конфигурации) и выберите пункт Добавить в расширение.
  6. Перейдите в дерево метаданных созданного расширения, найдите заимствованный корневой элемент конфигурации, нажмите по нему правой кнопкой мыши и откройте Свойства.
  7. В палитре свойств найдите поле Основная форма поиска и полностью очистите его (нажмите кнопку очистки X).
  8. Сохраните изменения в расширении (клавиша F7) и запустите базу в режиме 1С:Предприятие.

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

Дополнительные возможности глобального поиска для разработчиков

Строка глобального поиска — это не просто статичное поле ввода, а мощный программный инструмент, поведение которого разработчик может гибко настраивать. Для этого используются специализированные обработчики событий в Модуле управляемого приложения.

Проанализируем основные события, которые мы можем перехватить:

Рассмотрим пример реализации собственного поиска контрагентов по ИНН прямо через строку глобального поиска. Если пользователь вводит 10 или 12 цифр, система должна моментально найти контрагента и предложить открыть его карточку.

В модуле управляемого приложения напишем следующий код:


Процедура ПриГлобальномПоиске(СтрокаПоиска, РезультатыПоиска)
    
    // Проверим, состоит ли строка только из цифр и похожа ли она на ИНН
    Если СтрДлина(СокрЛП(СтрокаПоиска)) = 10 Или СтрДлина(СокрЛП(СтрокаПоиска)) = 12 Тогда
        
        // Выполним поиск контрагента по ИНН
        Запрос = Новый Запрос;
        Запрос.Текст = 
            "ВЫБРАТЬ
            |	Контрагенты.Ссылка КАК Ссылка,
            |	Контрагенты.Представление КАК Представление
            |ИЗ
            |	Справочник.Контрагенты КАК Контрагенты
            |ГДЕ
            |	Контрагенты.ИНН = &ИНН";
        
        Запрос.УстановитьПараметр("ИНН", СокрЛП(СтрокаПоиска));
        Выборка = Запрос.Выполнить().Выбрать();
        
        Пока Выборка.Следующий() Цикл
            // Формируем элемент результата поиска
            НовыйРезультат = РезультатыПоиска.Добавить();
            НовыйРезультат.Значение = Выборка.Ссылка;
            НовыйРезультат.Представление = "Контрагент: " + Выборка.Представление;
            НовыйРезультат.Описание = "Найден по ИНН " + СтрокаПоиска;
            НовыйРезультат.КлючГруппы = "Контрагенты";
        КонецЦикла;
        
    КонецЕсли;

КонецПроцедуры

Теперь опишем логику поведения системы при выборе нашего кастомного результата поиска:


Процедура ПриВыбореРезультатаГлобальногоПоиска(ЭлементРезультата, СтандартнаяОбработка)
    
    // Проверяем тип выбранного значения
    Если ТипЗнч(ЭлементРезультата.Значение) = Тип("СправочникСсылка.Контрагенты") Тогда
        // Отменяем стандартное поведение платформы
        СтандартнаяОбработка = Ложь; 
        // Открываем форму найденного контрагента
        ПараметрыФормы = Новый Структура("Ключ", ЭлементРезультата.Значение);
        ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта", ПараметрыФормы);
    КонецЕсли;

КонецПроцедуры

Полезные встроенные фичи глобального поиска

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

Таким образом, своевременное включение глобального поиска и очистка устаревшего свойства Основная форма поиска позволяет значительно повысить удобство и скорость работы пользователей в любой конфигурации на платформе 1С:Предприятие 8.3.15 и выше.

← На главную