К статье
Практический материал

Администрирование · 11 мин

Заполнение индекса поиска в 1С: что это и как работает

Что такое индекс полнотекстового поиска в 1С, зачем его заполнять и обновлять, какие существуют режимы и как исправить типичные ошибки поиска.

Полнотекстовый поиск в 1С — это механизм платформы, который позволяет искать информацию по содержимому базы: по текстам документов, наименованиям товаров, комментариям, номерам телефонов и другим строковым данным. Чтобы поиск работал быстро, платформа заранее строит специальную структуру — индекс полнотекстового поиска. Заполнение индекса поиска — это процесс, при котором 1С проходит по данным информационной базы и записывает в индекс слова и ссылки на объекты, где эти слова встречаются.

Без заполненного индекса поиск либо не работает вовсе, либо находит только старые данные. Пользователь вводит запрос, а система отвечает «ничего не найдено», хотя нужный документ в базе есть. Поэтому администратору или пользователю, отвечающему за эксплуатацию базы, важно понимать, что происходит при заполнении индекса, когда его нужно запускать и как проверить результат.

Заполнение индекса бывает двух видов: полное и частичное (обновление). Полное заполнение очищает существующий индекс и строит его заново по всем данным. Обновление добавляет в индекс только те объекты, которые изменились с момента последнего заполнения. Понимание разницы между этими режимами помогает не тратить часы на лишние операции и не оставлять поиск в неактуальном состоянии.

Что такое индекс полнотекстового поиска и зачем он нужен

Индекс полнотекстового поиска — это служебная структура данных, которую платформа 1С создаёт отдельно от основных таблиц базы. В неё попадают разобранные на отдельные слова тексты из объектов: документов, справочников, задач, присоединённых файлов и других сущностей, у которых в конфигураторе включено свойство «Полнотекстовый поиск». При поиске платформа не перебирает всю базу, а обращается к этому индексу, поэтому результат выдаётся за секунды даже в больших базах.

Если индекс не заполнен, механизм поиска фактически отключён. Пользователь, нажимающий на значок поиска в панели инструментов или использующий строку поиска в форме списка, получит пустой результат или сообщение о необходимости обновить индекс. Это частая причина жалоб «поиск не работает», хотя сама функция исправна — просто ей нечем оперировать.

Важно понимать, что индекс не обновляется сам по себе в момент записи документа. Новый контрагент или счёт попадёт в результаты поиска только после очередного заполнения или обновления индекса. Отсюда возникает типичная ситуация: документ создан час назад, а поиск его «не видит» — это нормальное поведение, если обновление выполняется по расписанию раз в сутки.

Как включить и заполнить индекс поиска

Заполнение индекса выполняется из пользовательского режима 1С:Предприятие. В типовых конфигурациях нужный пункт обычно находится в разделе администрирования: «Администрирование» → «Обслуживание» → «Полнотекстовый поиск» (точное название раздела зависит от конфигурации). В открывшейся форме доступны кнопки «Обновить индекс» и «Заполнить индекс полностью», а также настройка автоматического обновления.

Порядок действий
  1. 1
    Откройте раздел «Администрирование» → «Обслуживание» → «Полнотекстовый поиск» (название может отличаться в вашей конфигурации).
  2. 2
    Если поиск используется впервые или индекс повреждён — нажмите «Заполнить индекс полностью» и дождитесь завершения.
  3. 3
    Для регулярной работы нажмите «Обновить индекс» — будут проиндексированы только изменённые данные.
  4. 4
    Включите автоматическое обновление индекса и задайте расписание, например каждую ночь или несколько раз в день.
  5. 5
    Проверьте результат: выполните поиск по слову из недавно созданного документа.

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

В файловых базах при заполнении индекса может потребоваться монопольный доступ или работа будет идти медленнее при активных пользователях. В клиент-серверном варианте заполнение обычно выполняется фоновым заданием на сервере и меньше мешает пользователям, но всё равно создаёт нагрузку на СУБД.

Режимы заполнения: полное и обновление

Выбор режима зависит от ситуации. Полное заполнение нужно при первом включении поиска, после восстановления базы из копии, после массовой загрузки данных (например, переноса из другой программы) и при подозрении на повреждение индекса. Обновление — штатный режим для повседневной работы.

Сравнение вариантов

Полное заполнение индекса

Очищает индекс и строит его заново по всем данным. Нужно при первом включении, после переноса данных или сбоя. Долго и ресурсоёмко.

Обновление индекса

Индексирует только объекты, изменённые с прошлого заполнения. Быстро, подходит для регулярного запуска по расписанию.

Автоматическое обновление по расписанию

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

Если после обновления поиск всё равно не находит очевидно существующие данные, это признак того, что индекс рассинхронизирован с базой. В таком случае правильное действие — полное заполнение, а не повторные обновления: они будут бессмысленно накатываться на повреждённую структуру.

