Как переключать режимы полнотекстового поиска (1.0 и 2.0) в 1С:Предприятие

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении платформы 1С:Предприятие до версии 8.3.24 и выше многие администраторы и разработчики сталкиваются с некорректной работой полнотекстового поиска (ППС). Это связано с тем, что в новых версиях платформы активно внедряется и оптимизируется вторая версия движка поиска (версия 2.0), которая существенно отличается от классической версии 1.0 по алгоритмам ранжирования, морфологии и структуре хранения данных. В этой статье мы подробно разберем, как управлять этими режимами, как правильно выполнять переход и что делать, если стандартные настройки недоступны.

Причины возникновения проблем при обновлении

Рассмотрим ситуацию: вы обновили платформу, например, с версии 8.3.22 на 8.3.24. После этого пользователи начинают жаловаться на «странное» поведение поиска: результаты могут не выводиться вовсе, либо их релевантность кажется крайне низкой. Проанализируем причину. Платформа 8.3.24 ожидает обновленной структуры индекса. Согласно официальной документации (файл V8Update.htm), для улучшения релевантности и стабильности необходимо полностью очистить старый индекс и перестроить его заново. Если же вы хотите вернуться к старому механизму или, наоборот, принудительно включить новый, нам потребуется доступ к управлению версиями полнотекстового поиска.

Способ 1: Переключение через интерфейс «Функции для технического специалиста»

Это самый простой и доступный способ для администратора системы. Разберем по шагам, как добраться до нужных настроек:

  1. Откроем главное меню 1С и выберем пункт «Функции для технического специалиста...». Если этот пункт не отображается, необходимо включить его в настройках параметров (Сервис — Параметры — Отображать команду «Функции для технического специалиста»).
  2. В появившемся дереве объектов раскроем ветку «Стандартные».
  3. Найдем пункт «Управление полнотекстовым поиском» и откроем его.
  4. В открывшейся форме управления нажмем на гиперссылку «Параметры» (в некоторых версиях конфигураций эта кнопка может называться «Настроить»).
  5. В появившемся диалоговом окне мы увидим поле «Версия», где можно выбрать «Версия 1.0» или «Версия 2.0».

Что делать, если поле выбора версии недоступно?

Выясним причину, по которой поле «Версия» может быть серым (заблокированным). Платформа накладывает ряд ограничений на изменение этого параметра:

Во-первых, для смены версии полнотекстового поиска практически всегда требуется монопольный режим работы с базой данных. Убедимся, что в системе нет активных сеансов пользователей и фоновых заданий — для этого подойдёт инструмент принудительного завершения сеансов пользователей.

Во-вторых, необходимо временно остановить работу самого механизма поиска. Алгоритм действий следующий: сначала снимем галочку «Разрешить полнотекстовый поиск», нажмем кнопку «Записать» или «ОК», и только после этого поле выбора версии станет доступным для редактирования. После смены версии не забудьте вернуть галочку использования поиска на место.

В-третьих, проверим режим совместимости конфигурации. Использование версии 2.0 полнотекстового поиска возможно только в том случае, если режим совместимости установлен на значение 8.3.23 или выше. Если ваша база работает в режиме совместимости 8.3.20 или ниже, выбор второй версии будет заблокирован на уровне ядра платформы.

Способ 2: Программное переключение версии

Иногда возникают ситуации, когда интерфейсные методы недоступны из-за особенностей доработки конфигурации. В этом случае мы можем прибегнуть к использованию встроенного языка 1С. Для этого создадим внешнюю обработку или воспользуемся консолью кода. Рассмотрим пример кода для принудительной установки версии 2.0:


// Установка версии полнотекстового поиска программно
ПолнотекстовыйПоиск.УстановитьВерсиюПолнотекстовогоПоиска(ВерсияПолнотекстовогоПоиска.Версия2);
Сообщить("Версия полнотекстового поиска успешно изменена на 2.0");

Аналогично, если нам нужно вернуть версию 1.0, используем следующий фрагмент:


// Возврат к классической версии 1.0
ПолнотекстовыйПоиск.УстановитьВерсиюПолнотекстовогоПоиска(ВерсияПолнотекстовогоПоиска.Версия1);
Сообщить("Выполнен возврат к версии полнотекстового поиска 1.0");

Важно помнить, что после выполнения этого кода необходимо инициировать полное обновление индекса, так как структуры данных версии 1.0 и 2.0 несовместимы между собой — в этом поможет обработка для массового перепроведения документов.

Важность очистки индекса при переходе

Проанализируем ситуацию, когда после смены версии поиск продолжает «чудить», находя движения непроведенных документов — для этого есть обработка очистки базы от битых движений. Обычного нажатия кнопки «Обновить индекс» может быть недостаточно. При переходе с 8.3.22 на 8.3.24 крайне рекомендуется выполнить полную очистку. Разберем правильную последовательность действий:

  1. Зайдем в «Управление полнотекстовым поиском».
  2. Нажмем кнопку «Очистить индекс».
  3. Выключим признак «Разрешить полнотекстовый поиск».
  4. Выполним смену версии (если это планировалось).
  5. Снова включим признак «Разрешить полнотекстовый поиск».
  6. Нажмем «Обновить индекс». Обратите внимание, что первичная индексация на больших базах может занять длительное время (от нескольких часов до суток), в течение которого поиск будет выдавать неполные результаты.

Физическое удаление файлов индекса

В особо сложных случаях, когда программная очистка не помогает (например, из-за повреждения файлов индекса на диске), следует выполнить удаление вручную — для этого подойдёт диагностика поврежденных записей и удаление битых ссылок. Посмотрим, где хранятся эти данные. В клиент-серверном варианте файлы индекса располагаются на сервере 1С:Предприятие в каталоге рабочего процесса (не путать с клиентским кэшем 1С). Обычно это папка вида snccntx... внутри каталога reg_1541. Внутри нее нас интересует папка 1Cv8FTxt. Для очистки необходимо:

1. Остановить службу сервера 1С:Предприятие (1C:Enterprise 8.3 Server Agent).
2. Полностью удалить содержимое папки 1Cv8FTxt.
3. Запустить службу сервера.
4. Зайти в базу и запустить процесс обновления индекса через стандартную обработку — пригодится обработка удаления битых ссылок в объектах и регистрах.

Ключевые отличия версии 2.0

Выясним, стоит ли вообще переходить на версию 2.0. Основные преимущества новой версии включают:

Таким образом, переход на 8.3.24 — это отличный повод перевести систему на современный движок поиска 2.0, предварительно убедившись, что режим совместимости конфигурации позволяет это сделать, а все старые индексные файлы корректно удалены.

← На главную