В современных конфигурациях, таких как 1С:Комплексная автоматизация 2.5 или 1С:ERP, корректная работа полнотекстового поиска является критически важной. Пользователи привыкли быстро находить заказы, товары или выполнять поиск по ИНН и рабочему наименованию контрагента через глобальную строку поиска. Однако при использовании платформы версии 8.3.24.1368 и выше программисты часто сталкиваются с ситуацией, когда поиск работает нестабильно: часть данных находится, а новые документы (например, за текущий год) полностью игнорируются системой. Разберем эту ситуацию подробно и найдем пути решения.
Рассмотрим типовой сценарий. Администратор выполняет полную очистку и обновление индекса. После этой процедуры поиск начинает работать идеально, но спустя 30–60 минут новые документы (например, за 2023–2024 годы) снова пропадают из результатов выдачи. При этом регламентные задания по обновлению индекса отрабатывают без ошибок, а Дата актуальности индекса застывает на вчерашнем числе.
Проанализируем специфический симптом, который часто встречается в версии 2.0: поиск по полному слову (например, «Самоточные изделия») не дает результатов, но если убрать первую букву и искать «амоточные изделия», система мгновенно находит нужный объект. Это прямо указывает на проблему токенизации и индексации префиксов в новом движке поиска. В качестве временной альтернативы пользователи могут использовать внешний расширенный поиск объекта, который находит документы по любой части строки и умеет работать с неверной раскладкой, игнорируя ошибки платформенного индекса.
Прежде чем грешить на платформу, убедимся, что проблема не в раскладке клавиатуры или спецсимволах. Проанализируем ситуацию с помощью простого фрагмента кода. Мы можем создать внешнюю обработку и проверить, совпадает ли строковое представление реквизита с тем, что мы вводим в строку поиска. Посмотрим на пример:
// Простая проверка соответствия наименования объекта поисковому запросу
Если Объект.СсылкаНаДокумент.Наименование = "Самоточные изделия" Тогда
Сообщить("Данные в базе корректны, раскладка верная.");
Иначе
Сообщить("Обнаружены скрытые символы или иная раскладка.");
КонецЕсли;
Если код подтверждает корректность данных, но стандартный ПолнотекстовыйПоиск.Найти() все равно не выдает результат, значит, проблема локализована в самом индексе. Для диагностики можно запустить прямой поиск в базе данных по параметрам, который сканирует таблицы напрямую, минуя полнотекстовый индекс, и убедиться, что данные физически присутствуют.
Как показывает практика эксплуатации версии 8.3.24, наиболее быстрым и надежным способом восстановить работоспособность системы является возврат к первой версии движка поиска. Версия 2.0, хотя и заявлена как более производительная, в данных релизах платформы работает нестабильно.
Разберем по шагам, как изменить версию поиска:
В версии 1.0 используется классический механизм разделения на основной и дополнительный индексы. Это исключает проблемы с «зависанием» актуальности, так как регламентное задание ОбновлениеИндексаППД работает по отработанному годами алгоритму.
Если ваша конфигурация жестко требует использования версии 2.0, проанализируем технические аспекты её работы. Поисковый движок 2.0 сильно зависит от среды исполнения Java (JRE) и настроек рабочего процесса сервера 1С. Рассмотрим дополнительные действия:
1C:Enterprise 8.3 Server Agent и полностью удалить содержимое папки index в каталоге вашей информационной базы на сервере.Обновление индекса ППД и Слияние индекса ППД не конфликтовали между собой. В версии 2.0 рекомендуется увеличить интервал между запусками, чтобы избежать блокировок.Поскольку проблема с поиском в 8.3.24.1368 признана ошибкой платформы (баг с индексацией префиксов и актуальностью данных), стратегическим решением будет переход на более свежие сборки. Рассмотрим ветку 8.3.25 или последние исправительные релизы 8.3.24 (выше 15xx). В них разработчики 1С внесли существенные правки в стабильность работы поискового сервиса.
Мы выяснили причину странного поведения поиска: некорректная работа нового движка 2.0, которая приводит к частичному игнорированию данных и сбоям при поиске по первым буквам слов. Для оперативного исправления ситуации в 1С:Комплексная автоматизация рекомендуем придерживаться следующего алгоритма:
Регламентные и фоновые задания.Это позволит пользователям вернуться к привычной работе без необходимости ожидания ночного окна для обновления всей платформы 1С.