Почему перестал работать полнотекстовой поиск в 1С:Управление торговлей 11 и как его восстановить?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← К списку

Если вы столкнулись с проблемой, когда полнотекстовой поиск (ПТП) в вашей конфигурации 1С:Управление торговлей 11 перестал работать или выдает некорректные результаты, особенно после обновления системы, вы не одиноки. Это довольно распространенная ситуация, и мы вместе разберем ее причины и способы решения.

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

Основное решение: Очистка и обновление индексов полнотекстового поиска

Чаще всего проблема с полнотекстовым поиском решается именно этим способом. Индексы полнотекстового поиска могут быть повреждены или содержать устаревшие данные, особенно после обновлений конфигурации или платформы. Давайте разберем по шагам, как это сделать.

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

  2. Перейдите в общие настройки. В режиме предприятия откройте раздел «Администрирование», затем выберите «Общие настройки».

  3. Откройте управление полнотекстовым поиском. В разделе «Общие настройки» найдите пункт «Полнотекстовый поиск данных» и убедитесь, что флажок напротив него установлен. Затем нажмите на ссылку «Управление полнотекстовым поиском и извлечением текстов».

  4. Очистите индексы. В открывшейся форме «Управление полнотекстовым поиском и извлечением текстов» вы увидите информацию о текущем состоянии индекса. Нажмите кнопку «Очистить индекс». Система удалит все существующие индексы полнотекстового поиска. Это может занять некоторое время в зависимости от размера вашей базы.

  5. Обновите индексы. После очистки нажмите кнопку «Обновить индекс». Система начнет процесс создания новых индексов для всех индексируемых объектов. Этот процесс также может быть длительным. Дождитесь его завершения.

  6. Проверьте результат. После обновления индекса попробуйте выполнить поиск. В форме «Управление полнотекстовым поиском и извлечением текстов» проверьте «Дату актуальности индекса» – она должна соответствовать текущей дате, а «Статус индекса» должен быть «Обновление не требуется».

Как показывает практика, именно этот набор действий помог многим пользователям восстановить работоспособность полнотекстового поиска.

Диагностика и дополнительные шаги: Почему мог пропасть поиск?

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

1. Проверка регламентного задания

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

  1. Проверьте активность регламентного задания. В режиме предприятия перейдите в раздел «Администрирование», затем «Обслуживание». Найдите пункт «Регламентные операции» и выберите «Регламентные и фоновые задания».

  2. Найдите задание «Обновление индекса полнотекстового поиска». В списке регламентных заданий найдите задание с именем Обновление индекса полнотекстового поиска. Мы посмотрим, когда оно выполнялось в последний раз.

  3. Проанализируйте статус и расписание. Убедитесь, что задание включено и имеет адекватное расписание. Если оно давно не выполнялось или завершается с ошибкой, это может быть причиной неактуальности индекса.

Вы также можете попробовать запустить это задание вручную для проверки.

2. Повреждение или устаревание индексов (подробнее)

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

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

3. Проверка настроек индексирования и метаданных

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

  1. Флажок «Полнотекстовый поиск данных». Как мы уже упоминали, в «Общих настройках» необходимо убедиться, что флажок «Полнотекстовый поиск данных» установлен.

  2. Настройки индексирования объектов. Разработчик может настраивать, какие объекты метаданных и их свойства (реквизиты, ресурсы, измерения) включаются в полнотекстовый индекс. Если какие-то важные объекты были случайно исключены из индексирования, они не будут находиться поиском. Проверить эти настройки можно в конфигураторе, открыв свойства конкретных объектов метаданных (например, справочников).

4. Проблемы с ресурсами сервера и правами доступа

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

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

  2. Права на запись. У пользователя, под которым работает сервер 1С, должны быть достаточные права на запись в каталог, где хранятся файлы индекса полнотекстового поиска. Если таких прав нет, индекс не сможет быть создан или обновлен.

5. "Битые" ссылки и целостность базы

Иногда проблемы с поиском могут быть вызваны нарушениями ссылочной или логической целостности объектов в базе данных.

  1. Тестирование и исправление. Мы рекомендуем регулярно проводить тестирование и исправление информационной базы средствами конфигуратора («Конфигурация» -> «Тестирование и исправление»). Это поможет выявить и устранить "битые" ссылки и другие ошибки, которые могут влиять на работу поиска.

6. Версия платформы 1С

Версия индекса полнотекстового поиска зависит от версии платформы 1С. После обновления платформы иногда могут возникать проблемы совместимости, требующие повторной переиндексации.

  1. Актуальность платформы. Мы должны убедиться, что используемая версия платформы 1С Предприятие актуальна и соответствует требованиям вашей конфигурации УТ11.

Альтернативное решение: Отключение полнотекстового поиска

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

Механизм работы: Если ПТП отключен, поиск происходит непосредственно в базе данных с использованием оператора SQL LIKE. Это более нагрузочно для СУБД, но зато поиск всегда синхронен и актуален, поскольку не зависит от отдельных индексов и регламентных заданий.

  1. Отключение в общих настройках. Для отключения полнотекстового поиска снимите флажок «Полнотекстовой поиск данных» в разделе «Администрирование» -> «Общие настройки».

  2. Оценка производительности. Мы должны проанализировать, насколько приемлема производительность поиска без ПТП для ваших объемов данных. На небольших и средних базах разница может быть неощутимой, но на больших – значительной.

Заключение

Мы рассмотрели основные причины и способы восстановления полнотекстового поиска в 1С:УТ 11. Начните с очистки и обновления индексов, так как это самый частый и эффективный способ решения проблемы. Если это не помогло, последовательно пройдите по пунктам диагностики, чтобы выявить корневую причину. Регулярное обслуживание и мониторинг системы помогут предотвратить возникновение подобных проблем в будущем.

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

Помните, что бэкап информационной базы до любых глобальных изменений – это всегда ваша страховка. Хотя индексы ПТП не являются частью SQL-бэкапа в клиент-серверном варианте (они хранятся в информационной базе 1С), общий бэкап всегда полезен.

← К списку