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

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

Как в 1С искать по коду: практическая инструкция

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

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

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

Инструкция применима к типовым конфигурациям на управляемых формах (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP, 1С:ЗУП и другие), а отдельный раздел посвящён обычным формам старых конфигураций.

Как устроен код в 1С и почему по нему удобно искать

Код — системный реквизит, который есть у каждого справочника и документа. У справочников код может быть числовым или строковым, у документов аналогичную роль играет номер. Длина и тип кода задаются в конфигураторе, поэтому в одной базе код номенклатуры может выглядеть как «000000123», а в другой — как «Т-45».

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

Ограничение: коды уникальны только внутри одного вида справочника. Код «000001» может одновременно существовать у товара в «Номенклатуре» и у контрагента в «Контрагентах», поэтому искать нужно в правильном списке.

Поиск по коду в форме списка (управляемые формы)

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

Порядок действий
  1. 1
    Откройте нужный список, например «Номенклатура» или «Контрагенты».
  2. 2
    Нажмите на стрелку рядом с полем поиска (или кнопку с лупой) и выберите вариант поиска «по коду», если он доступен.
  3. 3
    Если варианта нет — нажмите «Ещё → Настроить список», добавьте отбор по полю «Код» с видом сравнения «Равно» или «Содержит» и введите значение.
  4. 4
    Введите код полностью, включая ведущие нули, если поиск не находит элемент без них.
  5. 5
    Проверьте результат: откройте найденный элемент и убедитесь, что код совпадает.

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

Обратите внимание на ведущие нули. Числовой код хранится как «000000123», и при поиске через отбор «Равно» ввод «123» может не дать результата, если поле строковое. В таком случае используйте вид сравнения «Содержит» — он находит код по части значения.

Поиск по коду в обычных формах

В старых конфигурациях на обычных формах (например, 1С:Управление торговлей 10.3, 1С:Бухгалтерия 2.0) механизм проще. Над табличной частью списка расположено поле поиска, а рядом с ним — выпадающий список выбора поля: «Наименование», «Код» и другие колонки.

Переключите поле поиска на «Код», введите значение и нажмите Enter. Программа спозиционирует курсор на найденной строке. Поиск работает по началу значения: ввод «12» найдёт коды «12», «1234» и т.п.

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

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

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

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

Поиск по коду через запрос и консоль

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

ВЫБРАТЬ

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

Номенклатура.Код КАК Код,

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

ИЗ

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

ГДЕ

Номенклатура.Код = &Код

Во встроенном языке для поиска по коду есть специальные методы: НайтиПоКоду() для справочников и НайтиПоНомеру() для документов. Пример для справочника:

НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду("000000123");

Если НайденныйЭлемент.Пустая() Тогда

Сообщить("Элемент с таким кодом не найден");

КонецЕсли;

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

bsl
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду("000000123");

Типичные проблемы при поиске по коду и их решение

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

Типичные ошибки
01
Ввод кода без ведущих нулей при поиске через отбор «Равно» — элемент не находится, хотя существует. Используйте вид сравнения «Содержит» или вводите код полностью.
02
Поиск кода документа в справочнике и наоборот — у документов поле называется «Номер», а не «Код», и искать нужно в журнале документов.
03
Поиск в иерархическом справочнике с включённым отбором по группе — элементы из других папок не показываются. Снимите отбор по родителю.
04
Игнорирование префиксов базы при обмене данными — код «УТ-000123» не найдётся по значению «000123» при точном сравнении.

Если база участвует в обмене данными, коды часто содержат префикс узла обмена (например, «БП-», «УТ-»). При поиске учитывайте префикс или используйте сравнение «Содержит» с числовой частью кода.

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

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

Открыт ли найденный элемент
Норма

Карточка открывается, код в карточке совпадает с искомым

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

Открывается другой элемент или карточка пустая — проверьте формат кода

Единственность результата
Норма

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

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

Несколько элементов с одинаковым кодом — возможно, нарушена нумерация или есть дубли

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

Элемент не помечен на удаление и доступен для выбора

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

Элемент помечен на удаление — уточните, нужно ли его восстановить

Когда искать по коду, а когда — по другим реквизитам

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

Маршрут решения

Как выбрать способ поиска

Известен точный код из документа или выгрузкиИспользуйте отбор по коду с видом сравнения «Равно» или «Содержит» в форме списка
Код известен частично или без ведущих нулейИспользуйте отбор «Содержит» или полнотекстовый поиск
Нужно найти много элементов по списку кодовИспользуйте консоль запросов с условием «Код В (&СписокКодов)» или обработку группового поиска
Код неизвестен, известны другие данныеИщите по наименованию, артикулу, ИНН или штрихкоду — код надёжно найдёте уже в карточке элемента
Итог

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

Поиск по коду в 1С работает через выбор поля поиска в форме списка, отбор по реквизиту «Код» или программные методы НайтиПоКоду(). Главные причины неудач — ведущие нули, префиксы обмена и поиск не в том списке. Для точного результата вводите код полностью или используйте сравнение «Содержит».

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

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

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

Как искать по коду документа, если у документов нет поля «Код»?

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

Можно ли искать сразу по нескольким кодам?

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

Что делать, если в базе обнаружились два элемента с одинаковым кодом?

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

Ищет ли стандартная строка поиска по коду автоматически?

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

Опасно ли менять код элемента вручную?

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