Полнотекстовый поиск в 1С 8.3: включение, индекс и ошибки

· 9 мин

Содержание

Чтобы запустить полнотекстовый поиск в 1С 8.3, включите флажок в Администрирование → Общие настройки (группа «Полнотекстовый поиск»), затем постройте индекс кнопкой «Обновить индекс» и убедитесь, что работают регламентные задания обновления и слияния индекса. Без последнего поиск включится, но через неделю перестанет находить новые документы.

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

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

Полнотекстовый поиск строит отдельный индекс — набор файлов рядом с базой. Индекс не хранится в таблицах базы, поэтому у него свои требования к диску и правам.

📌 Что нужно подготовить:

  • 💾 Свободное место. Индекс занимает примерно 10–30% от объёма данных базы. Для базы в 20 ГБ закладывайте 3–6 ГБ с запасом на слияние: при слиянии временно нужны две копии.
  • 🔐 Права на запись. В файловой базе индекс лежит в папке 1Cv8FTxt внутри каталога базы. Пользователи Windows должны иметь право на запись в этот каталог. В клиент-серверной базе индекс хранится в каталоге кластера, обычно srvinfo\reg_1541\<GUID базы>\1Cv8FTxt, и писать туда должна учётная запись службы сервера 1С (по умолчанию USR1CV8).
  • 🛡 Антивирус. Добавьте папку 1Cv8FTxt в исключения проверки «на лету». Антивирус, который сканирует каждый файл индекса при записи, замедляет обновление в разы и иногда блокирует файлы.
  • ⏰ Окно для первого построения. Первая индексация большой базы идёт часами и грузит процессор. Запускайте вечером или в выходной.

Служба Windows Search («Индексирование») к поиску в 1С отношения не имеет. Включать или настраивать её не нужно — 1С строит индекс своими средствами.

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

Включаем полнотекстовый поиск в интерфейсе 1С

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

Способ 1. Через раздел «Администрирование»

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

Флажок доступен только пользователю с полными правами. Если группы нет на экране, проверьте, что вы вошли под администратором.

Способ 2. Через «Все функции»

Этот путь работает в любой конфигурации, даже нетиповой:

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

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

Если в типовой конфигурации включить поиск только через «Все функции», флажок в «Общих настройках» может остаться снятым, а регламентные задания — выключенными. Для БП, ЗУП и УТ используйте способ 1: он включает и поиск, и задания обновления.

Сервер 1С и консоль кластера: где работает индексация

Отдельной «службы индексации» у 1С нет. Индекс обновляют рабочие процессы сервера через регламентные задания. Поэтому в клиент-серверной базе поиск чаще всего не работает не из-за настроек в программе, а из-за настроек кластера.

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

Откройте консоль администрирования серверов 1С:Предприятия и проверьте три вещи:

  1. Блокировка регламентных заданий. Откройте свойства информационной базы. Флажок «Блокировка регламентных заданий включена» должен быть снят. Его часто ставят на копиях баз и забывают снять в рабочей — тогда индекс не обновляется никогда.
  2. Требования назначения функциональности. В свойствах рабочего сервера, если заданы правила, найдите тип объекта «Сервис полнотекстового поиска». Если для него стоит «Не назначать» на всех серверах, поиск в этой базе работать не будет.
  3. Фоновые задания и место. На сервере, где выполняются фоновые задания, должен быть свободный диск в каталоге кластера.

Изменения в свойствах рабочего сервера применяются к кластеру целиком. Делайте их вне рабочего времени: при перезапуске рабочих процессов у пользователей оборвутся сеансы.

Особенность файловой базы

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

  • 🖥 держать запущенный сеанс на отдельном компьютере;
  • 🔄 перевести базу в клиент-серверный режим.

Индекс: первое построение, обновление и слияние

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

Какие регламентные задания отвечают за поиск

В типовых конфигурациях за индекс отвечают два задания:

ЗаданиеЧто делаетРазумная частота
Обновление индекса полнотекстового поискаДобавляет изменённые данные в индекскаждые 5–15 минут днём
Слияние индекса полнотекстового поискаОбъединяет основной и дополнительный индексраз в сутки, ночью

Посмотреть и изменить расписание можно в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Откройте задание и проверьте, что оно включено, и что в колонке результата нет ошибок.

Если документы «есть, но не находятся»

Обычно это значит, что индекс отстал. Порядок действий:

  1. Откройте форму управления полнотекстовым поиском.
  2. Посмотрите дату последнего обновления. Если она старше суток — задание обновления не выполняется.
  3. Нажмите «Обновить индекс» вручную.
  4. Разберитесь с причиной по журналу регистрации: отбор по событию «Регламентное задание».

Поиск по вложенным файлам

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

Для документов Word и Excel обычно хватает стандартных средств. Для PDF на сервере Windows нужен установленный фильтр PDF (iFilter), иначе текст из PDF не извлекается. Сканы без распознанного текста в поиск не попадут вообще.

Как правильно искать: язык запросов

Поиск запускается из поля в верхней части окна 1С (глобальный поиск, Ctrl+F) или из формы полнотекстового поиска. Он учитывает словоформы: по запросу «договор» найдутся «договора» и «договором».

Основные операторы:

ЗапросЧто найдёт
Ромашка поставкаданные, где есть оба слова
Ромашка ИЛИ Лютиклюбое из двух слов
Ромашка НЕ арендапервое слово без второго
"Ромашка плюс"точную фразу
Ромаш*слова, начинающиеся на «ромаш»

💡 Звёздочку ставьте только в конце слова и не короче 3–4 букв перед ней. Запрос вида ро* перебирает огромную часть индекса и работает медленно.

Поиск по ИНН, номеру счёта или телефону работает, если этот реквизит включён в индекс. Если по номеру ничего не находится, а по названию находится — реквизит исключён из полнотекстового поиска в конфигурации.

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

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

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

Пересоздание индекса: когда и как

Полное пересоздание — универсальное лекарство от повреждённого индекса. Делается из формы управления:

  1. Нажмите «Очистить индекс».
  2. Нажмите «Обновить индекс».
  3. Дождитесь окончания и проверьте дату обновления.

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

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

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

Полнотекстовый поиск сам по себе почти не нагружает базу. Тормоза появляются из-за неудачного расписания и лишних данных в индексе.

✅ Что помогает на практике:

  • ⏱ Разведите задания по времени. Обновление — часто и мелкими порциями, слияние — ночью, когда нет пользователей и не идёт резервное копирование.
  • 🚫 Не ставьте слияние на время бэкапа или закрытия месяца. Оба процесса активно пишут на диск.
  • 💽 Держите каталог кластера на SSD. Индекс — это много мелких файлов, на HDD обновление идёт заметно медленнее.
  • 🛡 Исключения в антивирусе — для 1Cv8FTxt и всего каталога srvinfo.
  • 🧹 Регулярное слияние. Если слияние долго не выполнялось, дополнительный индекс разрастается, и поиск замедляется. Признак — растёт время ответа глобального поиска.

Мини-кейс: индекс не обновлялся полтора месяца

Бухгалтерия на сервере 1С, около 30 пользователей. Жалоба: глобальный поиск не находит контрагентов, заведённых в последние недели. Флажок поиска включён, задания в списке включены.

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

Вывод простой: после любого восстановления или копирования базы откройте её свойства в консоли и проверьте блокировку заданий. Это занимает минуту.

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

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

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

Поиск запущен правильно, если
Выполнено: 0 / 6

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

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