← На главную
Мы рассмотрим распространенную проблему в конфигурации 1С:Управление торговлей 11 (УТ11), когда полнотекстовый поиск данных ведет себя непредсказуемо. Пользователи сталкиваются с ситуацией, когда поиск по одной подстроке, например, "057", успешно находит документ "FATR-005765", но при вводе чуть более длинной подстроки, такой как "0576", тот же документ уже не находится. При этом, если ввести "00576", документ снова становится видимым в результатах поиска. Особую сложность добавляет то, что на тестовой базе, развернутой из актуального бэкапа, данная проблема не воспроизводится, и поиск работает корректно во всех вариантах. Стандартные действия, такие как удаление и обновление индекса полнотекстового поиска, не принесли желаемого результата. Давайте разберем эту ситуацию по шагам и выясним возможные причины и методы устранения.
Анализируем суть проблемы с полнотекстовым поиском
Первым делом мы должны понять, что такое поведение системы указывает на проблему с самим индексом полнотекстового поиска (ППД), а не с кодом конфигурации. Как правило, поиск по подстроке в 1С осуществляется силами платформы, используя специально построенные индексы.
Основные симптомы проблемы:
- Непоследовательность результатов: Более короткая подстрока или подстрока с другим префиксом находит документ, а более длинная часть того же идентификатора — нет.
- Различие между базами: Рабочая база демонстрирует проблему, тогда как тестовая база, созданная из того же источника данных, работает корректно. Это исключает проблемы в данных как таковых и указывает на особенности окружения или состояния индекса рабочей базы.
- Неэффективность базовых решений: Стандартное удаление и обновление индекса полнотекстового поиска не решило проблему, что говорит о более глубоких причинах или необходимости более "сложного ритуала", как отмечают опытные специалисты.
Важный диагностический шаг:
Прежде чем углубляться в настройку и перестроение индекса, временно отключите полнотекстовый поиск данных полностью. Если после этого поиск начинает работать корректно (с использованием других механизмов поиска 1С, например, по прямому совпадению или по началу строки), это является сильным индикатором того, что проблема кроется именно в построенном индексе ППД в вашей рабочей базе. В некоторых особо сложных случаях, когда все стандартные методы исчерпаны, обновление платформы 1С помогало решить аналогичные проблемы, о чем свидетельствует опыт других пользователей.
Возможные причины некорректной работы полнотекстового поиска
Рассмотрим, почему полнотекстовый поиск может работать некорректно, даже после попыток обновления индекса. Эти причины охватывают широкий спектр от внутренних особенностей работы 1С до проблем с инфраструктурой:
- Устаревшие или поврежденные индексы полнотекстового поиска: Индексы могут быть повреждены из-за сбоев программы, некорректного завершения работы или прерывания процесса обновления. После значительных изменений структуры базы данных (например, обновлений конфигурации), индексы могут стать неактуальными, если их обновление не произошло должным образом.
- "Битые" ссылки на элементы базы: Нарушение ссылочной или логической целостности объектов, участвующих в поиске, может привести к тому, что полнотекстовый индекс ссылается на несуществующие или некорректные данные, что затрудняет их обнаружение при поиске.
- Неправильная настройка расписания регламентных заданий: Полнотекстовый поиск зависит от регулярного выполнения регламентных заданий по обновлению и слиянию индексов. Если расписание настроено некорректно (слишком редкий запуск, конфликты по времени или отключение), индекс может не успевать актуализироваться.
- Отсутствие постоянно запущенного процесса для выполнения регламентных заданий в файловом варианте: В файловых базах 1С регламентные задания выполняются только при наличии активного клиентского сеанса, который периодически вызывает выполнение заданий. Если такой сеанс отсутствует или прерывается, задания не будут выполняться автоматически.
- Проблемы с правами и доступом: Для процедур обновления и слияния индекса полнотекстового поиска требуются определенные права. Если у пользователя или учетной записи, от имени которой выполняются регламентные задания, нет достаточных прав, обновление индекса не произойдет.
- Индекс заблокирован или обновляется вручную: Если в момент автоматического обновления индекса происходит его ручное обновление или процесс слияния основного и дополнительного индексов, автоматическое обновление может быть временно приостановлено или заблокировано.
- Большой объем данных и высокая нагрузка: В системах с большим объемом данных и высокой интенсивностью их изменения (например, при массовом перепроведении документов, загрузке данных), обновление индекса может не успевать за изменениями. Система может временно приостанавливать автоматическое обновление, чтобы не создавать дополнительную нагрузку на сервер.
- Особенности работы полнотекстового поиска (основной и дополнительный индексы): Полнотекстовый поиск состоит из двух частей: основного и дополнительного индекса. Дополнительный индекс обновляется чаще и содержит более свежие данные, а слияние с основным индексом (который используется для большинства запросов) происходит по расписанию. Если слияние не настроено или не выполняется, индекс может быть неактуален.
- Проблемы совместимости или ошибки конфигурации: Иногда новая версия платформы 1С может быть не полностью совместима со старыми настройками полнотекстового поиска, или могут возникать ошибки в конфигурации, влияющие на работу этого механизма.
- Недостаточно свободного места: Для построения и хранения индексов требуется значительное количество свободного места на диске как на клиентском компьютере, так и на сервере (если база клиент-серверная). Нехватка места может приводить к ошибкам при обновлении индекса.
- Замедление работы программы: Общие проблемы с производительностью системы, такие как недостаточные характеристики сервера, большой объем оперативной памяти, сбои в работе оборудования или активные антивирусы, могут влиять на скорость и корректность построения индекса.
Рекомендации и шаги по устранению проблемы с полнотекстовым поиском
Для решения проблемы с некорректной работой полнотекстового поиска мы предлагаем комплексный подход, который включает в себя проверку настроек, очистку, обновление индекса и другие диагностические и корректирующие действия.
1. Проверка общих настроек полнотекстового поиска
- Перейдите в раздел
Администрирование – Общие настройки – Поиск данных.
- Убедитесь, что флажок
Полнотекстовый поиск данных установлен. Если он снят, поиск не будет работать вовсе.
2. Тщательная очистка и обновление индекса
Это самый важный и часто проблемный шаг. Он должен выполняться в монопольном режиме, чтобы никакие другие пользователи или фоновые процессы не влияли на индекс.
- Откройте форму
Управление полнотекстовым поиском и извлечением текстов. Это можно сделать через Администрирование – Общие настройки – Поиск данных – кнопка Настроить.
- Обязательно зайдите в базу в монопольном режиме. Это означает, что вы должны быть единственным активным пользователем в базе данных.
- Сначала нажмите кнопку
Очистить индекс. Это удалит существующий индекс.
- После успешной очистки нажмите кнопку
Обновить индекс. Этот процесс может занять значительное время в зависимости от объема базы данных.
- Проверьте результат:
- Посмотрите на
Дату актуальности индекса: она должна соответствовать текущей дате и времени завершения обновления.
- Проверьте
Статус индекса: он должен быть Обновление не требуется или Индекс актуален.
- После этих действий также рекомендуется нажать кнопку
Проверить индекс для дополнительной валидации.
- Опытные специалисты отмечают, что процедура обновления индекса может быть гораздо сложнее, чем кажется на первый взгляд, требуя внимания к нескольким регламентным заданиям и порядку их выполнения.
3. Проверка и настройка регламентных заданий
Полнотекстовый поиск в 1С активно использует регламентные задания для поддержания актуальности индексов.
- Перейдите в
Администрирование – Обслуживание – Регламентные и фоновые задания.
- Найдите задания, связанные с полнотекстовым поиском:
Обновление индекса полнотекстового поиска
Слияние индексов полнотекстового поиска (или аналогичные, связанные с оптимизацией индекса)
- Проверьте их расписание: Убедитесь, что задания активно и настроены на регулярное выполнение с достаточной частотой. Для больших баз может быть полезно увеличить интервал выполнения (например, с 60 секунд до 1600 секунд) для снижения нагрузки, но при этом обеспечив регулярность.
- Для файловых баз: Убедитесь, что есть постоянно запущенный клиентский сеанс (например, через специальную обработку), который циклически вызывает функцию
ВыполнитьОбработкуЗаданий(). В файловом варианте регламентные задания не выполняются без активного клиентского сеанса.
4. Очистка кэша и физических файлов индекса
Повреждение кэша или "хвостов" старого индекса может мешать корректной работе.
- Очистка пользовательского кэша 1С:
- Закройте все сеансы 1С.
- Вручную удалите папки с файлами кэша, расположенные, как правило, в
%AppData%\1C\1CE\ (для Windows).
- Удаление файла
tableChanges.dat: Этот файл содержит информацию об изменениях, которые еще не были внесены в основной индекс.
- Найдите каталог службы полнотекстового поиска
1Cv8FTxt. Его расположение зависит от установки 1С.
- Удалите файл
tableChanges.dat.
- После удаления обязательно снова выполните процедуру
Обновить индекс, как описано в пункте 2.
- Очистка кэша сеансовых данных на сервере 1С (для клиент-серверных баз): Может потребовать перезапуска службы сервера 1С.
5. Восстановление логической и ссылочной целостности базы
Нарушение целостности данных может мешать индексированию.
- Запустите
Конфигуратор.
- Перейдите в меню
Администрирование – Тестирование и исправление.
- Выполните проверку и исправление базы, особенно обращая внимание на опции, связанные с логической и ссылочной целостностью. Это также должно производиться в монопольном режиме.
6. Отключение и повторное включение полнотекстового поиска
В некоторых случаях полный цикл переинициализации помогает.
- Через меню
Все функции (если оно включено в интерфейсе) найдите Управление полнотекстовым поиском.
- В монопольном режиме полностью отключите полнотекстовый поиск.
- Перезапустите 1С, затем снова зайдите в
Управление полнотекстовым поиском и включите его.
- После включения обязательно выполните
Очистить индекс и Обновить индекс.
7. Переход на полнотекстовый поиск версии 2 (для больших клиент-серверных баз)
Если проблема сохраняется в больших и высоконагруженных клиент-серверных базах, рассмотрите возможность перехода на вторую версию полнотекстового поиска 1С.
- Версия 2 предлагает упрощенное администрирование.
- Требует наличия
Java версии 8 и выше на компьютерах кластера серверов 1С.
- Обратите внимание, что версия 2 не работает в файловом режиме (за исключением автономного сервера).
8. Проверка настроек поиска по части слова
Хотя в вашей ситуации проблема проявляется без явных подстановочных символов, стоит помнить, что в полнотекстовом поиске для поиска по части слова иногда требуется использование символа *, например, *0576*.
9. Обновление платформы и конфигурации
Как уже упоминалось, в некоторых сложных случаях проблемы с полнотекстовым поиском решались только путем обновления платформы 1С до более актуальной версии. Также проверьте наличие обновлений для вашей конфигурации УТ11.
10. Обращение к специалистам 1С
Если все вышеперечисленные шаги не принесли результата, рекомендуется обратиться к квалифицированным специалистам 1С или на линию поддержки 1С, предоставив им всю собранную информацию о проблеме и предпринятых действиях.
Мы выяснили, что некорректная работа полнотекстового поиска в 1С:УТ11, особенно когда поиск по подстроке дает нелогичные результаты, чаще всего указывает на проблемы с индексом ППД. Систематический подход к диагностике, включающий тщательную очистку и обновление индекса в монопольном режиме, проверку регламентных заданий, очистку кэша и проверку целостности базы, является ключом к решению. В крайних случаях может потребоваться обновление платформы или переход на более современную версию полнотекстового поиска.