Разберем распространенную проблему, с которой сталкиваются администраторы и разработчики 1С: после удаления или изменения нетиповых объектов из конфигурации (например, справочников или регистров сведений модуля обмена с Битриксом) перестает работать быстрый поиск в динамических списках — например, в списке контрагентов. При вводе заведомо существующего наименования программа выдает пустой результат, в то время как поиск по другим справочникам (например, по номенклатуре) продолжает работать исправно.
В этой статье мы подробно проанализируем причины возникновения такого сбоя, рассмотрим пошаговый порядок полного перестроения полнотекстового индекса, а также узнаем, как правильно настроить регламентные задания, чтобы избежать подобных проблем в будущем.
Полнотекстовый поиск данных (ППД) в платформе «1С:Предприятие» строится на основе структуры метаданных конкретной информационной базы. Когда из конфигурации удаляются какие-либо объекты, ссылки на них в ранее сформированном индексе полнотекстового поиска становятся недействительными.
В результате весь индекс переходит в рассинхронизированное или повреждённое состояние. Из-за этого платформа перестаёт корректно обрабатывать поисковые запросы даже по тем справочникам (в нашем случае — Контрагенты), которые вообще не затрагивались при изменении конфигурации. Обычная очистка пользовательского кэша в такой ситуации не помогает, так как проблема кроется на стороне сервера базы данных и его служебных индексов.
Рассмотрим последовательность действий для восстановления работы поиска через встроенные механизмы платформы.
После выполнения этих шагов проверим работу быстрого поиска в списке контрагентов — поиск должен начать функционировать в штатном режиме.
Иногда при попытке очистки или обновления индекса система может выдавать ошибку вида: «Очистка индекса невозможна, пока идет его построение» или просто застывать. Проанализируем способы устранения таких задержек:
1. Завершение сеансов и фоновых заданий
Для успешного перестроения индекса необходимо временно завершить активные сеансы пользователей и приостановить выполнение регламентных и фоновых заданий (или перезапустить службу сервера 1С:Предприятия), после чего повторить процедуру очистки через интерфейс.
2. Физическое удаление файлов индекса на диске
Если интерактивно очистить индекс не удается, разберем способ ручной очистки:
1Cv8FTxt..ftindex).Чтобы не выполнять указанные выше действия вручную каждый раз, когда данные обновляются, проверим наличие и активность специализированных регламентных заданий. Для корректной поддержки полнотекстового поиска используются **два** ключевых задания:
Важное замечание для файловых баз: В файловом режиме регламентные задания не выполняются автоматически в фоновом режиме, если не запущен специальный сеанс для обработки фоновых заданий. В этом случае обновление индекса необходимо периодически выполнять вручную либо настраивать выделенный клиентский сеанс.
Если очистка и обновление индекса не дали результата, разберем дополнительные параметры платформы:
1. Проверка свойств объекта в Конфигураторе
Откроем Конфигуратор и найдем справочник Контрагенты. Проверим значение свойства ИспользоватьПолнотекстовыйПоиск. Оно должно находиться в значении Авто или Использовать.
2. Тестирование и исправление (ТиИ)
В Конфигураторе перейдем в меню Администрирование → Тестирование и исправление. Установим флаг Реиндексация таблиц информационной базы и выполним процедуру.
3. Отключение полнотекстового поиска (переход на SQL-поиск)
Если полнотекстовый поиск вызывает постоянные сбои, его можно отключить в настройках программы, сняв флаг Использовать полнотекстовый поиск данных. В этом случае быстрый поиск в динамических списках перейдет на стандартный поиск по SQL-запросу с использованием оператора ПОДОБНО. Поиск будет работать независимо от состояния индексов ППД, хотя на очень больших объемах данных это может незначительно снизить скорость работы.