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