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

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

Как найти по коду в 1С: все рабочие способы

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

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

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

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

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

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

Длина и тип кода определяются конфигурацией. Код может быть числовым (например, 154) или строковым (например, «00-000154»). Строковые коды часто содержат ведущие нули, и это критично для поиска: значение «154» и «00-000154» для системы — разные строки. Если поиск «не находит» очевидно существующий элемент, чаще всего дело именно в несовпадении формата.

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

Как найти элемент справочника по коду в режиме «Предприятие»

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

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

Порядок действий
  1. 1
    Откройте список справочника или документов (например, Номенклатура)
  2. 2
    Нажмите Ctrl+F или кнопку «Найти» в командной панели
  3. 3
    Выберите поле «Код» и вид сравнения «Равно»
  4. 4
    Введите код точно в том виде, в каком он отображается в списке, включая нули и префикс
  5. 5
    Нажмите «Найти» — курсор встанет на найденный элемент, двойной щелчок откроет карточку

Альтернатива — отбор: через кнопку «Ещё» → «Настроить список» (или «Установить отбор и сортировку») добавьте условие «Код Равно <значение>». Список отфильтруется, и вы увидите только нужные записи. Это удобно, когда нужно проверить, сколько элементов имеют одинаковый код.

Если элемент по коду не находится

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

Как найти документ по номеру

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

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

Поиск по коду через консоль запросов и встроенный язык

Для разработчиков и продвинутых пользователей доступен программный поиск. Во встроенном языке у менеджеров справочников есть метод НайтиПоКоду(), у документов — НайтиПоНомеру(). Типичный пример:

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

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

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

КонецЕсли;

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

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

ВЫБРАТЬ

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

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

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

ИЗ

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

ГДЕ

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

Запрос предпочтительнее метода НайтиПоКоду(), когда нужно получить сразу несколько полей, проверить дубли кодов или найти элементы по части кода (ГДЕ Код ПОДОБНО "%154%"). Для проверки дублей сгруппируйте записи по коду и отберите группы с количеством больше одного.

Как найти фрагмент программного кода в конфигураторе

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

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

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

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

Быстрый поиск в списке (строка поиска)

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

Отбор и расширенный поиск (Ctrl+F)

Точный поиск по конкретному полю с выбором вида сравнения; требует знания точного формата кода

НайтиПоКоду() / запрос

Для разработчиков и обработок; даёт полный контроль, но требует прав и навыков работы с кодом или консолью запросов

Глобальный поиск в конфигураторе

Для поиска по текстам модулей и метаданным; не ищет по данным информационной базы

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

Наиболее распространённая причина — несовпадение формата: в базе код хранится как «00-000154», а ищут «154». Второе место занимает префикс базы: в распределённых системах и при обмене коды получают префикс узла, и без него точный поиск не срабатывает.

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

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

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

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

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

Проверить наличие дублей можно запросом с группировкой по коду и условием ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1 либо штатными средствами: в типовых конфигурациях есть обработки поиска и удаления дублей (раздел администрирования). Для документов нарушение нумерации устраняется обработкой перенумерации, но запускать её следует только после резервного копирования и вне рабочего времени пользователей.

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

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

Совпадение реквизитов найденного элемента с ожидаемыми (наименование, ИНН, артикул)
Норма

Найден ровно один объект, реквизиты совпадают

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

Найдено несколько объектов или реквизиты не совпадают — возможны дубли кодов

Количество элементов с одинаковым кодом (отбор по коду или запрос с группировкой)
Норма

Один элемент на код

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

Два и более — нумерация нарушена, нужна обработка дублей

Пометка удаления у найденного объекта
Норма

Пометки нет, объект активен

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

Объект помечен на удаление — уточните, не удалён ли нужный элемент ошибочно

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

Итог

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

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

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

Как найти элемент, если я знаю только часть кода?

Используйте расширенный поиск (Ctrl+F) с видом сравнения «Содержит» или «Начинается с» вместо «Равно». В запросе аналог — условие ПОДОБНО с символом процента. Учтите, что поиск по части строки вернёт все подходящие записи, поэтому дополнительно проверяйте реквизиты найденных элементов.

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

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

Может ли в одном справочнике быть два элемента с одинаковым кодом?

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

Чем код отличается от уникального идентификатора (GUID)?

Код — видимый пользователю реквизит, который может меняться и повторяться. GUID — внутренний системный идентификатор ссылки, который не меняется никогда и уникален глобально. Для поиска пользователем используют код; GUID применяют разработчики при обмене данными и отладке, получить его можно методом УникальныйИдентификатор() у ссылки.

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

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

Как найти товар по штрихкоду, если поиск по коду не помогает?

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