Почему после обновления 1С перестал работать поиск по партнерам и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

При активной работе в типовых конфигурациях 1С (таких как 1С:ERP, 1С:Комплексная автоматизация или 1С:Управление торговлей) пользователи часто сталкиваются с ситуацией, когда после обновления информационной базы встроенная строка поиска в списках документов и справочников перестает возвращать результаты. При этом поиск по сочетанию клавиш Ctrl+F продолжает находить нужные элементы без каких-либо проблем.

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

Почему поиск через строку ввода не работает, а Ctrl+F находит данные

Разберем различия в логике работы этих двух инструментов:

  1. Стандартная строка поиска динамического списка: в типовых решениях поле быстрого поиска над списком использует механизм полнотекстового поиска платформы. В программном коде вызывается метод:
    
    СписокРезультатов = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска, РазмерПорции);
    СписокРезультатов.ПерваяЧасть();
    
    Этот метод обращается не напрямую к таблицам базы данных в СУБД, а к специальным индексным файлам полнотекстового поиска (расположенным в каталоге 1Cv8FTxt). Если индекс поврежден, устарел или не актуализирован после обновления структуры метаданных, поиск возвращает пустое количество записей.
  2. Поиск по сочетанию клавиш Ctrl+F: данный режим выполняет прямой SQL-запрос к СУБД по текущей таблице динамического списка с использованием оператора ПОДОБНО по выбранным колонкам. Этот механизм не зависит от файлов индекса полнотекстового поиска, поэтому продолжает работать даже при полном сбое индексации.

Основное решение: удаление и повторное обновление полнотекстового индекса

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

  1. Откроем меню Функции для технического специалиста (или Все функции в более ранних версиях платформы).
  2. В разделе стандартных обработок найдем и откроем форму Управление полнотекстовым поиском.
  3. Нажмем кнопку Очистить индекс. Данная операция удалит текущее служебное дерево индексов полнотекстового поиска, очистив устаревшие данные.
  4. После завершения очистки нажмем кнопку Обновить индекс. Программа запустит полное сканирование объектов метаданных, для которых включено свойство полнотекстового поиска, и сформирует индекс заново.

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

Дополнительные действия при сбоях регламентных заданий

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

  1. Перейдем в обработку Регламентные и фоновые задания (раздел Администрирование — Обслуживание).
  2. Проверим статус регламентного задания Обновление индекса ППД: оно должно выполняться с высокой периодичностью (обычно каждые 1-2 минуты) для добавления новых данных в инкрементальный индекс.
  3. Проверим статус регламентного задания Слияние индекса ППД: оно отвечает за объединение инкрементального индекса с основным. Если слияние завершается с ошибкой по таймауту или отключено, основной индекс теряет актуальность, и результаты поиска становятся неполными.
  4. При необходимости выполним эти задания вручную последовательно: сначала обновление, затем слияние.

Ручная очистка файлов индекса на сервере

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

  1. Остановим службу кластера серверов 1Cv8 Enterprise Server.
  2. В каталоге данных кластера (по умолчанию путь вида srvinfo/reg_1541/<GUID_базы>) найдем служебную папку 1Cv8FTxt.
  3. Удалим содержимое каталога 1Cv8FTxt или переименуем папку.
  4. Запустим службу кластера серверов 1С.
  5. Войдем в информационную базу и в обработке Управление полнотекстовым поиском запустим операцию Обновить индекс.

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

← На главную