Индекс поиска по данным в 1С 8.3: включение, обновление и ремонт

· 9 мин

Содержание

Полнотекстовый поиск в 1С 8.3 включается в форме Все функции → Стандартные → Управление полнотекстовым поиском: нажмите «Включить», затем «Обновить индекс». После первого построения индекса поиск по словам начинает находить документы, справочники и реквизиты. Чтобы новые данные тоже попадали в выдачу, индекс нужно обновлять регулярно — это делают регламентные задания.

Настройка общая для платформы, поэтому порядок одинаков для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигураций. Различается только место, где конфигурация дублирует эту форму в своём меню администрирования. Права нужны административные: обычный пользователь режим поиска не переключит.

Что проверить до включения поиска

Сначала выясните, в каком состоянии поиск сейчас. Часто он уже включён, но индекс давно не обновлялся — тогда «включать» ничего не надо, нужно лишь его догнать.

Как открыть форму управления

Если в главном меню нет пункта «Все функции», включите его:

  1. Откройте главное меню (кнопка с тремя полосками в заголовке окна).
  2. Выберите Сервис → Параметры.
  3. Поставьте флажок «Отображать команду “Все функции”» и нажмите «Применить».

Теперь в том же меню появится Все функции. В дереве откройте ветку Стандартные и запустите «Управление полнотекстовым поиском».

Что показывает форма

В форме видно три вещи, по которым ставится диагноз:

  • 🔍 режим поиска — включён или отключён;
  • 📅 дата актуальности индекса — по какое время данные проиндексированы;
  • ✅ состояние индекса — актуален он или нет.
Что видитеЧто это значитЧто делать
Поиск отключёнИндекс не строится вообщеВключить и построить индекс
Включён, индекс не актуаленНовые данные не попали в индексОбновить индекс, проверить регламентные задания
Включён, индекс актуален, но ничего не находитПроблема в настройках объектов или в запросеСмотреть раздел про пустую выдачу ниже
Дата актуальности месячной давностиРегламентное задание не работаетПроверить задания и права службы

Где ещё бывает эта настройка

В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) флажок полнотекстового поиска вынесен в Администрирование → Общие настройки. Там же обычно есть ссылка на настройку и кнопка обновления индекса. Работает это так же, как стандартная форма платформы: включили в одном месте — включилось везде.

Как включить полнотекстовый поиск в 1С 8.3 в режиме Предприятия

Сама операция занимает минуту. Долгим бывает только первое построение индекса.

  1. Откройте Все функции → Стандартные → Управление полнотекстовым поиском.
  2. Нажмите «Включить». Режим сменится на «Включён».
  3. Нажмите «Обновить индекс». Пойдёт первое построение.
  4. Дождитесь, пока состояние станет «Индекс актуален», а дата актуальности — текущей.
  5. Проверьте результат: введите в строку поиска фамилию контрагента или слово из комментария документа.

На базе в 2–5 ГБ первое построение идёт примерно от нескольких минут до получаса. На базах в десятки гигабайт — часы. Время зависит от объёма текстовых реквизитов, а не от числа проводок.

Первое построение запускайте в конце рабочего дня. Индексация нагружает диск и процессор, и пользователи заметят замедление.

Включение из встроенного языка

Если базу обслуживает обработка или внешний скрипт, то же самое делается кодом. Пример для внешней обработки, запускаемой на сервере:

Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Запретить Тогда
    ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(РежимПолнотекстовогоПоиска.Разрешить);
КонецЕсли;

// Первое построение: без слияния, целиком
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Ложь);

Сообщить("Индекс актуален: " + ?(ПолнотекстовыйПоиск.ИндексАктуален(), "да", "нет"));

Для выполнения нужны административные права. Обработку запускайте от пользователя с ролью «Полные права».

Какие данные попадут в индекс: настройка объектов

