Справочники и Данные · 10 мин
Как в 1С искать по коду: практическая инструкция
Как в 1С найти элемент справочника или документ по коду: поиск в форме списка, полнотекстовый поиск, отборы и запросы. Практическая инструкция для пользователей.
Поиск по коду — один из самых быстрых способов найти нужный элемент в 1С: товар в номенклатуре, сотрудника, контрагента или документ. Код в 1С — это уникальный в пределах справочника или вида документов идентификатор, который программа присваивает автоматически при создании объекта. В отличие от наименования, код не дублируется (при корректной настройке нумерации), поэтому поиск по нему даёт точный результат без лишних совпадений.
Проблема в том, что стандартный поиск в форме списка по умолчанию часто настроен на поиск по наименованию, и пользователь, вводя код в строку поиска, получает пустой результат или нерелевантные совпадения. Ниже разобраны все рабочие способы искать именно по коду: от простого переключения поля поиска до запросов в консоли — для обычных пользователей и для тех, кто работает с конфигуратором.
Инструкция применима к типовым конфигурациям на управляемых формах (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP, 1С:ЗУП и другие), а отдельный раздел посвящён обычным формам старых конфигураций.
Как устроен код в 1С и почему по нему удобно искать
Код — системный реквизит, который есть у каждого справочника и документа. У справочников код может быть числовым или строковым, у документов аналогичную роль играет номер. Длина и тип кода задаются в конфигураторе, поэтому в одной базе код номенклатуры может выглядеть как «000000123», а в другой — как «Т-45».
Преимущества поиска по коду: он уникален, не меняется при переименовании элемента и часто указан во внешних документах — прайсах поставщиков, накладных, выгрузках из других систем. Если контрагент прислал счёт с артикулом, совпадающим с кодом номенклатуры, поиск по коду даст единственный точный результат.
Ограничение: коды уникальны только внутри одного вида справочника. Код «000001» может одновременно существовать у товара в «Номенклатуре» и у контрагента в «Контрагентах», поэтому искать нужно в правильном списке.
Поиск по коду в форме списка (управляемые формы)
В конфигурациях на управляемых формах (интерфейс «Такси») строка поиска расположена вверху формы списка. По умолчанию поиск идёт по полям, которые разработчик конфигурации отметил как поля поиска — обычно это наименование. Чтобы искать по коду, нужно явно указать это поле.
- 1Откройте нужный список, например «Номенклатура» или «Контрагенты».
- 2Нажмите на стрелку рядом с полем поиска (или кнопку с лупой) и выберите вариант поиска «по коду», если он доступен.
- 3Если варианта нет — нажмите «Ещё → Настроить список», добавьте отбор по полю «Код» с видом сравнения «Равно» или «Содержит» и введите значение.
- 4Введите код полностью, включая ведущие нули, если поиск не находит элемент без них.
- 5Проверьте результат: откройте найденный элемент и убедитесь, что код совпадает.
Ещё один быстрый способ — команда «Найти» (Ctrl+F) внутри формы списка. В открывшемся окне выберите, по каким колонкам искать, отметьте «Код» и введите значение. Программа подсветит найденные строки.
Обратите внимание на ведущие нули. Числовой код хранится как «000000123», и при поиске через отбор «Равно» ввод «123» может не дать результата, если поле строковое. В таком случае используйте вид сравнения «Содержит» — он находит код по части значения.
Поиск по коду в обычных формах
В старых конфигурациях на обычных формах (например, 1С:Управление торговлей 10.3, 1С:Бухгалтерия 2.0) механизм проще. Над табличной частью списка расположено поле поиска, а рядом с ним — выпадающий список выбора поля: «Наименование», «Код» и другие колонки.
Переключите поле поиска на «Код», введите значение и нажмите Enter. Программа спозиционирует курсор на найденной строке. Поиск работает по началу значения: ввод «12» найдёт коды «12», «1234» и т.п.
Если список иерархический (с группами), поиск по коду находит элемент независимо от того, в какой папке он лежит, — но для перехода к нему может потребоваться отключить режим иерархического просмотра или развернуть группы.
Полнотекстовый поиск и поиск по строке
В управляемых формах есть глобальный поиск по строке — поле в правом верхнем углу главного окна. Он ищет по всем данным, включённым в полнотекстовый индекс. Если код справочника входит в состав полнотекстового поиска (это настраивается в конфигураторе), то ввод кода в это поле покажет найденные объекты разных типов.
Проверить, включён ли полнотекстовый поиск, можно в разделе «Администрирование → Общие настройки → Полнотекстовый поиск» (название раздела зависит от конфигурации). Если поиск выключен или индекс устарел, результаты будут неполными — требуется обновление индекса.
Поиск по коду через запрос и консоль
Когда нужно найти элемент программно или проверить сразу несколько кодов, используется запрос. В консоли запросов (внешняя обработка или встроенный инструмент в некоторых конфигурациях) запрос на поиск элемента справочника по коду выглядит так:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
Номенклатура.Код КАК Код,
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Код = &Код
Во встроенном языке для поиска по коду есть специальные методы: НайтиПоКоду() для справочников и НайтиПоНомеру() для документов. Пример для справочника:
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду("000000123");
Если НайденныйЭлемент.Пустая() Тогда
Сообщить("Элемент с таким кодом не найден");
КонецЕсли;
Важная тонкость метода НайтиПоКоду(): для числовых кодов поиск идёт по точному совпадению с учётом формата, и передача строки без ведущих нулей может не найти элемент. Если код числовой, передайте число; если строковый — строку точно в том виде, в каком она хранится.
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду("000000123");Типичные проблемы при поиске по коду и их решение
Самая частая жалоба — «поиск по коду ничего не находит», хотя элемент точно существует. Причины почти всегда в одном из следующих моментов: несовпадение формата (ведущие нули), поиск не в том справочнике, пометка элемента на удаление при включённом отборе, скрывающем такие элементы, либо права доступа, ограничивающие видимость данных.
Если база участвует в обмене данными, коды часто содержат префикс узла обмена (например, «БП-», «УТ-»). При поиске учитывайте префикс или используйте сравнение «Содержит» с числовой частью кода.
Как проверить результат
Карточка открывается, код в карточке совпадает с искомым
Открывается другой элемент или карточка пустая — проверьте формат кода
Найден ровно один элемент с таким кодом
Несколько элементов с одинаковым кодом — возможно, нарушена нумерация или есть дубли
Элемент не помечен на удаление и доступен для выбора
Элемент помечен на удаление — уточните, нужно ли его восстановить
Когда искать по коду, а когда — по другим реквизитам
Код — не всегда оптимальное поле для поиска. Если код известен из внешнего документа или выгрузки, он даёт самый быстрый и точный результат. Но если код неизвестен, а известно часть названия, артикул, ИНН или штрихкод, лучше использовать соответствующие реквизиты: поиск по ИНН для контрагентов, по штрихкоду и артикулу для номенклатуры.
Как выбрать способ поиска
Что важно запомнить
Поиск по коду в 1С работает через выбор поля поиска в форме списка, отбор по реквизиту «Код» или программные методы НайтиПоКоду(). Главные причины неудач — ведущие нули, префиксы обмена и поиск не в том списке. Для точного результата вводите код полностью или используйте сравнение «Содержит».
Частые вопросы
Почему поиск по коду не находит элемент, который точно есть в базе?
Чаще всего дело в формате: числовой код хранится с ведущими нулями, а вы вводите его без них при точном сравнении. Также проверьте, не помечен ли элемент на удаление, нет ли отбора по группе и тот ли это справочник — одинаковые коды бывают у разных видов объектов.
Как искать по коду документа, если у документов нет поля «Код»?
У документов вместо кода используется номер. В журнале документов добавьте отбор по полю «Номер» через «Ещё → Настроить список», а программно используйте метод НайтиПоНомеру() с указанием даты, в пределах которой ведётся нумерация.
Можно ли искать сразу по нескольким кодам?
В форме списка — через отбор с видом сравнения «В списке», где перечисляются нужные коды. Для больших списков удобнее консоль запросов с условием «Код В (&СписокКодов)», куда параметром передаётся массив или список значений.
Что делать, если в базе обнаружились два элемента с одинаковым кодом?
Это признак сбоя нумерации или ручного редактирования кодов. Оба элемента останутся доступными, но поиск по коду станет неоднозначным. Найдите дубли запросом с группировкой по коду и при необходимости перенумеруйте один из элементов, предварительно проверив, где он используется.
Ищет ли стандартная строка поиска по коду автоматически?
Зависит от конфигурации: разработчик определяет, какие поля входят в поиск по умолчанию. Во многих типовых справочниках поиск идёт по наименованию и коду одновременно, но если по коду не находит — переключите поле поиска вручную или используйте отбор.
Опасно ли менять код элемента вручную?
Сам по себе код можно изменить, если нет запрета в правах, и ссылки на элемент при этом не пострадают — они хранятся по внутреннему идентификатору. Но если код используется во внешних системах, прайсах или обменах, его смена нарушит сопоставление данных, поэтому менять код стоит только понимая последствия.