Справочники и Данные · 12 мин
Как найти по коду в 1С: все рабочие способы
Как найти по коду в 1С: поиск элемента справочника и документа по коду, поиск по коду в конфигураторе, запросы на встроенном языке и типичные ошибки.
Поиск по коду — один из самых быстрых способов отыскать нужный объект в 1С: элемент справочника, документ, товарную позицию или фрагмент в конфигураторе. Код в 1С — это уникальный (в пределах настроек нумерации) идентификатор объекта, который присваивается автоматически или вручную. Зная код, можно найти запись за секунды, не листая длинные списки и не настраивая сложные отборы.
Способ поиска зависит от того, где вы работаете: в режиме «Предприятие» (обычный пользовательский интерфейс), в конфигураторе при доработке или в консоли запросов. Ниже разобраны все основные сценарии: от простого поиска в списке номенклатуры до обращения к коду средствами встроенного языка.
Важно понимать ограничения: код не всегда уникален (это зависит от настроек нумерации), может содержать префиксы базы и вестись как в числовом, так и в строковом формате. Эти нюансы напрямую влияют на то, как правильно вводить значение при поиске.
Что такое код в 1С и почему по нему удобно искать
Код — системный реквизит, который есть у каждого справочника, документа, плана счетов, плана видов характеристик и других объектов метаданных. У справочников и документов он заполняется автоматически по правилам нумерации, заданным в конфигурации: с учётом префикса информационной базы, периодичности (для документов) и подчинения.
Длина и тип кода определяются конфигурацией. Код может быть числовым (например, 154) или строковым (например, «00-000154»). Строковые коды часто содержат ведущие нули, и это критично для поиска: значение «154» и «00-000154» для системы — разные строки. Если поиск «не находит» очевидно существующий элемент, чаще всего дело именно в несовпадении формата.
Отдельно стоит различать поиск «по коду объекта» и поиск «по коду программы». Первый — работа с данными (найти товар с кодом 4578). Второй — работа разработчика: найти место в модулях конфигурации, где используется определённая процедура или переменная. Оба сценария рассмотрены ниже.
Как найти элемент справочника по коду в режиме «Предприятие»
Самый простой случай — вы знаете код товара, контрагента или сотрудника и хотите открыть его карточку. Откройте нужный список (например, «Номенклатура») и используйте строку поиска. В большинстве типовых конфигураций поиск в списке по умолчанию выполняется по нескольким полям, включая код и наименование.
Если быстрый поиск не дал результата, используйте расширенный поиск: нажмите Ctrl+F или кнопку «Найти» в командной панели списка, укажите поле «Код», вид сравнения «Равно» и введите значение целиком, включая ведущие нули и префикс. Такой вариант надёжнее, потому что исключает лишние совпадения по части строки.
- 1Откройте список справочника или документов (например, Номенклатура)
- 2Нажмите Ctrl+F или кнопку «Найти» в командной панели
- 3Выберите поле «Код» и вид сравнения «Равно»
- 4Введите код точно в том виде, в каком он отображается в списке, включая нули и префикс
- 5Нажмите «Найти» — курсор встанет на найденный элемент, двойной щелчок откроет карточку
Альтернатива — отбор: через кнопку «Ещё» → «Настроить список» (или «Установить отбор и сортировку») добавьте условие «Код Равно <значение>». Список отфильтруется, и вы увидите только нужные записи. Это удобно, когда нужно проверить, сколько элементов имеют одинаковый код.
Если элемент по коду не находится
Проверьте три вещи. Во-первых, формат кода: посмотрите в колонке «Код» списка, как выглядят значения, и повторите формат. Во-вторых, пометку удаления: помеченные на удаление элементы могут быть скрыты настройкой списка — отобразите их через «Ещё» → «Изменить форму списка» или отбор. В-третьих, ограничение доступа: если включены RLS (ограничение прав на уровне записей), элемент может существовать, но быть недоступным вашему пользователю.
Как найти документ по номеру
У документов аналогом кода выступает номер. Поиск выполняется так же: откройте журнал документов нужного вида, нажмите Ctrl+F, выберите поле «Номер» и введите значение. Учтите, что номер документа обычно уникален только в пределах периода (года) и вида документа, поэтому одинаковые номера у разных документов — нормальная ситуация.
В типовых конфигурациях журналы документов часто имеют быстрый отбор по номеру прямо в шапке формы списка. Если его нет — пользуйтесь настройкой списка через «Ещё». Для поиска документа, введённого на основании другого, удобнее использовать не номер, а структуру подчинённости из карточки исходного документа.
Поиск по коду через консоль запросов и встроенный язык
Для разработчиков и продвинутых пользователей доступен программный поиск. Во встроенном языке у менеджеров справочников есть метод НайтиПоКоду(), у документов — НайтиПоНомеру(). Типичный пример:
Элемент = Справочники.Номенклатура.НайтиПоКоду("00-000154");
Если Элемент.Пустая() Тогда
Сообщить("Элемент с таким кодом не найден");
КонецЕсли;
Метод НайтиПоКоду() имеет необязательные параметры: поиск в пределах родителя (группы) и поиск по владельцу для подчинённых справочников. Если код не уникален в пределах всего справочника, метод вернёт первый найденный элемент — это может быть не тот объект, который вы ожидали.
В консоли запросов поиск по коду выглядит как обычный запрос с условием:
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Код,
Номенклатура.Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Код = &Код
Запрос предпочтительнее метода НайтиПоКоду(), когда нужно получить сразу несколько полей, проверить дубли кодов или найти элементы по части кода (ГДЕ Код ПОДОБНО "%154%"). Для проверки дублей сгруппируйте записи по коду и отберите группы с количеством больше одного.
Как найти фрагмент программного кода в конфигураторе
Разработчику часто нужно найти, где в конфигурации вызывается процедура, используется переменная или встречается определённый текст. Для этого в конфигураторе есть глобальный поиск: меню «Правка» → «Глобальный поиск по текстам» или сочетание Ctrl+Shift+F.
В окне глобального поиска укажите искомую строку и область поиска: всю конфигурацию, открытые модули или конкретные объекты. Полезные опции — «Учитывать регистр», «Слово целиком» и поиск по регулярному выражению. Результат выводится списком с указанием объекта, модуля и номера строки; двойной щелчок открывает нужное место.
Для поиска всех вызовов конкретной процедуры или функции есть более точный инструмент: встаньте курсором на имя процедуры в модуле и выберите в контекстном меню «Найти использование» (в EDT — аналогичная команда). Система покажет все места обращения, что надёжнее текстового поиска, так как учитывает контекст.
Сравнение способов поиска
Подходит пользователю для единичного поиска по коду или наименованию; ограничение — ищет по набору полей, заданному формой, без гибких условий
Точный поиск по конкретному полю с выбором вида сравнения; требует знания точного формата кода
Для разработчиков и обработок; даёт полный контроль, но требует прав и навыков работы с кодом или консолью запросов
Для поиска по текстам модулей и метаданным; не ищет по данным информационной базы
Почему поиск по коду не находит объект: частые причины
Наиболее распространённая причина — несовпадение формата: в базе код хранится как «00-000154», а ищут «154». Второе место занимает префикс базы: в распределённых системах и при обмене коды получают префикс узла, и без него точный поиск не срабатывает.
Третья группа причин — права и видимость: элемент помечен на удаление и скрыт настройкой списка, действует ограничение RLS, либо список открыт с уже установленным отбором, который отсекает нужную запись. Сбросьте все отборы («Ещё» → «Настроить список» → отключить условия) и повторите поиск.
Наконец, код мог быть изменён вручную или при перенумерации. Если объект точно существовал, ищите его по другим реквизитам — наименованию, ИНН, артикулу, штрихкоду. Штрихкод для номенклатуры ищется через регистр сведений «Штрихкоды», а не через поле «Код».
Как проверить результат поиска и дубли кодов
После того как объект найден, убедитесь, что это именно тот элемент: сверьте наименование, ключевые реквизиты (ИНН у контрагента, артикул у товара) и дату создания. Если по коду найдено несколько записей — это сигнал о нарушении уникальности нумерации, которое стоит исправить.
Проверить наличие дублей можно запросом с группировкой по коду и условием ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1 либо штатными средствами: в типовых конфигурациях есть обработки поиска и удаления дублей (раздел администрирования). Для документов нарушение нумерации устраняется обработкой перенумерации, но запускать её следует только после резервного копирования и вне рабочего времени пользователей.
Как проверить результат
Найден ровно один объект, реквизиты совпадают
Найдено несколько объектов или реквизиты не совпадают — возможны дубли кодов
Один элемент на код
Два и более — нумерация нарушена, нужна обработка дублей
Пометки нет, объект активен
Объект помечен на удаление — уточните, не удалён ли нужный элемент ошибочно
Если дубли обнаружены, не спешите менять коды вручную: код может участвовать в обменах с другими системами, печатных формах и внешних отчётах. Сначала выясните, где используется каждый из дублей (через поиск ссылок на объект: «Ещё» → «Найти ссылки» в карточке объекта или сервис «Поиск ссылок на объекты» в конфигураторе), и только потом объединяйте или перенумеровывайте.
Что важно запомнить
Поиск по коду в 1С выполняется через строку поиска списка, расширенный поиск (Ctrl+F) с условием «Код Равно», программно — методом НайтиПоКоду() или запросом, а по текстам модулей — глобальным поиском в конфигураторе. Ключ к успешному поиску — точное совпадение формата кода, включая ведущие нули и префикс, и отсутствие лишних отборов в списке.
Частые вопросы
Как найти элемент, если я знаю только часть кода?
Используйте расширенный поиск (Ctrl+F) с видом сравнения «Содержит» или «Начинается с» вместо «Равно». В запросе аналог — условие ПОДОБНО с символом процента. Учтите, что поиск по части строки вернёт все подходящие записи, поэтому дополнительно проверяйте реквизиты найденных элементов.
Почему Ctrl+F не находит элемент, который точно есть в справочнике?
Чаще всего мешают три фактора: несовпадение формата кода (ведущие нули, префикс), уже установленный отбор в списке, который скрывает запись, и пометка удаления. Сбросьте отборы, отобразите помеченные объекты и введите код в точности так, как он показан в колонке «Код».
Может ли в одном справочнике быть два элемента с одинаковым кодом?
Да, если в настройках нумерации справочника отключён контроль уникальности или коды присваивались вручную и при обмене данными. Это нештатная ситуация: найдите дубли запросом с группировкой по коду и устраните их через штатную обработку поиска дублей, предварительно проверив, где используется каждый элемент.
Чем код отличается от уникального идентификатора (GUID)?
Код — видимый пользователю реквизит, который может меняться и повторяться. GUID — внутренний системный идентификатор ссылки, который не меняется никогда и уникален глобально. Для поиска пользователем используют код; GUID применяют разработчики при обмене данными и отладке, получить его можно методом УникальныйИдентификатор() у ссылки.
Как найти, где в конфигурации используется нужная процедура?
Откройте конфигуратор, встаньте курсором на имя процедуры в модуле и выберите «Найти использование» в контекстном меню — система покажет все обращения. Альтернатива — глобальный поиск (Ctrl+Shift+F) по имени процедуры с опцией «Слово целиком», чтобы исключить совпадения внутри других имён.
Как найти товар по штрихкоду, если поиск по коду не помогает?
Штрихкод не хранится в поле «Код» — он записывается в регистр сведений «Штрихкоды» (название может отличаться в зависимости от конфигурации). Откройте этот регистр и отберите записи по значению штрихкода, либо используйте форму подбора номенклатуры со сканером: при считывании система сама найдёт товар по штрихкоду.