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