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

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

Как очистить индекс в 1С: пошаговая инструкция

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

Термин «очистить индекс» в контексте 1С обычно означает одну из двух задач: сброс индекса полнотекстового поиска, который платформа строит по данным информационной базы, или перестроение индексов на уровне СУБД в клиент-серверном варианте работы. Первая задача решается штатными средствами конфигуратора и встроенного языка, вторая — инструментами SQL Server, PostgreSQL или другой используемой СУБД.

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

Прежде чем что-либо удалять, важно понять, какой именно индекс вызывает проблему. Очистка полнотекстового индекса — безопасная операция: данные не удаляются, индекс можно построить заново. А вот вмешательство в индексы СУБД или удаление файлов базы вручную может привести к потере данных и требует резервной копии.

Какие индексы существуют в 1С и что именно вы очищаете

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

Отдельно существуют индексы таблиц базы данных. В файловом варианте они хранятся внутри файла 1Cv8.1CD и обслуживаются самой платформой. В клиент-серверном варианте индексы создаются и поддерживаются СУБД — их очисткой, перестроением и дефрагментацией занимается администратор базы данных средствами СУБД, а не конфигуратора 1С.

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

Как понять, что индекс нужно очистить или перестроить

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

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

Поиск не находит новые объектыИндекс устарел

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

Поиск находит удалённые данныеИндекс рассинхронизирован

Выполнить полное перестроение

Ошибки при поискеВозможно повреждение индекса

Очистить индекс и построить заново

Каталог индекса разроссяНакопились устаревшие данные

Очистка и перестроение уменьшат объём

Очистка индекса через конфигуратор

Штатный способ управления полнотекстовым поиском — раздел конфигуратора. Откройте конфигуратор с правами администратора, перейдите в меню «Администрирование» и выберите пункт «Полнотекстовый поиск». В открывшемся окне доступны команды управления индексом: обновление, полное перестроение и очистка.

Для очистки выберите соответствующую команду и подтвердите действие. Платформа удалит текущий индекс целиком. Учтите: пока индекс не построен заново, полнотекстовый поиск в базе работать не будет, а пользователи увидят соответствующее сообщение при попытке поиска.

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

Очистка индекса через конфигуратор
  1. 1
    Сделайте резервную копию базы или убедитесь, что актуальная копия существует
  2. 2
    Откройте конфигуратор под пользователем с правами администратора
  3. 3
    Перейдите: Администрирование → Полнотекстовый поиск
  4. 4
    Выполните команду очистки индекса и дождитесь завершения
  5. 5
    Запустите полное построение индекса в нерабочее время
  6. 6
    Проверьте поиск на нескольких заведомо существующих объектах

Программная очистка индекса через встроенный язык

Для автоматизации обслуживания удобно использовать методы менеджера полнотекстового поиска встроенного языка. Это позволяет выполнять очистку и перестроение по расписанию через регламентное задание или из внешней обработки.

Базовый вызов выглядит так: ПолнотекстовыйПоиск.ОчиститьИндекс();. Для последующего построения индекса используется метод ПолнотекстовыйПоиск.ОбновитьИндекс(Истина); — параметр «Истина» означает полное перестроение. Перед вызовом полезно проверить, разрешён ли полнотекстовый поиск: ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска().

bsl
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
    ПолнотекстовыйПоиск.ОчиститьИндекс();
    ПолнотекстовыйПоиск.ОбновитьИндекс(Истина);
КонецЕсли;

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

Где хранятся файлы индекса и можно ли удалять их вручную

В файловом варианте полнотекстовый индекс хранится в служебном подкаталоге рядом с файлом базы. В клиент-серверном варианте файлы индекса размещаются в каталоге служебных данных сервера 1С:Предприятия. Точное расположение зависит от версии платформы и настроек кластера.

Ручное удаление файлов индекса — допустимый, но рискованный способ. Он применяется, когда индекс повреждён настолько, что штатная очистка завершается ошибкой. Обязательные условия: база должна быть остановлена или все сеансы завершены, сервер 1С остановлен (для клиент-серверного варианта), а перед удалением сделана резервная копия. Удалять нужно только файлы индекса, не трогая файлы самой базы.

Индексы СУБД в клиент-серверном варианте

Если под «очисткой индекса» имеется в виду обслуживание индексов Microsoft SQL Server или PostgreSQL, то внутри 1С эта задача не решается. Индексы таблиц перестраиваются и реорганизуются средствами СУБД: планами обслуживания, скриптами или командами администратора баз данных.

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

Сравнение подходов

Очистка через конфигуратор

Подходит всем, безопасно, но требует ручного запуска и монопольного времени на больших базах

Программная очистка по расписанию

Удобна для регулярного обслуживания, требует настройки регламентного задания и контроля выполнения

Удаление файлов индекса вручную

Крайняя мера при повреждении индекса; требует остановки работы и резервной копии

Обслуживание индексов СУБД

Отдельная задача администратора БД; выполняется средствами SQL Server или PostgreSQL, а не 1С

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

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

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

Типичные ошибки
01
Очистили индекс и не перестроили — поиск полностью перестал работать
02
Запустили перестроение в рабочее время — база замедлилась у всех пользователей
03
Удалили файлы вручную при запущенном сервере — риск повреждения служебных данных
04
Путают индекс полнотекстового поиска с индексами СУБД и удаляют не то
05
Не проверили режим поиска — очистка выполнена, а проблема была в отключённом поиске

Как проверить результат после очистки и перестроения

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

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

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

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

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

Объект находится по слову из наименования

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

Документ не находится — индекс не построен или устарел

Поиск удалённого объекта
Норма

Объект отсутствует в результатах

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

Удалённые данные находятся — нужно полное перестроение

Дата актуальности индекса
Норма

Соответствует времени перестроения

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

Дата старая — обновление не выполнялось

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

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

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

Поиск «подвисает» — проверить диск и объём индекса

Часто задаваемые вопросы

Удалятся ли данные при очистке индекса полнотекстового поиска?

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

Сколько времени занимает перестроение индекса?

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

Нужно ли монопольный доступ для очистки индекса?

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

Почему после очистки поиск всё равно не работает?

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

Как автоматизировать обслуживание индекса?

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

Чем очистка индекса отличается от тестирования и исправления базы?

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

Итог

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

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