Индекс полнотекстового поиска в 1С: когда он устаревает и как вернуть поиску точность
Содержание
Индекс ППД обновляют в разделе Администрирование → Общие настройки → Полнотекстовый поиск: откройте настройку поиска и нажмите «Обновить индекс». ППД — это полнотекстовый поиск данных, а не план счетов
: индекс хранит слова из справочников и документов, чтобы строка поиска находила их за секунды. Если обновлять индекс некому, поиск начинает «не видеть» свежие записи.
Типичная картина: бухгалтер вчера завёл контрагента «Стройресурс», сегодня ищет его через строку поиска — и получает пустой результат. В списке контрагентов он есть. Значит, база работает, а индекс полнотекстового поиска отстал от данных. Правильно выполнить обновление индекса ППД — дело пяти минут, если знать, где кнопка и почему регламентное задание перестало работать.
Что хранит индекс ППД и почему он отстаёт от базы
Полнотекстовый поиск в 1С:Предприятии 8.3 ищет не по таблицам базы напрямую. Он ищет по отдельному индексу — набору файлов, где каждое слово привязано к объектам, в которых оно встречается.
Индекс состоит из двух частей:
- 📦 основной индекс — большой, оптимизированный, по нему поиск идёт быстро;
- ➕ дополнительный индекс — небольшая «надстройка», куда попадают изменения после последнего слияния.
Отсюда два разных действия, которые часто путают:
| Действие | Что делает | Нагрузка | Как часто |
|---|---|---|---|
| Обновление | Добавляет новые и изменённые объекты в дополнительный индекс | Низкая | Часто, в течение дня |
| Слияние | Переносит дополнительный индекс в основной | Заметная | Раз в сутки, обычно ночью |
| Очистка + полное обновление | Строит индекс заново с нуля | Высокая, на больших базах — часы | Только при сбоях |
Какие объекты попадают в индекс, решает разработчик конфигурации: у справочников, документов и их реквизитов есть свойство «Полнотекстовый поиск» со значениями «Использовать» и «Не использовать». В типовых конфигурациях это уже настроено. Пользователю менять ничего не нужно.
💡 Если дополнительный индекс долго не сливают, он разрастается, и поиск замедляется. Поэтому одного обновления мало — слияние тоже должно выполняться.
Когда индекс полнотекстового поиска требует обновления вручную
В нормальной базе руками ничего делать не нужно: регламентные задания держат индекс в актуальном состоянии. Ручное вмешательство нужно в таких случаях:
- 🔍 поиск не находит документы и элементы, созданные недавно;
- 🐢 поиск по базе стал заметно медленнее, чем раньше;
- 📥 в базу загрузили большой объём данных: перенос из другой программы, обмен за длительный период, загрузку из файла;
- 🔄 после обновления конфигурации, если в новой версии изменился состав индексируемых объектов;
- 📂 базу восстановили из выгрузки
.dtили скопировали каталог файловой базы без папки индекса; - ⚠️ в журнале регистрации появляются ошибки полнотекстового индексирования.
Проверить состояние индекса просто. В форме настройки полнотекстового поиска программа показывает, актуален индекс или требует обновления, и дату актуальности. Если дата отстаёт на дни или недели — регламентное задание не работает , и разбираться нужно с ним, а не только жать кнопку.
Как обновить индекс ППД в 1С: три способа
Порядок — от простого к радикальному. Начинайте с первого.
Способ 1. Через раздел «Администрирование» (БП 3.0, ЗУП 3.1, УТ 11)
Подходит для всех типовых конфигураций на БСП. Нужны права администратора.
- Откройте
Администрирование → Общие настройки. - Найдите группу «Полнотекстовый поиск» и убедитесь, что флажок поиска включён.
- Перейдите по ссылке настройки полнотекстового поиска — откроется форма управления индексом.
- Посмотрите статус индекса и дату актуальности.
- Нажмите «Обновить индекс» и дождитесь окончания.
- Проверьте результат: найдите через строку поиска тот самый «потерянный» объект.
Обновление выполняется в фоне. На базе в 5–10 ГБ с небольшим отставанием это занимает минуты. Если индекс не обновлялся месяцами — дольше.
Способ 2. Через стандартную обработку платформы
Этот путь есть в любой конфигурации, даже нетиповой, потому что форма встроена в платформу.
- Откройте
Главное меню (☰) → Сервис → Параметрыи включите флажок, который показывает команду «Функции для технического специалиста» (в старых релизах платформы она называлась «Все функции»). - Откройте
Главное меню → Функции для технического специалиста. - Разверните ветку
Стандартныеи выберите «Управление полнотекстовым поиском». - Нажмите «Обновить индекс».
В этой же форме есть флажок, разрешающий слияние индекса, и команда очистки.
Способ удобен, когда в нетиповой конфигурации нет раздела администрирования или права на него урезаны. Сама форма одинакова для файловой и серверной базы: разница только в том, где физически идёт индексирование.
Способ 3. Полная перестройка: очистить и построить заново
Нужна, когда обновление падает с ошибкой, индекс повреждён или поиск выдаёт странные результаты: находит удалённые объекты, не находит существующие.
- Выберите время, когда в базе мало пользователей. На больших базах перестройка нагружает процессор и диск.
- В форме управления полнотекстовым поиском нажмите «Очистить индекс ».
- Сразу после этого нажмите «Обновить индекс» — программа проиндексирует все объекты заново.
- Дождитесь окончания и выполните слияние, если форма предлагает его отдельно.
Пока индекс перестраивается, поиск в базе фактически не работает — предупредите пользователей заранее.
Обновление индекса ППД в клиент-серверной базе
В клиент-серверном варианте всё тяжёлое делает сервер 1С: индексирование выполняет рабочий процесс, а файлы индекса лежат на сервере, а не у пользователя.
Где лежит индекс
Индекс хранится в каталоге кластера, в папке конкретной информационной базы:
- 🪟 Windows:
srvinfo\reg_1541\<GUID базы>\— сам каталогsrvinfoзадаётся при установке службы сервера; - 🐧 Linux: обычно
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID базы>/.
Внутри — папка индекса, имя которой начинается с 1Cv8FTxt. GUID базы виден в консоли администрирования серверов, в свойствах информационной базы.
У файловой базы индекс лежит рядом с файлом 1Cv8.1CD, в той же папке.
Что проверить на сервере
Если индекс в серверной базе не обновляется, пройдите по списку:
- Блокировка регламентных заданий. Откройте консоль администрирования, свойства информационной базы. Если там стоит флажок «Блокировка регламентных заданий включена», ни обновление, ни слияние не запустятся. Такой флажок часто остаётся после копирования рабочей базы в тестовую.
- Свободное место на диске сервера. Индекс большой базы занимает гигабайты, при слиянии временно нужно ещё столько же.
- Антивирус. Если он сканирует каталог кластера, файлы индекса блокируются на запись. Каталог
reg_1541добавляют в исключения. - Нагрузка. Полное индексирование большой базы съедает память рабочего процесса. Если на сервере настроены требования назначения функциональности, фоновые задания можно вынести на отдельный рабочий сервер.
Удалять папку индекса вручную на работающем сервере нельзя: рабочий процесс держит файлы открытыми. Если команда «Очистить индекс» не срабатывает, удаление папки — крайняя мера. Её делают только после остановки службы сервера 1С, а остановка обрывает сеансы всех пользователей всех баз кластера. Планируйте это на нерабочее время и предупредите людей.
Автоматическое обновление индекса ППД
Чтобы индекс не отставал, в типовых конфигурациях есть два регламентных задания:
- ⏱ «Обновление индекса ППД» — добавляет изменения в индекс;
- 🌙 «Слияние индекса ППД» — объединяет дополнительный индекс с основным.
В новых версиях конфигураций рядом бывает задание по извлечению текста из присоединённых файлов: оно нужно, чтобы поиск находил слова внутри вложенных документов.
Как проверить и настроить расписание
- Откройте
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. - Найдите оба задания по названию.
- Проверьте, что они включены и есть дата последнего успешного выполнения.
- Откройте задание двойным щелчком и при необходимости поправьте расписание.
Разумная схема для базы на 20–50 пользователей: обновление — каждые 10–30 минут в рабочее время, слияние — раз в сутки ночью, например в 02:00. Если в базе одновременно работает ночная выгрузка или резервное копирование , разведите их по времени.
Особенность файловой базы
В файловом варианте нет сервера, который бы сам запускал задания. Регламентные задания выполняет один из клиентских сеансов. Если базу никто не открывает ночью, ночное слияние просто не случится.
Варианты решения:
- держать на отдельном компьютере постоянно открытый сеанс, который выполняет регламентные задания;
- запускать 1С по расписанию Windows с параметром, принудительно разрешающим выполнение регламентных заданий в этом сеансе.
Пример ярлыка или задачи планировщика:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Base\Buh" /N"Регламент" /P"пароль" /AllowExecuteScheduledJobs -Force
Для такого запуска заведите отдельного пользователя с нужными правами, а пароль не храните в ярлыке на общем рабочем столе.
Обновление индекса из кода
Если нужно встроить обновление в свою обработку или регламент, используйте методы платформы:
Если ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
Если Не ПолнотекстовыйПоиск.ИндексАктуален() Тогда
// Первый параметр — выполнять ли слияние, второй — индексировать порциями
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Ложь);
КонецЕсли;
// Ночью: слияние дополнительного индекса с основным
// ПолнотекстовыйПоиск.ОбновитьИндекс(Истина);
КонецЕсли;
Код выполняйте на сервере и от пользователя с административными правами. Индексирование порциями (второй параметр Истина) полезно, когда нужно обновлять индекс маленькими шагами и не держать процесс надолго.
Ошибки при обновлении индекса ППД и как их снять
Ошибки индексирования видно в журнале регистрации: Администрирование → Обслуживание → Журнал регистрации, отбор по уровню «Ошибка» и по событиям, связанным с полнотекстовым индексированием. Текст ошибки подскажет направление.
Если не помогло
- Проверьте, включён ли полнотекстовый поиск вообще: при выключенном режиме обновление ничего не делает.
- Убедитесь, что нужный вид объектов участвует в поиске. В нетиповой или доработанной конфигурации у справочника может стоять «Не использовать» — тогда его элементы не попадут в индекс ни при каком обновлении. Это меняет разработчик в конфигураторе.
- Обновите платформу до актуальной версии из ветки, которую поддерживает ваш релиз конфигурации: ошибки механизма полнотекстового поиска исправляются в новых сборках.