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

Быстрый старт · 10 мин

Как в 1С вызвать поиск: все способы для пользователя и разработчика

Как в 1С вызвать поиск: Ctrl+F, поиск по строке в списках, полнотекстовый поиск по базе, поиск в конфигураторе и программный вызов. Пошаговые инструкции и ответы на вопросы.

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

Путаница обычно возникает из-за того, что сочетание Ctrl+F в разных окнах ведёт себя по-разному: в списке документов оно открывает диалог поиска по текущей таблице, а в форме элемента может искать текст внутри многострочного поля. Ниже разобраны все рабочие способы вызвать поиск, условия их доступности и типичные проблемы.

Быстрый поиск в текущей таблице через Ctrl+F

Универсальный способ — установить курсор в любую табличную часть (список документов, табличную часть документа, таблицу значений в отчёте) и нажать Ctrl+F. Откроется стандартный диалог «Поиск», где указываются искомое значение, направление поиска (вперёд/назад), область поиска (по текущей колонке или по всей таблице) и параметры: учёт регистра, поиск по целому слову, по шаблону.

Кнопка «Найти» выполняет переход к первой подходящей строке, «Найти все» — выводит список всех совпадений с возможностью перехода к каждой. Для повторного поиска того же значения без открытия диалога используются клавиши F3 (вперёд) и Shift+F3 (назад).

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

Поиск по строке в списках документов и справочников

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

Если поля поиска в шапке нет, его можно вызвать через меню «Ещё» списка: команда «Найти…» (в ряде конфигураций — «Поиск по строке») либо сочетание Ctrl+Shift+F в зависимости от версии платформы и настроек формы. Найденное значение подсвечивается, а переход между совпадениями выполняется кнопками со стрелками рядом с полем поиска.

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

Полнотекстовый поиск по всей базе

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

Чтобы полнотекстовый поиск работал, он должен быть разрешён и проиндексирован: в конфигураторе в свойствах конфигурации устанавливается режим «Полнотекстовый поиск — Использовать», а в пользовательском режиме администратор выполняет обновление индекса (раздел «Администрирование → Поиск и индексация» в типовых конфигурациях). Без актуального индекса свежие данные в результатах не появятся.

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

Как включить полнотекстовый поиск
  1. 1
    Откройте раздел «Администрирование» (в типовых конфигурациях — «НСИ и администрирование»).
  2. 2
    Перейдите в подраздел «Поиск и индексация» или «Полнотекстовый поиск».
  3. 3
    Убедитесь, что использование полнотекстового поиска разрешено.
  4. 4
    Выполните команду «Обновить индекс» и дождитесь завершения.
  5. 5
    Проверьте результат: введите заведомо существующее слово в строку полнотекстового поиска (Ctrl+Shift+F).

Поиск в конфигураторе

Разработчику доступны три механизма. Первый — обычный поиск по тексту модуля: Ctrl+F в открытом модуле, с переходами по F3. Второй — глобальный поиск по всем текстам конфигурации: меню «Правка → Глобальный поиск» или Ctrl+Shift+F, где можно ограничить область (вся конфигурация, выбранные объекты, открытые модули) и тип поиска (по слову целиком, с учётом регистра, по шаблону).

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

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

Программный вызов поиска из кода

Во встроенном языке поиск по данным выполняется методами объектов. Для справочников это Справочники.Номенклатура.НайтиПоНаименованию("Текст", Истина) (второй параметр — точное соответствие), для поиска по коду — НайтиПоКоду(), по реквизиту — НайтиПоРеквизиту(). Аналогичные методы есть у планов счетов, видов характеристик и других ссылочных типов.

Для сложных условий используется запрос с конструкцией ГДЕ Наименование ПОДОБНО "%Строка%" — это аналог поиска по подстроке на стороне сервера. Программно вызвать интерактивный диалог поиска в форме можно через метод таблицы формы НачатьПоискПоСтроке() или через стандартную команду интерфейса.

bsl
НайденныйЭлемент = Справочники.Контрагенты.НайтиПоНаименованию(СтрокаПоиска, Ложь);
Если Не НайденныйЭлемент.Пустая() Тогда
    Сообщить("Найден: " + НайденныйЭлемент);
Иначе
    Сообщить("Ничего не найдено");
КонецЕсли;

Частые ошибки и как их избежать

Самая распространённая ошибка — искать через Ctrl+F в динамическом списке и делать вывод, что записи нет в базе. Динамический список подгружает данные частями, поэтому для справочников и журналов документов всегда надёжнее использовать поле поиска по строке или полнотекстовый поиск.

Вторая типичная ситуация — «документы пропали» из-за активного, но незамеченного поиска или отбора. Перед паникой проверьте строку поиска в шапке списка и состояние отборов (кнопка «Настроить список» / «Отборы»).

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

Как проверить, что поиск сработал правильно

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

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

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

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

Найденный объект
Норма

Реквизиты (номер, дата, код, ИНН) совпадают с ожидаемыми

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

Совпадает только наименование — возможен одноимённый дубль

Полнотекстовый поиск
Норма

Находит заведомо существующее слово из свежего документа

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

Новые данные не находятся — индекс устарел, требуется обновление

Список после поиска
Норма

После отмены поиска отображаются все записи

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

Часть записей не возвращается — остался активный отбор

Часто задаваемые вопросы

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

В управляемых формах фокус может находиться не на таблице списка, а на другом элементе. Щёлкните мышью по любой строке списка и повторите Ctrl+F. Также проверьте, не переопределено ли сочетание в настройках конфигурации — в таком случае используйте команду «Найти…» из меню «Ещё» списка.

Чем поиск по строке отличается от отбора?

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

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

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

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

Да, для этого используется символ звёздочки: например, «наклад*» найдёт «накладная», «накладной» и другие формы. Без звёздочки поиск выполняется по целым словам с учётом морфологии, и фрагмент слова совпадений не даст.

Как программно проверить, найден ли элемент справочника?

Методы НайтиПоНаименованию, НайтиПоКоду и НайтиПоРеквизиту возвращают ссылку. Проверка выполняется методом Пустая(): если результат Истина — элемент не найден. Перед поиском полезно очищать строку поиска от лишних пробелов функцией СокрЛП, иначе точное сравнение может не сработать.

Как найти, где в конфигурации используется конкретный объект?

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

Итог

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

Ctrl+F ищет по текущей таблице, поле поиска в шапке списка — по всей выборке динамического списка, Ctrl+Shift+F вызывает полнотекстовый поиск по базе. Полнотекстовый поиск требует актуального индекса, а отсутствие записи в результатах Ctrl+F по динамическому списку ещё не означает, что её нет в базе.