Автоматическое обновление по расписанию

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

В клиент-серверных базах расписание надёжнее: задания исполняет сервер 1С независимо от пользовательских сеансов. Если автоматическое обновление перестало срабатывать, проверьте журнал регистрации на предмет ошибок фоновых заданий и убедитесь, что выполнение регламентных заданий не заблокировано на уровне базы.

Почему поиск не находит данные: диагностика

Большинство проблем с поиском сводится к нескольким типовым причинам. Прежде чем перестраивать индекс, полезно определить, какая именно ситуация у вас.

Поиск не находит ничего вообщеИндекс не заполнен или отключён

Откройте настройку полнотекстового поиска и проверьте состояние индекса

Не находит только новые документыИндекс давно не обновлялся

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

Не находит конкретный вид объектовУ объекта выключен полнотекстовый поиск в конфигураторе

Проверьте свойство «Полнотекстовый поиск» у объекта метаданных

После обновления поиск не изменилсяВозможно повреждение индекса

Выполните полное заполнение индекса

Отдельная причина — настройки конфигурации. Если у объекта метаданных (справочника, документа) свойство «Полнотекстовый поиск» установлено в «Не использовать», его данные в индекс не попадут ни при каком заполнении. Это осознанное решение разработчиков конфигурации, и менять его стоит только понимая последствия для объёма индекса и скорости его построения.

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

Типичные ошибки и ограничения

Типичные ошибки
01
Запускать полное заполнение вместо обновления при каждой жалобе на поиск — часы простоя там, где хватило бы пятиминутного обновления.
02
Включить автоматическое обновление в файловой базе и забыть, что ночью сеансов нет — индекс фактически не обновляется неделями.
03
Ожидать, что новый документ найдётся сразу после записи — индекс не обновляется в реальном времени, нужен запуск обновления.
04
Игнорировать ошибки фоновых заданий в журнале регистрации — задание обновления может падать из-за блокировок или нехватки места на диске.
05
Пытаться «чинить» поиск переустановкой платформы — проблема почти всегда в состоянии индекса или настройках, а не в платформе.

Ещё одно ограничение — объём данных. Полнотекстовый индекс занимает дополнительное место на диске, и в очень больших базах с объёмными присоединёнными файлами его построение требует заметных ресурсов. Следите за свободным местом на диске с базой: нехватка места во время заполнения приводит к ошибкам и неполному индексу.

Удобный ориентир для проверки: запомните уникальное слово из созданного сегодня документа (например, необычный комментарий) и после очередного обновления индекса поищите его. Если документ нашёлся — механизм работает исправно, если нет — проверяйте задание и состояние индекса.
ПЗ
Практическое замечание

Как проверить, что индекс работает правильно

Контрольные точки

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

Поиск старого документа по точному слову
Норма

Документ находится за секунды

Тревожный признак

Ничего не найдено — индекс не заполнен

Поиск документа, созданного после последнего обновления
Норма

Находится после ручного обновления индекса

Тревожный признак

Не находится даже после обновления — нужно полное заполнение

Журнал регистрации по заданию обновления
Норма

Задание завершается без ошибок

Тревожный признак

Ошибки блокировок, нехватки места или отмены задания

Скорость поиска
Норма

Результат за секунды

Тревожный признак

Поиск «зависает» — возможна повреждённость или чрезмерный объём индекса

Если все проверки пройдены, но отдельные пользователи жалуются на пустой поиск, уточните права: пользователь видит в результатах поиска только те объекты, на которые у него есть права. Это нормальное поведение механизма, а не сбой индекса.

Итог

Что важно запомнить

Заполнение индекса поиска — это построение служебной структуры, без которой полнотекстовый поиск в 1С не работает. Полное заполнение нужно при первом включении и сбоях, обновление — для ежедневной работы, лучше по расписанию. Если поиск не находит данные, сначала обновите индекс, затем проверьте задание, права и настройки объектов.

Частые вопросы о заполнении индекса поиска в 1С

Как часто нужно обновлять индекс поиска?

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

Мешает ли заполнение индекса работе пользователей?

Обновление индекса обычно проходит незаметно, особенно в клиент-серверном варианте. Полное заполнение создаёт ощутимую нагрузку и в больших базах может замедлить работу, поэтому его планируют на нерабочее время.

Почему новый документ не находится поиском сразу после записи?

Индекс не обновляется в реальном времени: объект попадает в результаты поиска только после очередного обновления индекса. Если нужна актуальность «здесь и сейчас», запустите обновление вручную из формы настройки полнотекстового поиска.

Что делать, если обновление индекса завершается с ошибкой?

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

Нужно ли заполнять индекс после восстановления базы из копии?

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

Можно ли искать по содержимому присоединённых файлов?

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