Администрирование · 12 мин
Как настроить поиск по началу названия в 1С 8.3
Как включить и настроить поиск по началу строки в 1С 8.3: настройки полнотекстового поиска, строки поиска в списках, типовые и самописные конфигурации, ошибки.
Поиск по началу названия — один из самых частых запросов пользователей 1С: нужно, чтобы при вводе первых букв наименования система сразу показывала подходящие элементы справочника, а не искала вхождение в любом месте строки. В платформе 1С:Предприятие 8.3 это поведение зависит от нескольких механизмов: настройки полнотекстового поиска, режима поиска в динамических списках, свойств поля ввода и способа ввода по строке.
Проблема обычно проявляется так: пользователь вводит «Ромашка», а в результатах получает «ООО Торговый дом Ромашка», «Магазин Ромашка-2» и десятки других элементов, где слово встречается в середине. Для больших справочников номенклатуры или контрагентов это серьёзно замедляет работу.
Ниже разобраны все рабочие способы добиться поиска «с начала строки»: от простых настроек, доступных рядовому пользователю, до изменений в конфигураторе, которые делает разработчик или администратор.
Как работает поиск в 1С 8.3 и почему он ищет «везде»
Платформа 1С использует несколько разных механизмов поиска, и они не заменяют друг друга. Полнотекстовый поиск работает по заранее построенному индексу и умеет искать по части слова. Поиск по строке в динамическом списке выполняется запросом к базе с оператором «ПОДОБНО» — по умолчанию ищется вхождение подстроки в любое место наименования. Способ ввода по строке в поле ввода — третий механизм, работающий при выборе значения в форме.
Именно из-за этого «зоопарка» возникает путаница: администратор включает полнотекстовый поиск, а пользователи продолжают жаловаться, потому что работают через строку поиска в списке, которая живёт по своим правилам. Прежде чем что-то настраивать, определите, каким именно способом ищут ваши пользователи: через кнопку «Найти» в списке, через строку поиска над списком, через поле ввода в документе или через глобальный поиск в панели навигации.
Для каждого сценария есть своё решение, и дальше они разобраны по отдельности.
Настройка полнотекстового поиска по началу слова
Полнотекстовый поиск — основной инструмент быстрого поиска по большим справочникам в типовых конфигурациях. Чтобы он работал в режиме «с начала слова», сначала убедитесь, что механизм вообще включён: в режиме 1С:Предприятие откройте раздел администрирования, найдите пункт «Полнотекстовый поиск» (в типовых конфигурациях обычно «Администрирование → Общие настройки» или «Настройки поиска») и проверьте, что флаг использования установлен и индекс актуален.
Обновление индекса выполняется регламентным заданием или вручную кнопкой «Обновить индекс». Если индекс устарел, новые элементы справочника просто не будут находиться — это частая причина жалоб «поиск не работает», которую ошибочно принимают за неправильный режим поиска.
В полнотекстовом поиске поиск по началу слова достигается синтаксисом запроса: добавление символа «» после части слова (например, ром) означает «слова, начинающиеся с ром». В ряде конфигураций режим поиска по началу слова включён по умолчанию или выбирается в настройках формы поиска. Обратите внимание: полнотекстовый поиск работает по словам, а не по началу всей строки целиком — «Торговый дом Ромашка» найдётся по «ром*», потому что слово «Ромашка» начинается с этих букв.
Поиск по началу строки в динамическом списке справочника
Строка поиска над списком справочника или документов управляется свойствами динамического списка. В типовых конфигурациях поведение этой строки может определяться настройками формы списка: у поля поиска есть режимы «По части строки», «По началу строки», «По точному совпадению». Пользователь в ряде конфигураций может переключить режим сам — через кнопку настройки строки поиска или меню «Ещё» в форме списка.
Если типовая настройка недоступна пользователю, режим задаёт разработчик в конфигураторе. Откройте форму списка, выберите элемент «СтрокаПоиска» (или соответствующий реквизит формы) и установите нужный режим поиска. Для динамического списка это свойство настройки списка: в расширенных настройках компоновки данных либо в свойствах реквизита формы типа «СтрокаПоиска» укажите способ поиска «По началу строки».
Альтернатива без изменения конфигурации — пользовательский поиск через кнопку «Найти» (Ctrl+F) в списке: там можно выбрать поле «Наименование» и вид сравнения «Начинается с». Это даёт точный поиск по началу названия, но требует от пользователя нескольких лишних действий.
- 1Откройте конфигуратор и найдите нужную форму списка справочника
- 2Выделите элемент строки поиска и в палитре свойств установите способ поиска «По началу строки»
- 3Если строка поиска формируется программно — добавьте настройку в коде формы
- 4Обновите конфигурацию базы данных и проверьте поиск на тестовых данных
Настройка способа поиска в поле ввода
Когда пользователь выбирает значение в документе — например, контрагента в счёте — работает механизм ввода по строке. Его поведение задаётся свойством поля ввода «Способ поиска строки» в конфигураторе. Доступны варианты: «По части строки» (ищет вхождение в любом месте) и «По началу строки» (ищет только с начала наименования).
Чтобы изменить поведение, откройте в конфигураторе форму документа, выделите поле ввода и в палитре свойств установите «Способ поиска строки» = «По началу строки». Если поле создаётся динамически или форма типовая и снимать её с поддержки нежелательно, используйте расширение конфигурации — это безопасный способ изменить поведение без правки типового кода.
Дополнительно проверьте свойство «Быстрый выбор» и настройку «Ввод по строке» у самого объекта метаданных: в свойствах справочника можно указать, по каким полям выполняется ввод по строке (обычно это наименование и код). Если добавлены лишние поля, поиск может находить элементы по ним, и пользователю будет казаться, что поиск работает «не по началу названия».
// Программная установка способа поиска для поля ввода
Элементы.Контрагент.СпособПоискаСтроки = СпособПоискаСтрокиПриВводеПоСтроке.ПоНачалу;Что делать в типовых конфигурациях без конфигуратора
Не у каждой организации есть доступ к конфигуратору или желание менять конфигурацию. В типовых решениях (Бухгалтерия предприятия, Управление торговлей, УНФ) часть поведения доступна пользователю с правами администратора прямо в режиме предприятия.
Проверьте следующие места: раздел «Администрирование → Общие настройки» — там может быть переключатель режима поиска; настройки строки поиска в самой форме списка (меню «Ещё → Изменить форму» или шестерёнка настройки); персональные настройки пользователя. В некоторых конфигурациях режим поиска в строке поиска переключается нажатием на пиктограмму «лупы» рядом с полем ввода.
Если штатных настроек нет, рабочий обходной путь — обучить пользователей синтаксису: в полнотекстовом поиске использовать «слово*», а в списке — сочетание Ctrl+F с видом сравнения «Начинается с». Это не так удобно, как автоматический режим, но не требует доработок и работает на любой типовой конфигурации.
Как выбрать способ настройки
Проверка результата и типичные ошибки
После настройки проверьте поведение на контрольных примерах. Заведите или найдите элементы вида «Ромашка», «Торговый дом Ромашка», «Ромашка-НН» и введите «Ром». При поиске по началу строки в списке должны находиться «Ромашка» и «Ромашка-НН», но не «Торговый дом Ромашка». При полнотекстовом поиске по началу слова найдутся все три — это нормально, механизмы разные.
Также проверьте работу под пользователем с ограниченными правами: настройки, сделанные администратором в форме, могут не распространяться на других пользователей, если форма хранит пользовательские настройки индивидуально.
Как проверить результат
Находятся только элементы, начинающиеся с «Ром»
Находятся элементы со словом в середине наименования
Находится сразу (список) или после обновления индекса (полнотекстовый поиск)
Элемент не находится — индекс устарел
Выпадающий список начинается с элементов на введённые буквы
Предлагаются элементы с вхождением в середине
Ограничения и влияние на производительность
Поиск по началу строки в динамическом списке обычно быстрее поиска по подстроке, потому что СУБД может использовать индекс по полю наименования. Однако на очень больших справочниках (сотни тысяч и миллионы элементов) даже такой поиск может «подтормаживать», особенно в файловом режиме работы. В этом случае полнотекстовый поиск — предпочтительный вариант, так как он опирается на отдельный оптимизированный индекс.
Учтите ограничение: стандартный поиск по началу строки не учитывает регистр и раскладку клавиатуры по-разному в разных механизмах. Если пользователи часто вводят название не в той раскладке, ни один из штатных режимов это не исправит — потребуется доработка обработчика поиска.
Ещё одно ограничение — полнотекстовый поиск недоступен или ограничен в некоторых режимах совместимости и требует, чтобы у полей объекта метаданных было включено свойство «Полнотекстовый поиск — Использовать». Проверьте это для наименования справочника, если поиск не находит данные.
На практике самый эффективный подход — комбинировать: включить полнотекстовый поиск как основной инструмент для больших справочников, а для полей ввода в документах выставить «По началу строки» через расширение. Так закрываются оба основных сценария работы пользователей без потери поддержки типовой конфигурации.
Что важно запомнить
В 1С 8.3 существует три независимых механизма поиска, и настраивать нужно тот, которым реально пользуются сотрудники. Полнотекстовый поиск ищет по началу слов (синтаксис «слово*»), строка списка и поле ввода настраиваются на поиск по началу строки через конфигуратор или расширение. После настройки обязательно проверьте результат на контрольных примерах и не снимайте типовую конфигурацию с поддержки.
Частые вопросы
Почему после включения полнотекстового поиска новые элементы не находятся?
Индекс полнотекстового поиска обновляется не мгновенно, а по расписанию регламентного задания или вручную. Откройте настройки полнотекстового поиска и нажмите «Обновить индекс», затем проверьте, что регламентное задание обновления индекса активно и выполняется без ошибок.
Можно ли настроить поиск по началу названия без доступа к конфигуратору?
Частично да. Используйте в списке сочетание Ctrl+F с видом сравнения «Начинается с», а в полнотекстовом поиске — синтаксис «слово*». В некоторых типовых конфигурациях режим строки поиска переключается в настройках формы списка. Полноценная настройка для всех пользователей всё же требует конфигуратора или расширения.
Чем отличается поиск по началу строки от поиска по началу слова?
Поиск по началу строки требует, чтобы всё наименование начиналось с введённых символов: «Ром» найдёт «Ромашка», но не «Дом Ромашка». Поиск по началу слова (полнотекстовый) находит элемент, если любое слово в нём начинается с этих букв — «Дом Ромашка» тоже подойдёт. Выбирайте режим в зависимости от того, насколько строгий результат нужен пользователям.
Пропадёт ли настройка при обновлении типовой конфигурации?
Если изменения внесены напрямую в типовую форму — да, при обновлении они могут быть замещены типовым вариантом, а сама конфигурация окажется снятой с поддержки. Если настройка выполнена через расширение конфигурации, она сохранится, но расширение стоит проверить на совместимость после каждого крупного обновления.
Почему поиск по началу строки иногда работает медленно?
На больших справочниках в файловом режиме работы или при отсутствии подходящего индекса поиск по наименованию может выполняться медленно. В таких случаях переносите поиск на полнотекстовый механизм, а для клиент-серверного режима проверьте индексы на стороне СУБД совместно с администратором баз данных.
Можно ли искать по началу названия сразу по нескольким полям, например по наименованию и артикулу?
Да. Для ввода по строке список полей задаётся в свойствах объекта метаданных (настройка «Ввод по строке»), а полнотекстовый поиск по умолчанию охватывает все поля с включённым свойством «Полнотекстовый поиск». Учтите, что чем больше полей участвует в поиске, тем шире результаты и тем больше шанс, что пользователь увидит «лишние» элементы.