Администрирование · 12 мин
Как очистить индекс в 1С: пошаговая инструкция
Пошаговая инструкция по очистке индекса полнотекстового поиска в 1С, работе с индексами базы данных, типичные ошибки и проверка результата.
Термин «очистить индекс» в контексте 1С обычно означает одну из двух задач: сброс индекса полнотекстового поиска, который платформа строит по данным информационной базы, или перестроение индексов на уровне СУБД в клиент-серверном варианте работы. Первая задача решается штатными средствами конфигуратора и встроенного языка, вторая — инструментами SQL Server, PostgreSQL или другой используемой СУБД.
Очистка индекса полнотекстового поиска требуется, когда поиск начинает выдавать устаревшие или некорректные результаты, когда индекс занимает слишком много места на диске, а также после массовой загрузки или удаления данных, изменения состава объектов метаданных или обновления конфигурации. В тяжёлых случаях повреждённый индекс может вообще блокировать работу поиска.
Прежде чем что-либо удалять, важно понять, какой именно индекс вызывает проблему. Очистка полнотекстового индекса — безопасная операция: данные не удаляются, индекс можно построить заново. А вот вмешательство в индексы СУБД или удаление файлов базы вручную может привести к потере данных и требует резервной копии.
Какие индексы существуют в 1С и что именно вы очищаете
В экосистеме 1С под «индексом» чаще всего понимают полнотекстовый индекс — отдельную структуру, которую платформа строит по текстовым реквизитам объектов: наименованиям, комментариям, содержимому файлов и длинным строковым полям. Именно этот индекс обеспечивает работу полнотекстового поиска в формах списков и в поле поиска.
Отдельно существуют индексы таблиц базы данных. В файловом варианте они хранятся внутри файла 1Cv8.1CD и обслуживаются самой платформой. В клиент-серверном варианте индексы создаются и поддерживаются СУБД — их очисткой, перестроением и дефрагментацией занимается администратор базы данных средствами СУБД, а не конфигуратора 1С.
Ключевой вывод: очистка полнотекстового индекса не затрагивает данные информационной базы. Удаляется только служебная поисковая структура, которую всегда можно перестроить. Поэтому эта операция считается безопасной, если выполняется корректно и в подходящее время.
Как понять, что индекс нужно очистить или перестроить
О необходимости обслуживания индекса сигнализируют характерные симптомы: поиск перестаёт находить заведомо существующие документы, находит удалённые объекты, выдаёт ошибки при выполнении запроса или работает заметно медленнее обычного. Ещё один признак — аномальный рост каталога с файлами индекса на диске.
Также очистку и полное перестроение рекомендуется выполнять после массовых операций: загрузки данных из другой системы, свёртки базы, удаления большого объёма устаревших документов, изменения состава метаданных, включённых в полнотекстовый поиск. В этих случаях частичное обновление индекса может оказаться медленнее и менее надёжно, чем построение с нуля.
Проверить дату последнего обновления индекса
Выполнить полное перестроение
Очистить индекс и построить заново
Очистка и перестроение уменьшат объём
Очистка индекса через конфигуратор
Штатный способ управления полнотекстовым поиском — раздел конфигуратора. Откройте конфигуратор с правами администратора, перейдите в меню «Администрирование» и выберите пункт «Полнотекстовый поиск». В открывшемся окне доступны команды управления индексом: обновление, полное перестроение и очистка.
Для очистки выберите соответствующую команду и подтвердите действие. Платформа удалит текущий индекс целиком. Учтите: пока индекс не построен заново, полнотекстовый поиск в базе работать не будет, а пользователи увидят соответствующее сообщение при попытке поиска.
В клиент-серверном варианте операции с индексом выполняются на сервере 1С:Предприятия, поэтому для массивных баз очистку и перестроение лучше планировать на нерабочее время. Построение индекса по большому объёму данных может занять от нескольких минут до нескольких часов и заметно нагружает сервер.
- 1Сделайте резервную копию базы или убедитесь, что актуальная копия существует
- 2Откройте конфигуратор под пользователем с правами администратора
- 3Перейдите: Администрирование → Полнотекстовый поиск
- 4Выполните команду очистки индекса и дождитесь завершения
- 5Запустите полное построение индекса в нерабочее время
- 6Проверьте поиск на нескольких заведомо существующих объектах
Программная очистка индекса через встроенный язык
Для автоматизации обслуживания удобно использовать методы менеджера полнотекстового поиска встроенного языка. Это позволяет выполнять очистку и перестроение по расписанию через регламентное задание или из внешней обработки.
Базовый вызов выглядит так: ПолнотекстовыйПоиск.ОчиститьИндекс();. Для последующего построения индекса используется метод ПолнотекстовыйПоиск.ОбновитьИндекс(Истина); — параметр «Истина» означает полное перестроение. Перед вызовом полезно проверить, разрешён ли полнотекстовый поиск: ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска().
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
ПолнотекстовыйПоиск.ОчиститьИндекс();
ПолнотекстовыйПоиск.ОбновитьИндекс(Истина);
КонецЕсли;При запуске через регламентное задание учитывайте, что задание должно выполняться от имени пользователя с достаточными правами, а в клиент-серверном варианте — на сервере. Полное перестроение блокирует значительные ресурсы, поэтому задание ставят на ночное время и следят, чтобы оно не пересекалось с резервным копированием и другими тяжёлыми операциями.
Где хранятся файлы индекса и можно ли удалять их вручную
В файловом варианте полнотекстовый индекс хранится в служебном подкаталоге рядом с файлом базы. В клиент-серверном варианте файлы индекса размещаются в каталоге служебных данных сервера 1С:Предприятия. Точное расположение зависит от версии платформы и настроек кластера.
Ручное удаление файлов индекса — допустимый, но рискованный способ. Он применяется, когда индекс повреждён настолько, что штатная очистка завершается ошибкой. Обязательные условия: база должна быть остановлена или все сеансы завершены, сервер 1С остановлен (для клиент-серверного варианта), а перед удалением сделана резервная копия. Удалять нужно только файлы индекса, не трогая файлы самой базы.
Индексы СУБД в клиент-серверном варианте
Если под «очисткой индекса» имеется в виду обслуживание индексов Microsoft SQL Server или PostgreSQL, то внутри 1С эта задача не решается. Индексы таблиц перестраиваются и реорганизуются средствами СУБД: планами обслуживания, скриптами или командами администратора баз данных.
Типичный сценарий — регламентная дефрагментация или перестроение индексов в нерабочее время, когда фрагментация превышает приемлемый уровень. Эти операции ускоряют выполнение запросов, но не «очищают» индексы в смысле удаления данных. Удалять индексы таблиц 1С вручную категорически не рекомендуется: платформа создаёт их автоматически по структуре метаданных, и отсутствие нужного индекса резко замедлит работу, а при реструктуризации индекс будет создан заново.
Сравнение подходов
Подходит всем, безопасно, но требует ручного запуска и монопольного времени на больших базах
Удобна для регулярного обслуживания, требует настройки регламентного задания и контроля выполнения
Крайняя мера при повреждении индекса; требует остановки работы и резервной копии
Отдельная задача администратора БД; выполняется средствами SQL Server или PostgreSQL, а не 1С
Типичные ошибки и ограничения
Самая частая ошибка — очистить индекс и забыть построить его заново. Пользователи при этом теряют возможность полнотекстового поиска, и обращения в поддержку начинаются уже через несколько минут рабочего дня. Второй типичный просчёт — запуск полного перестроения в разгар рабочего дня на большой базе: операция нагружает дисковую подсистему и процессор, и работа пользователей замедляется.
Ещё одна ошибка — попытка «починить» медленный поиск очисткой индекса, когда причина в другом: в отключённом режиме полнотекстового поиска, в нехватке места на диске или в том, что нужные метаданные просто не включены в состав поиска. Очистка в таких случаях ничего не даст.
Как проверить результат после очистки и перестроения
После завершения построения индекса откройте базу в режиме предприятия и выполните поиск по нескольким контрольным значениям: наименованию недавно созданного документа, фрагменту комментария, содержимому присоединённого файла. Новые объекты должны находиться сразу, удалённые — не появляться в результатах.
Дополнительно проверьте дату актуальности индекса в том же разделе «Администрирование → Полнотекстовый поиск» конфигуратора и убедитесь, что на диске достаточно свободного места после перестроения. Если поиск работает, но результаты неполные, проверьте настройки состава метаданных, участвующих в полнотекстовом поиске.
Как проверить результат
Объект находится по слову из наименования
Документ не находится — индекс не построен или устарел
Объект отсутствует в результатах
Удалённые данные находятся — нужно полное перестроение
Соответствует времени перестроения
Дата старая — обновление не выполнялось
Результат за секунды
Поиск «подвисает» — проверить диск и объём индекса
Часто задаваемые вопросы
Удалятся ли данные при очистке индекса полнотекстового поиска?
Нет. Очищается только служебная поисковая структура. Документы, справочники и файлы остаются нетронутыми. После очистки достаточно построить индекс заново, и поиск заработает в полном объёме.
Сколько времени занимает перестроение индекса?
Зависит от объёма текстовых данных, производительности дисковой подсистемы и сервера. На небольших базах — минуты, на крупных клиент-серверных базах — часы. Поэтому операцию планируют на нерабочее время.
Нужно ли монопольный доступ для очистки индекса?
Для самой очистки и обновления индекса монопольный режим обычно не требуется, но активная работа пользователей во время полного перестроения замедляет и операцию, и работу базы. Ручное удаление файлов индекса, напротив, требует полной остановки работы с базой.
Почему после очистки поиск всё равно не работает?
Чаще всего индекс не был построен заново либо полнотекстовый поиск отключён в настройках. Также проверьте, что нужные объекты метаданных включены в состав полнотекстового поиска, и что на диске достаточно свободного места для файлов индекса.
Как автоматизировать обслуживание индекса?
Создайте регламентное задание, вызывающее методы ПолнотекстовыйПоиск.ОбновитьИндекс() по расписанию — например, еженощно для инкрементального обновления и периодически с параметром полного перестроения. Контролируйте успешность выполнения через журнал регистрации.
Чем очистка индекса отличается от тестирования и исправления базы?
Тестирование и исправление проверяет целостность данных и структуры таблиц, а очистка индекса затрагивает только поисковую структуру. Это разные операции: первая — инструмент диагностики и восстановления, вторая — штатное обслуживание поиска.
Что важно запомнить
Очистка индекса полнотекстового поиска в 1С — безопасная операция через конфигуратор или метод ПолнотекстовыйПоиск.ОчиститьИндекс(). Данные не удаляются, но индекс обязательно нужно построить заново. Перестроение больших баз выполняйте в нерабочее время, а ручное удаление файлов индекса — только при остановленной базе и с резервной копией.