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

Справочники и Данные · 9 мин

Как найти элемент в 1С: все способы поиска

Как найти элемент в 1С: поиск в справочниках и документах, полнотекстовый поиск, отборы, поиск по коду и наименованию, методы НайтиПоКоду и НайтиПоНаименованию для разработчиков.

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

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

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

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

Основной пользовательский способ — открыть список и воспользоваться строкой поиска. В управляемых формах (такси-интерфейс) строка поиска обычно расположена над таблицей списка. Введите часть наименования, код, артикул или ИНН и нажмите Enter — система покажет совпадения по основным полям.

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

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

Порядок действий в форме списка
  1. 1
    Откройте нужный справочник или журнал документов
  2. 2
    Введите значение в строку поиска над списком или нажмите Ctrl+F
  3. 3
    При необходимости уточните поле поиска и режим совпадения
  4. 4
    Если результатов много, добавьте отбор по дополнительному реквизиту
  5. 5
    Дважды щёлкните найденный элемент, чтобы открыть его карточку

Поиск через отбор по условию

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

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

Частая ошибка — забыть снять отбор после работы. Список продолжает показывать только часть данных, и пользователь считает, что элементы «пропали». Проверяйте панель отборов: активные условия обычно подсвечены.

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

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

Поиск поддерживает операторы: кавычки для точной фразы, звёздочку для масок, логические И/ИЛИ. Например, запрос «"поставка оборудования" И Петров» найдёт документы, где встречаются оба фрагмента.

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

Поиск по уникальным признакам: код, ИНН, штрихкод

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

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

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

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

Как проверить, что найден нужный элемент

Совпадение кода или ИНН
Норма

Код, ИНН или артикул полностью совпадают с исходными данными

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

Совпадает только наименование, а коды разные — вероятно, это другой элемент или дубль

Ссылки на элемент
Норма

В карточке элемента через «Ещё» видны связанные документы

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

Элемент выглядит похожим, но к нему не привязано ни одного документа

Пометка удаления
Норма

Элемент активен, без пометки удаления

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

Элемент помечен на удаление — восстановите или ищите актуальный

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

В коде на встроенном языке элементы справочников ищут методами менеджера объекта. Основные варианты: Справочники.Номенклатура.НайтиПоКоду("000123"), НайтиПоНаименованию("Кабель ВВГ 3х2.5") и НайтиПоРеквизиту("Артикул", "KB-100"). Все три возвращают ссылку; если элемент не найден — пустую ссылку, которую проверяют через Если Ссылка.Пустая() Тогда ....

Для сложных условий и поиска по нескольким полям используют запрос. Запрос быстрее при работе с большими объёмами и позволяет сразу получить нужные поля без обхода объектов.

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ ПЕРВЫЕ 1

| Номенклатура.Ссылка КАК Ссылка

|ИЗ

| Справочник.Номенклатура КАК Номенклатура

|ГДЕ

| Номенклатура.Артикул = &Артикул

| И НЕ Номенклатура.ПометкаУдаления";

Запрос.УстановитьПараметр("Артикул", ИскомыйАртикул);

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда

НайденнаяСсылка = Выборка.Ссылка;

КонецЕсли;

Учтите особенности: НайтиПоНаименованию ищет только по точному совпадению и без учёта регистра не работает — «Кабель» и «кабель» это разные значения. НайтиПоКоду требует точного кода с ведущими нулями, если код строковый. Для поиска «по части строки» в коде применяют запрос с оператором ПОДОБНО.

Сравнение способов поиска

Строка поиска / Ctrl+F

Подходит для быстрого разового поиска пользователем; ограничение — ищет только по видимым полям списка

Отбор по условию

Подходит для групп элементов и комбинации условий; требует понимания структуры полей

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

Подходит, когда неизвестно, где данные; зависит от настройки индекса администратором

НайтиПоКоду / НайтиПоРеквизиту

Подходит в коде для точного поиска по одному полю; не ищет по части строки

Запрос

Подходит для сложных условий и больших объёмов; требует навыков языка запросов

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

Типичные ошибки
01
Поиск по наименованию без учёта регистра и лишних пробелов — элемент не находится, хотя существует
02
Забытый отбор в списке — кажется, что данные пропали, хотя они просто отфильтрованы
03
Поиск по коду без ведущих нулей в строковом коде — НайтиПоКоду("123") не найдёт код "000123"
04
Игнорирование пометки удаления — в выборку попадают помеченные элементы, что искажает результат
05
Редактирование первого попавшегося элемента при дублях — ссылки в документах могут вести на другой объект

Ещё одно ограничение — права доступа. Если у пользователя нет прав на просмотр справочника или действует ограничение на уровне записей (RLS), элемент не найдётся ни одним способом, хотя физически существует. В этом случае обратитесь к администратору для проверки ролей.

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

Итог

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

Пользователю обычно достаточно строки поиска, отбора и полнотекстового поиска; разработчику — методов НайтиПоКоду, НайтиПоНаименованию, НайтиПоРеквизиту и запроса. Надёжнее всего искать по уникальным признакам: коду, ИНН, артикулу. Перед изменением найденного элемента убедитесь, что это именно тот объект, и проверьте, нет ли дублей и пометки удаления.

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

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

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

Как найти элемент по части наименования?

В форме списка используйте строку поиска или отбор с видом сравнения «Содержит». В коде применяйте запрос с оператором ПОДОБНО, например: ГДЕ Наименование ПОДОБНО "%кабель%". Учтите, что такой поиск медленнее точного.

Чем НайтиПоКоду отличается от НайтиПоНаименованию?

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

Как найти дубли элементов в справочнике?

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

Можно ли найти, в каких документах используется элемент?

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