К статье
Практический материал

Администрирование · 12 мин

Слияние индекса ППД в 1С: что это и как правильно выполнить

Что такое слияние индекса полнотекстового поиска данных (ППД) в 1С, когда его запускать, как выполнить вручную и регламентным заданием, типичные ошибки.

Полнотекстовый поиск данных (ППД) в 1С позволяет находить документы, справочники и другие объекты по произвольным словам и фразам, как в обычном поисковике. Для этого платформа строит специальный индекс — структуру, в которой зафиксировано, какие слова в каких объектах встречаются. Со временем этот индекс становится фрагментированным, и операция слияния индекса ППД приводит его в оптимальное состояние.

Многие администраторы встречают пункт «Слияние индексов» в диалоге управления полнотекстовым поиском, но не до конца понимают, что происходит при его запуске и нужно ли выполнять операцию регулярно. Неправильное понимание приводит к двум крайностям: либо индекс годами не обслуживается и поиск замедляется, либо слияние запускается слишком часто и создаёт лишнюю нагрузку на сервер.

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

Что такое полнотекстовый поиск данных и его индекс

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

Индекс ППД физически хранится отдельно от основных данных информационной базы. В файловом режиме это файлы в служебном каталоге базы, в клиент-серверном — данные в СУБД. Важно понимать: индекс — это не копия данных, а вспомогательная структура. Его можно полностью удалить и построить заново без потери учётной информации, хотя построение на большой базе займёт заметное время.

Что происходит при слиянии индекса

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

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

Ключевой момент: слияние не индексирует новые данные. Если после последнего обновления в базе появились новые документы, они попадут в поиск только после операции обновления индекса. Слияние работает исключительно с тем, что уже проиндексировано.

Обновление и слияние: в чём разница

Обновление индекса

Добавляет в индекс новые и изменённые объекты. Нужно, чтобы свежие данные находились поиском. Выполняется часто — по расписанию или после ввода документов.

Слияние индекса

Оптимизирует уже построенный индекс: сливает фрагменты, удаляет устаревшие записи. Новые данные не добавляет. Выполняется реже — раз в несколько дней или недель.

Очистка индекса

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

Когда слияние действительно нужно

Однозначного расписания, подходящего всем базам, не существует — частота зависит от интенсивности изменения данных. Ориентировочные признаки и ситуации, при которых стоит выполнить слияние:

  • поиск по базе стал заметно медленнее, хотя объём данных вырос незначительно;
  • обновление индекса выполняется регулярно (ежедневно или чаще), а слияние не запускалось неделями;
  • после массовой загрузки или изменения данных — например, переноса остатков, обработки большого пакета документов;
  • после удаления значительного количества объектов из базы;
  • в рамках регулярного регламентного обслуживания — обычно достаточно раза в неделю в нерабочее время.

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

Поиск стал медленнееВероятна фрагментация индекса

Выполнить слияние и сравнить скорость поиска до и после

Новые документы не находятсяИндекс не обновлён

Запустить обновление индекса, а не слияние

Поиск выдаёт ошибки или ничего не находитВозможно повреждение индекса

Очистить индекс и построить заново

Индекс не обновлялся давноДанные в индексе устарели

Проверить настройку регламентного задания обновления

Как выполнить слияние вручную

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

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

Для клиент-серверного режима и автоматизации удобнее использовать встроенный язык. Операции управления индексом доступны через менеджер полнотекстового поиска:

bsl
// Слияние индекса полнотекстового поиска
ПолнотекстовыйПоиск.СлитьИндекс();

// Обновление индекса (добавление новых данных)
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Ложь);

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

Автоматизация через регламентные задания

В типовых конфигурациях на базе БСП предусмотрены регламентные задания для обслуживания ППД: обновление индекса и слияние индекса. Их расписание настраивается в разделе администрирования, в списке регламентных и фоновых заданий.

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

Риски, ограничения и типичные ошибки

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

Типичные ошибки
01
Путать слияние с обновлением: администратор запускает слияние, ожидая, что новые документы начнут находиться, — но для этого нужно обновление индекса.
02
Запускать слияние ежедневно или чаще: лишняя нагрузка без выигрыша, прирост скорости поиска от этого не увеличивается.
03
Никогда не выполнять слияние: индекс фрагментируется, поиск постепенно деградирует, и пользователи отключают ППД как «бесполезный».
04
Выполнять слияние в рабочее время на файловой базе: пользователи сталкиваются с блокировками и замедлением работы.
05
Не проверять результат: после обслуживания стоит выполнить несколько контрольных поисковых запросов.

Проверка результата и альтернативы

После слияния убедитесь, что поиск работает корректно: выполните запросы по известным документам, номенклатуре и контрагентам, сравните скорость отклика с прежней. Если поиск по-прежнему медленный или выдаёт ошибки, вероятно, индекс повреждён — тогда поможет очистка индекса с последующим полным построением.

Контрольные точки

Как проверить результат

Поиск по известной фразе из документа
Норма

Документ находится быстро, в выдаче нет дублей

Тревожный признак

Документ не найден или поиск занимает десятки секунд

Поиск по объекту, созданному вчера
Норма

Объект находится после обновления индекса

Тревожный признак

Не находится — индекс не обновлялся, проверьте регламентное задание

Журнал регистрации после задания слияния
Норма

Есть событие успешного завершения

Тревожный признак

Ошибки фонового задания — нужно разбирать причину

Объём служебных данных индекса
Норма

После слияния объём уменьшился или не вырос

Тревожный признак

Индекс растёт без остановки — проверьте состав индексируемых объектов

Если полнотекстовый поиск в базе не используется (например, пользователи работают только по отборам и номерам документов), ППД можно полностью отключить — это снимет нагрузку на обновление индекса и освободит место. Решение принимают осознанно: повторное включение потребует полного построения индекса, что на большой базе займет часы.

Маршрут решения

Как выбрать действие

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

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

Удаляет ли слияние индекса какие-то данные из базы?

Нет. Слияние работает только со служебной структурой индекса: объединяет фрагменты и удаляет устаревшие записи о старых версиях объектов. Документы, справочники и другие учётные данные не затрагиваются.

Как часто нужно выполнять слияние индекса?

Для большинства баз достаточно раза в неделю в нерабочее время. На небольших базах с редкими изменениями — раз в месяц или по факту замедления поиска. Ежедневное слияние избыточно и лишь создаёт нагрузку.

Чем слияние отличается от обновления индекса?

Обновление добавляет в индекс новые и изменённые объекты — без него свежие данные не находятся поиском. Слияние ничего не добавляет: оно оптимизирует уже построенный индекс, ускоряя поиск и уменьшая его объём.

Можно ли выполнять слияние при работающих пользователях?

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

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

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

Нужно ли слияние, если полнотекстовый поиск отключён?

Нет. Если ППД выключен, индекс не поддерживается и не используется. Слияние имеет смысл только для баз, где поиск включён и реально применяется пользователями.

Итог

Что важно запомнить

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