Индекс поиска по данным в 1С 8.3: включение, обновление и ремонт
Содержание
Полнотекстовый поиск в 1С 8.3 включается в форме Все функции → Стандартные → Управление полнотекстовым поиском: нажмите «Включить», затем «Обновить индекс». После первого построения индекса поиск по словам начинает находить документы, справочники и реквизиты. Чтобы новые данные тоже попадали в выдачу, индекс нужно обновлять регулярно — это делают регламентные задания.
Настройка общая для платформы, поэтому порядок одинаков для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигураций. Различается только место, где конфигурация дублирует эту форму в своём меню администрирования. Права нужны административные: обычный пользователь режим поиска не переключит.
Что проверить до включения поиска
Сначала выясните, в каком состоянии поиск сейчас. Часто он уже включён, но индекс давно не обновлялся — тогда «включать» ничего не надо, нужно лишь его догнать.
Как открыть форму управления
Если в главном меню нет пункта «Все функции», включите его:
- Откройте главное меню (кнопка с тремя полосками в заголовке окна).
- Выберите
Сервис → Параметры. - Поставьте флажок «Отображать команду “Все функции”» и нажмите «Применить».
Теперь в том же меню появится Все функции. В дереве откройте ветку Стандартные и запустите «Управление полнотекстовым поиском».
Что показывает форма
В форме видно три вещи, по которым ставится диагноз:
- 🔍 режим поиска — включён или отключён;
- 📅 дата актуальности индекса — по какое время данные проиндексированы;
- ✅ состояние индекса — актуален он или нет.
| Что видите | Что это значит | Что делать |
|---|---|---|
| Поиск отключён | Индекс не строится вообще | Включить и построить индекс |
| Включён, индекс не актуален | Новые данные не попали в индекс | Обновить индекс, проверить регламентные задания |
| Включён, индекс актуален, но ничего не находит | Проблема в настройках объектов или в запросе | Смотреть раздел про пустую выдачу ниже |
| Дата актуальности месячной давности | Регламентное задание не работает | Проверить задания и права службы |
Где ещё бывает эта настройка
В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) флажок полнотекстового поиска вынесен в Администрирование → Общие настройки. Там же обычно есть ссылка на настройку и кнопка обновления индекса. Работает это так же, как стандартная форма платформы: включили в одном месте — включилось везде.
Как включить полнотекстовый поиск в 1С 8.3 в режиме Предприятия
Сама операция занимает минуту. Долгим бывает только первое построение индекса.
- Откройте
Все функции → Стандартные → Управление полнотекстовым поиском. - Нажмите «Включить». Режим сменится на «Включён».
- Нажмите «Обновить индекс». Пойдёт первое построение.
- Дождитесь, пока состояние станет «Индекс актуален», а дата актуальности — текущей.
- Проверьте результат: введите в строку поиска фамилию контрагента или слово из комментария документа.
На базе в 2–5 ГБ первое построение идёт примерно от нескольких минут до получаса. На базах в десятки гигабайт — часы. Время зависит от объёма текстовых реквизитов, а не от числа проводок.
Первое построение запускайте в конце рабочего дня. Индексация нагружает диск и процессор, и пользователи заметят замедление.
Включение из встроенного языка
Если базу обслуживает обработка или внешний скрипт, то же самое делается кодом. Пример для внешней обработки, запускаемой на сервере:
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Запретить Тогда
ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(РежимПолнотекстовогоПоиска.Разрешить);
КонецЕсли;
// Первое построение: без слияния, целиком
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Ложь);
Сообщить("Индекс актуален: " + ?(ПолнотекстовыйПоиск.ИндексАктуален(), "да", "нет"));
Для выполнения нужны административные права. Обработку запускайте от пользователя с ролью «Полные права».
Какие данные попадут в индекс: настройка объектов
Платформа индексирует только то, что разрешено в конфигурации. У каждого справочника, документа, регистра и отдельного реквизита в Конфигураторе есть свойство «Полнотекстовый поиск» со значениями «Использовать» и «Не использовать».
Где это посмотреть:
- Откройте базу в Конфигураторе.
- В дереве метаданных выберите объект, например справочник «Контрагенты».
- Откройте палитру свойств (
Alt+Enter) и найдите группу свойств полнотекстового поиска. - Повторите для реквизитов: у каждого своё значение свойства.
Что обычно стоит в типовых конфигурациях:
- 📇 справочники контрагентов, номенклатуры, сотрудников — индексируются;
- 📄 документы — индексируются шапка и комментарий;
- 🧾 служебные регистры и технические реквизиты — часто исключены;
- 🗂️ присоединённые файлы — индексируется извлечённый текст, если конфигурация его извлекает.
Изменение свойства в типовой конфигурации снимает объект с поддержки или требует включения возможности изменения. Это усложнит последующие обновления. Перед правкой согласуйте её с тем, кто сопровождает базу.
После изменения свойств индекс нужно очистить и построить заново. Простое обновление учтёт новые правила только для новых и изменённых объектов.
Построение, обновление и слияние индекса
Индекс в 1С состоит из двух частей: основного и дополнительного. Новые и изменённые данные сначала попадают в дополнительный индекс. Слияние переносит их в основной. Пока дополнительный индекс маленький, поиск быстрый. Когда он разрастается, выдача замедляется.
Три операции и когда их делать
| Операция | Когда нужна | Нагрузка | Риски |
|---|---|---|---|
| Обновить индекс | Каждые 1–5 минут в течение дня | Низкая | Нет |
| Слияние индексов | Раз в сутки, ночью | Средняя или высокая | Поиск замедляется на время слияния |
| Очистить индекс | При сбое индекса или смене настроек объектов | Нет, но потом полное построение | До конца построения поиск ничего не находит |
В стандартной форме для слияния есть флажок «Разрешить слияние индексов». Если он снят, обновление пишет только в дополнительный индекс.
Регламентные задания
В конфигурациях на БСП обновлением занимаются два задания: «Обновление индекса ППД» и «Слияние индекса ППД» (ППД — полнотекстовый поиск данных). Список заданий открывается в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
Что проверить в каждом задании:
- Задание включено (флажок в списке).
- Расписание задано. Обновление — каждые несколько минут, слияние — раз в сутки ночью.
- В колонке последнего выполнения стоит свежая дата без ошибки.
В файловой базе регламентные задания выполняются только пока база открыта хотя бы у одного пользователя. Если все вышли, индекс не обновляется. Для файловой базы с ночным простоем это нормально: утром первый пользователь запустит задание.
Почему полнотекстовый поиск ничего не находит
Пустая выдача — самая частая жалоба. Причин немного, и проверяются они по порядку.
Синтаксис запроса, который помогает искать точнее
Строка поиска понимает операторы. Их знают немногие, а они резко сужают выдачу:
"акт сверки"— фраза в кавычках, слова подряд;счёт И Ромашка— оба слова в одном объекте;Ромашка ИЛИ Лютик— любое из слов;договор НЕ аренда— исключить слово;Ромаш*— по началу слова;#Петров— нечёткий поиск с учётом опечаток.
Если индекс повреждён
Признак — ошибка при обновлении индекса или пустая выдача при актуальном индексе. Порядок ремонта:
- В форме управления нажмите «Очистить индекс».
- Нажмите «Обновить индекс» и дождитесь полного построения.
- Если очистка падает с ошибкой, индекс удаляют вручную вместе с его каталогом.
В файловой базе индекс лежит в папке 1Cv8FTxt рядом с файлом 1Cv8.1CD. В клиент-серверной — в каталоге информационной базы на рабочем сервере кластера, внутри srvinfo.
Удаляйте каталог индекса только при закрытой базе. В файловой базе все пользователи должны выйти. В клиент-серверной папку удаляют после остановки службы агента сервера 1С, а это обрывает сеансы всех баз кластера. Делайте это вне рабочего времени и предупредите пользователей заранее.
Как ускорить индексацию на больших базах
Когда база перевалила за 50–100 ГБ, поиск начинает мешать: обновление идёт долго, а слияние ночью не успевает закончиться к утру. Несколько приёмов, которые помогают.
Обновление порциями
Метод ПолнотекстовыйПоиск.ОбновитьИндекс(Слияние, Порциями) принимает второй параметр. Значение Истина обрабатывает данные частями. Это снижает пиковую нагрузку: днём задание обновления успевает быстро отработать и не держит ресурсы.
Убрать лишнее из индекса
Чем меньше текста индексируется, тем быстрее всё работает. Кандидаты на исключение:
- 📝 длинные текстовые реквизиты с логами обмена и служебными сообщениями;
- 🗃️ регистры, по которым никто не ищет;
- 📎 тексты присоединённых файлов, если поиск по их содержимому не нужен.
Каждое исключение — правка конфигурации, поэтому собирайте их одним пакетом и вносите вместе с плановым обновлением.
Развести нагрузку по времени и серверам
- 🌙 Слияние ставьте на окно, когда нет закрытия месяца, резервного копирования и пересчёта итогов.
- 💾 Каталог с данными кластера держите на SSD: индексация упирается в диск.
- 🖥️ В кластере из нескольких рабочих серверов можно задать требование назначения функциональности для объекта «Сервис полнотекстового поиска» и закрепить его за менее загруженным сервером. Настраивается в консоли кластера, в свойствах рабочего сервера.
Не ставьте обновление индекса чаще раза в минуту. Выигрыша в актуальности почти нет, а задание начнёт пересекаться само с собой на больших объёмах.
Полнотекстовый поиск в распределённой базе
В распределённой информационной базе (РИБ) индекс не передаётся с обменом. Каждый узел строит его сам, из своих данных.
Что из этого следует:
- Полнотекстовый поиск включается в каждом узле отдельно — в главном и в каждом подчинённом.
- Регламентные задания обновления и слияния тоже должны работать в каждом узле.
- Пока обмен не загрузил данные в узел, поиск их там не найдёт. Пользователь филиала не увидит документ, созданный в центре час назад, если обмен идёт раз в сутки.
- Изменение свойств объектов в конфигурации главного узла придёт в подчинённые с обменом. После этого индекс в каждом узле нужно перестроить.
Отдельный случай — автономное рабочее место и файловые узлы на ноутбуках. Там регламентные задания идут, только пока программа открыта. Если сотрудник работает урывками, индекс отстаёт. Помогает ручное обновление индекса раз в несколько дней или запуск задания при входе.
Когда полнотекстовый поиск лучше выключить
Поиск нужен не всем. Бывает, что он только тратит ресурсы:
- 🧪 тестовые и учебные копии базы, где никто ничего не ищет;
- 📦 архивные базы прошлых лет, открываемые раз в квартал;
- 🐢 слабые файловые базы на сетевом диске, где индексация заметно тормозит работу.
Выключается поиск в той же форме кнопкой «Отключить». Индекс после этого перестаёт обновляться. Если позже поиск понадобится снова, включите режим, очистите индекс и постройте его заново, иначе в выдаче будут только старые данные.