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

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

Как работает строка поиска в 1С

Как устроена строка поиска в 1С: полнотекстовый поиск, динамический поиск в списках, настройка индекса, типичные ошибки и способы ускорить поиск данных.

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

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

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

Какие виды поиска есть в 1С

В типовых конфигурациях на платформе 1С:Предприятие 8.3 пользователь сталкивается минимум с четырьмя вариантами поиска. Первый — строка поиска в форме списка: вводите текст, и список фильтруется по текущему разделу. Второй — глобальный поиск по программе (лупа в панели инструментов), который ищет по всем данным через полнотекстовый индекс. Третий — поиск при вводе в поле ссылочного типа, когда программа подбирает подходящие элементы справочника по мере набора. Четвёртый — команда «Найти» в табличных документах и журналах.

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

Как работает строка поиска в форме списка

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

Важное следствие: если нужный реквизит не выведен в список, поиск по нему может не сработать. Например, поиск контрагента по ИНН в списке сработает только если колонка «ИНН» добавлена в форму или включена в состав поисковых полей. Добавить колонку можно через «Ещё → Изменить форму» или настройку списка.

Поиск по текущему разделу и по всем разделам

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

Как устроен полнотекстовый поиск

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

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

Полнотекстовый поиск поддерживает специальный синтаксис: поиск точной фразы в кавычках, логические операторы И/ИЛИ, поиск с маской через звёздочку для части слова. Например, запрос «счёт на оплату» найдёт точное словосочетание, а наклад* — слова «накладная», «накладные» и другие формы с этим корнем.

1c
// Проверка и обновление полнотекстового индекса
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
    ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Ложь);
КонецЕсли;

Настройка и обновление индекса

Управление полнотекстовым поиском выполняется в разделе администрирования: в типовых конфигурациях это «Администрирование → Общие настройки → Поиск данных» или аналогичный пункт. Там можно включить механизм, принудительно обновить индекс и настроить расписание автоматического обновления.

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

Как проверить и обновить индекс
  1. 1
    Откройте раздел администрирования и найдите настройку полнотекстового поиска данных
  2. 2
    Убедитесь, что полнотекстовый поиск разрешён
  3. 3
    Запустите обновление индекса вручную и дождитесь завершения
  4. 4
    Повторите проблемный поисковый запрос и сверьте результат
  5. 5
    Настройте расписание автоматического обновления, если ручной запуск помог

Почему поиск не находит данные: диагностика

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

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

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

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

Свежий документ находится полнотекстовым поиском
Норма

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

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

Не находится даже после принудительного обновления — проверяйте реквизиты и права

Поиск в форме списка
Норма

Фильтрует по видимым колонкам

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

Не фильтрует по нужному полю — поле не выведено в список

Права пользователя
Норма

Пользователь видит объект в списке и в поиске

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

Объект доступен по ссылке, но скрыт поиском — проверяйте RLS и права

Ограничения и типичные ошибки

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

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

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

Что делать, если стандартного поиска недостаточно

Если строка поиска не закрывает задачу, есть несколько альтернатив. Отбор в списке (кнопка «Настроить список» или «Ещё → Настроить список») позволяет задать условия по любым реквизитам объекта, включая не выведенные в колонки. Универсальный отчёт или специализированные отчёты конфигурации подходят для сложных условий по нескольким полям. Для поиска по табличным документам работает стандартная комбинация Ctrl+F.

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

Частые вопросы о поиске в 1С

Почему поиск не находит документ, созданный несколько минут назад?

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

Можно ли искать по части слова в строке поиска списка?

Да, если включён режим поиска «по части строки» — он переключается через меню рядом со строкой поиска. В полнотекстовом поиске для этого используется маска со звёздочкой, например «наклад*».

Почему один пользователь находит объект поиском, а другой нет?

Полнотекстовый поиск учитывает права доступа и ограничения на уровне записей. Если у второго пользователя нет прав на объект, поиск его не покажет — это штатное поведение. Проверяйте роли и настройки RLS.

Как включить поиск по реквизиту, который не находится?

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

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

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

Ищет ли строка поиска по содержимому присоединённых файлов?

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

Итог

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

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