Платформа индексирует только то, что разрешено в конфигурации. У каждого справочника, документа, регистра и отдельного реквизита в Конфигураторе есть свойство «Полнотекстовый поиск» со значениями «Использовать» и «Не использовать».

Где это посмотреть:

  1. Откройте базу в Конфигураторе.
  2. В дереве метаданных выберите объект, например справочник «Контрагенты».
  3. Откройте палитру свойств (Alt+Enter) и найдите группу свойств полнотекстового поиска.
  4. Повторите для реквизитов: у каждого своё значение свойства.

Что обычно стоит в типовых конфигурациях:

  • 📇 справочники контрагентов, номенклатуры, сотрудников — индексируются;
  • 📄 документы — индексируются шапка и комментарий;
  • 🧾 служебные регистры и технические реквизиты — часто исключены;
  • 🗂️ присоединённые файлы — индексируется извлечённый текст, если конфигурация его извлекает.

Изменение свойства в типовой конфигурации снимает объект с поддержки или требует включения возможности изменения. Это усложнит последующие обновления. Перед правкой согласуйте её с тем, кто сопровождает базу.

После изменения свойств индекс нужно очистить и построить заново. Простое обновление учтёт новые правила только для новых и изменённых объектов.

Построение, обновление и слияние индекса

Индекс в 1С состоит из двух частей: основного и дополнительного. Новые и изменённые данные сначала попадают в дополнительный индекс. Слияние переносит их в основной. Пока дополнительный индекс маленький, поиск быстрый. Когда он разрастается, выдача замедляется.

Три операции и когда их делать

ОперацияКогда нужнаНагрузкаРиски
Обновить индексКаждые 1–5 минут в течение дняНизкаяНет
Слияние индексовРаз в сутки, ночьюСредняя или высокаяПоиск замедляется на время слияния
Очистить индексПри сбое индекса или смене настроек объектовНет, но потом полное построениеДо конца построения поиск ничего не находит

В стандартной форме для слияния есть флажок «Разрешить слияние индексов». Если он снят, обновление пишет только в дополнительный индекс.

Регламентные задания

В конфигурациях на БСП обновлением занимаются два задания: «Обновление индекса ППД» и «Слияние индекса ППД» (ППД — полнотекстовый поиск данных). Список заданий открывается в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

Что проверить в каждом задании:

  1. Задание включено (флажок в списке).
  2. Расписание задано. Обновление — каждые несколько минут, слияние — раз в сутки ночью.
  3. В колонке последнего выполнения стоит свежая дата без ошибки.

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

Индекс работает как надо
Выполнено: 0 / 5

Почему полнотекстовый поиск ничего не находит

Пустая выдача — самая частая жалоба. Причин немного, и проверяются они по порядку.

Диагностика: выберите симптом

Синтаксис запроса, который помогает искать точнее

Строка поиска понимает операторы. Их знают немногие, а они резко сужают выдачу:

  • "акт сверки" — фраза в кавычках, слова подряд;
  • счёт И Ромашка — оба слова в одном объекте;
  • Ромашка ИЛИ Лютик — любое из слов;
  • договор НЕ аренда — исключить слово;
  • Ромаш* — по началу слова;
  • #Петров — нечёткий поиск с учётом опечаток.

Если индекс повреждён

Признак — ошибка при обновлении индекса или пустая выдача при актуальном индексе. Порядок ремонта:

  1. В форме управления нажмите «Очистить индекс».
  2. Нажмите «Обновить индекс» и дождитесь полного построения.
  3. Если очистка падает с ошибкой, индекс удаляют вручную вместе с его каталогом.

В файловой базе индекс лежит в папке 1Cv8FTxt рядом с файлом 1Cv8.1CD. В клиент-серверной — в каталоге информационной базы на рабочем сервере кластера, внутри srvinfo.

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

Как ускорить индексацию на больших базах

Когда база перевалила за 50–100 ГБ, поиск начинает мешать: обновление идёт долго, а слияние ночью не успевает закончиться к утру. Несколько приёмов, которые помогают.

