Полнотекстовый поиск тормозит базу: выключаем, чистим индекс и настраиваем обновление
Содержание
Чтобы снять полнотекстовый поиск в 1С 8.3, в типовой конфигурации откройте Администрирование → Общие настройки и уберите флажок полнотекстового поиска в одноимённой группе. Если такого пункта нет, тот же переключатель есть в стандартной форме платформы Все функции → Стандартные → Управление полнотекстовым поиском.
После отключения перестают работать регламентные задания обновления и слияния индекса, а файлы индекса можно очистить, чтобы освободить диск. Ниже порядок, как понять, что тормозит именно поиск, как выключить его без вреда для данных и как оставить поиск, но сделать его незаметным для пользователей.
Сначала убедитесь, что тормозит именно поиск
Полнотекстовый поиск часто обвиняют зря. Индекс обновляется в фоне, и в момент обновления нагрузка на диск и процессор действительно растёт. Но медленное проведение документов или долгий запуск чаще связаны с другим.
Признаки, что виноват индекс:
- 🐢 база «подвисает» волнами, примерно с одним интервалом (обычно это расписание регламентного задания);
- 💾 папка индекса весит гигабайты и быстро растёт;
- 🔄 в списке фоновых заданий постоянно висит обновление индекса полнотекстового поиска ;
- 📎 в базе много присоединённых файлов, и включено извлечение текста из них;
- 🔍 строка поиска по всем данным отвечает десятки секунд или выдаёт ошибку.
Где проверить:
- Откройте
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. - Найдите задания со словами «полнотекстового поиска» и «извлечение текста». Посмотрите расписание и длительность последних запусков.
- Сравните время «подвисаний» с моментами запуска заданий.
Где лежит индекс:
| Режим базы | Расположение индекса |
|---|---|
| Файловая | В каталоге базы рядом с 1Cv8.1CD, папка 1Cv8FTxt (в новых версиях платформы — 1Cv8FTxt2) |
| Клиент-серверная | На сервере 1С в каталоге кластера reg_1541, в подпапке с идентификатором базы, папка с тем же именем |
Размер папок индекса на сервере Windows быстро считает PowerShell. Путь к каталогу кластера подставьте свой:
Get-ChildItem "C:\Program Files\1cv8\srvinfo\reg_1541" -Directory -Recurse -Filter "1Cv8FTxt*" |
ForEach-Object { "{0} {1:N1} ГБ" -f $_.FullName, ((Get-ChildItem $_.FullName -Recurse -File | Measure-Object Length -Sum).Sum / 1GB) }
Если индекс занимает 5–10 ГБ при базе в 15 ГБ, а задание обновления идёт по 20–40 минут, причина найдена. Если папка маленькая и задания отрабатывают за секунды, отключение поиска вряд ли ускорит работу.
Как отключить полнотекстовый поиск в режиме Предприятие
Это основной и самый безопасный способ. Конфигурация не меняется, данные не трогаются, включить обратно можно в один клик.
В типовых конфигурациях (БП 3.0, ЗУП 3.1, УТ 11, КА, ERP)
- Зайдите в базу пользователем с полными правами.
- Откройте
Администрирование → Общие настройки. - Найдите группу «Полнотекстовый поиск» (в ней же ссылка на настройку поиска и извлечения текстов).
- Снимите флажок полнотекстового поиска.
- Программа отключит режим поиска и связанные регламентные задания.
Путь одинаков для всех конфигураций на Библиотеке стандартных подсистем: настройки поиска живут в общем разделе администрирования, а не в учётных разделах.
Через стандартную форму платформы
Подходит для нетиповых конфигураций и старых релизов, где флажка в администрировании нет.
- Включите пункт «Все функции»:
Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”». - Откройте
Главное меню → Все функции → Стандартные → Управление полнотекстовым поиском. - Нажмите кнопку отключения полнотекстового поиска.
- Там же видна дата актуальности индекса и есть команды обновления и очистки.
Отключение не удаляет индекс автоматически. Файлы остаются на диске, пока вы не нажмёте очистку индекса. Если цель — освободить место, сделайте оба шага.
Отключение поиска кодом, из консоли и в Конфигураторе
Иногда в интерфейс не попасть: база тормозит так, что формы не открываются, или нужно выключить поиск сразу в десятке баз.
Внешняя обработка или консоль кода
Режимом поиска управляет глобальный объект ПолнотекстовыйПоиск. Код выполняется на сервере в привилегированном режиме или под администратором:
&НаСервере
Процедура ОтключитьППДНаСервере()
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(РежимПолнотекстовогоПоиска.Запретить);
КонецЕсли;
ПолнотекстовыйПоиск.ОчиститьИндекс();
Сообщить("Полнотекстовый поиск отключён, индекс очищен");
КонецПроцедуры
В типовой конфигурации после такого кода стоит открыть Администрирование → Общие настройки и проверить, что флажок тоже снят. Иначе программа может считать поиск включённым и снова попытаться запустить задания.
Консоль кластера: временно остановить все задания
В клиент-серверном варианте можно в консоли администрирования серверов открыть свойства информационной базы и включить блокировку регламентных заданий.
Это остановит ВСЕ регламентные задания базы: обмены, загрузку курсов, проверку почты, резервное копирование средствами 1С. Используйте блокировку только как временную меру на время разбора и обязательно снимите её потом.
Конфигуратор: исключить объекты из индекса
У каждого объекта метаданных и реквизита есть свойство «Полнотекстовый поиск» со значениями «Использовать» и «Не использовать». Так можно убрать из индекса тяжёлые объекты (например, журналы с длинными комментариями), оставив поиск по справочникам.
Минус способа — изменение конфигурации. В типовой базе на поддержке это усложнит обновления, поэтому для неё лучше не трогать свойства, а настраивать расписание.
Настройка индексации вместо полного отключения
Пользователи привыкли искать контрагента по фрагменту ИНН или документ по слову из комментария. Если поиск им нужен, его не выключают, а убирают из рабочего времени.
Индекс в 1С обслуживают два процесса:
| Процесс | Что делает | Нагрузка | Рекомендуемое время |
|---|---|---|---|
| Обновление индекса | Добавляет в индекс изменённые данные порциями | Небольшая, но частая | Раз в 30–60 минут или реже |
| Слияние индекса | Сводит накопленные части индекса в основной | Высокая, долгая | Ночью, раз в сутки |
| Извлечение текста | Читает содержимое присоединённых файлов | Высокая на больших файлах | Ночью или выключить |
Как поменять расписание:
- Откройте
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. - Откройте задание обновления индекса полнотекстового поиска.
- Нажмите ссылку расписания и задайте интервал. Например, повтор каждые 3600 секунд с 7:00 до 21:00.
- Для задания слияния поставьте ежедневный запуск в 2:00.
- Для извлечения текста — окно с 1:00 до 5:00 или снимите флажок «Включено».
Практический ориентир: при 30–50 активных пользователях и обновлении раз в 10 минут фоновая нагрузка заметна. Интервал в час почти всегда снимает жалобы, а свежие документы попадают в поиск с задержкой не больше часа.
Пока индекс не актуален, поиск находит только то, что уже проиндексировано. Свежий документ, созданный 5 минут назад, может не найтись. Это не ошибка, а следствие редкого обновления.
Очистка и полная перестройка индекса
Индекс со временем раздувается, а после аварийного завершения сервера или копирования базы «на горячую» может повредиться. Тогда поиск выдаёт ошибки или пустые результаты, а обновление идёт бесконечно.
Порядок перестройки:
- Выберите время без пользователей: обновление индекса с нуля на базе в 20–30 ГБ занимает от получаса до нескольких часов.
- Откройте
Все функции → Стандартные → Управление полнотекстовым поискомили форму настройки поиска изАдминистрирование → Общие настройки. - Нажмите очистку индекса.
- Нажмите обновление индекса и дождитесь окончания.
- Выполните слияние индекса, если команда доступна отдельно.
- Проверьте дату актуальности индекса — она должна стать текущей.
Если форма не открывается или очистка падает с ошибкой, индекс удаляют вручную:
- Предупредите пользователей и завершите все сеансы базы.
- Для клиент-серверной базы остановите службу «Агент сервера 1С:Предприятия».
- Удалите или переместите в сторону папку
1Cv8FTxt(1Cv8FTxt2) этой базы. - Запустите службу, зайдите в базу и постройте индекс заново.
Остановка службы агента сервера обрывает работу всех баз на этом сервере, а не одной. Делайте это в нерабочее время. Перед удалением сделайте копию папки — так можно откатиться, если ошиблись каталогом базы.
В каталоге reg_1541 подпапки названы идентификаторами баз. Нужную найдёте по свойствам базы в консоли кластера или по дате изменения файлов. Сами данные базы хранятся в СУБД, а не в этой папке, поэтому удаление индекса их не затрагивает.
Антивирус, сеть и диск: что усиливает тормоза
Индекс — это тысячи файлов, которые постоянно переписываются. Если рядом работает антивирус в режиме постоянной проверки, каждое обновление индекса превращается в проверку сотен файлов.
Что добавить в исключения антивируса на сервере 1С:
- 📁 каталог кластера
reg_1541целиком (там индекс и журнал регистрации); - 📁 каталог файловой базы, если база файловая;
- ⚙️ процессы
rphost.exe,rmngr.exe,ragent.exe; - 📁 временный каталог пользователя, под которым работает служба 1С.
Для файловых баз отдельная история — сетевой диск. Если база лежит на общей папке, индекс тоже лежит там, и каждое его обновление гоняет данные по сети. На 3–5 пользователях это терпимо, на 10–15 уже заметно.
Что помогает:
- Держите файловую базу на SSD сервера, а не на NAS с медленными дисками.
- Запускайте обновление индекса на том компьютере, где лежит база, а не у пользователя по сети.
- Если пользователей больше 10–15, присмотритесь к переводу базы в клиент-серверный вариант.
Проверьте и свободное место. Во время слияния индекс временно занимает больше места, чем обычно. При заполненном на 95% диске слияние может завершиться ошибкой и оставить индекс в неполном виде.
Чем заменить полнотекстовый поиск
Если поиск отключён, пользователи остаются со стандартными инструментами платформы. Их хватает для большинства ежедневных задач.
| Инструмент | Как вызвать | Когда подходит |
|---|---|---|
| Поиск в списке | Строка поиска над списком или Ctrl+F | Найти контрагента, номенклатуру, документ по номеру |
| Отмена поиска в списке | Кнопка-крестик в строке поиска или Ctrl+Q | Вернуть полный список |
| Отбор по колонке | Правой кнопкой по значению ячейки | Все документы одного контрагента |
| Расширенный поиск | Alt+F в списке | Поиск по конкретной колонке с условием |
| Отчёты с отбором | Универсальный отчёт и типовые отчёты | Выборки по реквизитам за период |
Отдельный случай — когда «снять поиск» означает просто убрать фильтр в списке. Если список показывает два документа вместо сотни, значит, в нём остался поиск или отбор. Нажмите крестик в строке поиска или Ctrl+Q, а отбор снимите в настройках списка.
Внешние поисковые системы (например, отдельный поисковый движок с выгрузкой данных из 1С) встречаются в крупных внедрениях. Это доработка под заказ: требуется обмен данными, отдельный сервер и поддержка. Для бухгалтерии на 20–50 человек проще настроить расписание стандартного индекса.