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