Обновление порциями

Метод ПолнотекстовыйПоиск.ОбновитьИндекс(Слияние, Порциями) принимает второй параметр. Значение Истина обрабатывает данные частями. Это снижает пиковую нагрузку: днём задание обновления успевает быстро отработать и не держит ресурсы.

Убрать лишнее из индекса

Чем меньше текста индексируется, тем быстрее всё работает. Кандидаты на исключение:

  • 📝 длинные текстовые реквизиты с логами обмена и служебными сообщениями;
  • 🗃️ регистры, по которым никто не ищет;
  • 📎 тексты присоединённых файлов, если поиск по их содержимому не нужен.

Каждое исключение — правка конфигурации, поэтому собирайте их одним пакетом и вносите вместе с плановым обновлением.

Развести нагрузку по времени и серверам

  • 🌙 Слияние ставьте на окно, когда нет закрытия месяца, резервного копирования и пересчёта итогов.
  • 💾 Каталог с данными кластера держите на SSD: индексация упирается в диск.
  • 🖥️ В кластере из нескольких рабочих серверов можно задать требование назначения функциональности для объекта «Сервис полнотекстового поиска» и закрепить его за менее загруженным сервером. Настраивается в консоли кластера, в свойствах рабочего сервера.

Не ставьте обновление индекса чаще раза в минуту. Выигрыша в актуальности почти нет, а задание начнёт пересекаться само с собой на больших объёмах.

Полнотекстовый поиск в распределённой базе

В распределённой информационной базе (РИБ) индекс не передаётся с обменом. Каждый узел строит его сам, из своих данных.

Что из этого следует:

  1. Полнотекстовый поиск включается в каждом узле отдельно — в главном и в каждом подчинённом.
  2. Регламентные задания обновления и слияния тоже должны работать в каждом узле.
  3. Пока обмен не загрузил данные в узел, поиск их там не найдёт. Пользователь филиала не увидит документ, созданный в центре час назад, если обмен идёт раз в сутки.
  4. Изменение свойств объектов в конфигурации главного узла придёт в подчинённые с обменом. После этого индекс в каждом узле нужно перестроить.

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

Когда полнотекстовый поиск лучше выключить

Поиск нужен не всем. Бывает, что он только тратит ресурсы:

  • 🧪 тестовые и учебные копии базы, где никто ничего не ищет;
  • 📦 архивные базы прошлых лет, открываемые раз в квартал;
  • 🐢 слабые файловые базы на сетевом диске, где индексация заметно тормозит работу.

Выключается поиск в той же форме кнопкой «Отключить». Индекс после этого перестаёт обновляться. Если позже поиск понадобится снова, включите режим, очистите индекс и постройте его заново, иначе в выдаче будут только старые данные.

Частые вопросы

Влияет ли полнотекстовый поиск на размер базы?
Индекс хранится отдельно от таблиц базы, поэтому размер самих данных не меняется, но место на диске он занимает. В базах с большим количеством текстовых реквизитов индекс заметно растёт — следите за свободным местом на томе с базой.
Нужно ли перестраивать индекс после обновления конфигурации?
Если обновление меняло свойства полнотекстового поиска у объектов — да, очистите и постройте заново. Если нет, достаточно обычного обновления по расписанию.
Ищет ли полнотекстовый поиск по числам и номерам документов?
Ищет, если реквизит участвует в индексе. Номер ищите целиком, без префикса и ведущих нулей не всегда находится — проще задать фрагмент со звёздочкой.
Почему после восстановления базы из копии поиск пустой?
Индекс не входит в выгрузку .dt и часто не копируется вместе с файлами базы. Обновите индекс вручную, чтобы построить его по восстановленным данным.
Можно ли включить поиск только для одного справочника?
Только правкой свойств в Конфигураторе: оставить «Использовать» у нужного объекта и выключить у остальных. В режиме Предприятия выборочной настройки нет.