При переходе на платформу 1С:Предприятие 8.3.15 и последующие релизы многие пользователи и разработчики сталкиваются с неприятной особенностью: в заголовке главного окна некоторых конфигураций (например, «1С:Бухгалтерия предприятия 3.0») отсутствует удобная строка Глобального поиска. Вместо неё отображается лишь привычная иконка в виде лупы, которая открывает старое окно полнотекстового поиска. При этом в других конфигурациях (например, «Управление торговлей 11» или «Зарплата и управление персоналом 3») на той же самой версии платформы строка глобального поиска отображается и отлично работает.
В этой статье мы подробно проанализируем техническую причину такого поведения платформы и разберем по шагам, как активировать современную строку глобального поиска без снятия типовой конфигурации с поддержки.
Начиная с версии платформы 8.3.15.1489, фирма «1С» внедрила совершенно новый, интеллектуальный механизм — Глобальный поиск. Этот инструмент позволяет быстро находить данные по самым разным источникам: элементам интерфейса, функциям меню, истории работы, избранному, встроенной справке, обсуждениям Системы взаимодействия и, конечно же, по данным самой базы данных.
С внедрением этого механизма старое свойство конфигурации Основная форма поиска было признано устаревшим. Поведение платформы при отрисовке интерфейса подчиняется следующей строгой логике:
Поскольку «1С:Бухгалтерия предприятия 3.0» долгое время развивалась с использованием режима совместимости с предыдущими версиями платформы (например, 8.3.14), свойство Основная форма поиска оставалось заполненным разработчиками «1С». Это и привело к тому, что при запуске на платформе 8.3.15 пользователи БП 3.0 остались без нового удобного инструмента.
Для конфигураций, находящихся на поддержке, самым безопасным и правильным решением является использование механизма расширений. Это позволит нам вернуть глобальный поиск, не нарушая типовой код и не усложняя процесс последующих обновлений программы.
Рассмотрим по шагам процесс настройки:
ВключениеГлобальногоПоиска) и выберите назначение Адаптация. Снимите флажки Безопасный режим и Защита от опасных действий, если это необходимо для работы вашего расширения.X).F7) и запустите базу в режиме 1С:Предприятие.После выполнения этих простых действий в заголовке главного окна программы над панелью разделов появится полноценное текстовое поле глобального поиска.
Строка глобального поиска — это не просто статичное поле ввода, а мощный программный инструмент, поведение которого разработчик может гибко настраивать. Для этого используются специализированные обработчики событий в Модуле управляемого приложения.
Проанализируем основные события, которые мы можем перехватить:
ПриГлобальномПоиске — вызывается в момент, когда пользователь вводит текст в строку поиска. Позволяет программно добавить в результаты поиска собственные данные.ПриВыбореРезультатаГлобальногоПоиска — срабатывает при клике пользователя на строку в результатах поиска, позволяя переопределить стандартное открытие формы.Рассмотрим пример реализации собственного поиска контрагентов по ИНН прямо через строку глобального поиска. Если пользователь вводит 10 или 12 цифр, система должна моментально найти контрагента и предложить открыть его карточку.
В модуле управляемого приложения напишем следующий код:
Процедура ПриГлобальномПоиске(СтрокаПоиска, РезультатыПоиска)
// Проверим, состоит ли строка только из цифр и похожа ли она на ИНН
Если СтрДлина(СокрЛП(СтрокаПоиска)) = 10 Или СтрДлина(СокрЛП(СтрокаПоиска)) = 12 Тогда
// Выполним поиск контрагента по ИНН
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.Представление КАК Представление
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ИНН = &ИНН";
Запрос.УстановитьПараметр("ИНН", СокрЛП(СтрокаПоиска));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
// Формируем элемент результата поиска
НовыйРезультат = РезультатыПоиска.Добавить();
НовыйРезультат.Значение = Выборка.Ссылка;
НовыйРезультат.Представление = "Контрагент: " + Выборка.Представление;
НовыйРезультат.Описание = "Найден по ИНН " + СтрокаПоиска;
НовыйРезультат.КлючГруппы = "Контрагенты";
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Теперь опишем логику поведения системы при выборе нашего кастомного результата поиска:
Процедура ПриВыбореРезультатаГлобальногоПоиска(ЭлементРезультата, СтандартнаяОбработка)
// Проверяем тип выбранного значения
Если ТипЗнч(ЭлементРезультата.Значение) = Тип("СправочникСсылка.Контрагенты") Тогда
// Отменяем стандартное поведение платформы
СтандартнаяОбработка = Ложь;
// Открываем форму найденного контрагента
ПараметрыФормы = Новый Структура("Ключ", ЭлементРезультата.Значение);
ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта", ПараметрыФормы);
КонецЕсли;
КонецПроцедуры
Помимо поиска данных, новый инструмент обладает несколькими крайне полезными встроенными возможностями, о которых полезно знать как пользователям, так и администраторам системы:
(45000 - 13%) * 1.2) и нажать клавишу Enter (или дождаться анализа), система мгновенно выдаст готовый результат вычисления в списке результатов.e1cib/), и система сразу же откроет нужный документ или справочник.Таким образом, своевременное включение глобального поиска и очистка устаревшего свойства Основная форма поиска позволяет значительно повысить удобство и скорость работы пользователей в любой конфигурации на платформе 1С:Предприятие 8.3.15 и выше.