Способы поиска элементов справочника в 1С:Предприятие 8

В 1С предусмотрено несколько способов поиска элементов справочника. Рассмотрим основные из них:

1. Поиск по коду

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

Синтаксис метода:

НайтиПоКоду(<Код>, <ПоискПоПолномуКоду>, <Родитель>, <Владелец>)

Пример использования:

НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду("0000000347");
Если НайденныйЭлемент.Пустая() Тогда
    НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду(347);
КонецЕсли

Описание параметров:

  • <Код> (обязательный): искомый код элемента (тип — строка или число).
  • <ПоискПоПолномуКоду> (необязательный): логический параметр, определяющий поиск по полному коду (по умолчанию — Ложь).
  • <Родитель> (необязательный): ссылка на родительский элемент, в пределах которого осуществляется поиск.
  • <Владелец> (необязательный): ссылка на владельца, ограничивающего область поиска.

Особенности:

  • Если в справочнике несколько элементов с одинаковым кодом, возвращается первый найденный.
  • При отсутствии элемента возвращается пустая ссылка.

2. Поиск по наименованию

Если известно наименование элемента, можно использовать метод НайтиПоНаименованию.

Синтаксис метода:

НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)

Пример использования:

НайденныйЭлемент = Справочники.Номенклатура.НайтиПоНаименованию("Услуги перевозки");

Описание параметров:

  • <Наименование> (обязательный): строка с искомым наименованием.
  • <ТочноеСоответствие> (необязательный): логический параметр для определения точности поиска (по умолчанию — Ложь).
    • Истина — требуется полное совпадение наименования.
    • Ложь — допускается частичное совпадение (по началу строки).
  • <Родитель> и <Владелец> (необязательные): аналогично параметрам метода НайтиПоКоду.

Особенности:

  • Если наименование встречается несколько раз, возвращается первый найденный элемент.
  • Если элемент не найден, возвращается пустая ссылка.

3. Поиск по произвольному реквизиту

Если необходимо найти элемент по значению конкретного реквизита, используется метод НайтиПоРеквизиту.

Нельзя использовать типовые реквизит Код, Наименование

Синтаксис метода:

<НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>, <Родитель>, <Владелец>)

Пример использования:

НайденныйЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", "01-2328");

Описание параметров:

  • <ИмяРеквизита> (обязательный): строка, задающая имя реквизита, по которому выполняется поиск.
  • <ЗначениеРеквизита> (обязательный): значение искомого реквизита.
  • <Родитель> и <Владелец> (необязательные): аналогично параметрам предыдущих методов.

Особенности:

  • Метод возвращает первый найденный элемент с указанным значением реквизита.
  • Если элемент не найден, возвращается пустая ссылка.

Сравнение методов

Метод Когда применять Особенности
НайтиПоКоду Код элемента известен Быстрый поиск, если код уникален.
НайтиПоНаименованию Известно наименование элемента Удобно для работы когда наименование редко меняется
НайтиПоРеквизиту Необходим поиск по дополнительным реквизитам Гибкий метод для сложных справочников с большим количеством реквизитов.

Заключение

Для поиска элементов справочника в 1С:Предприятие следует выбирать метод в зависимости от имеющихся данных. Если известен код или наименование элемента, использование соответствующих методов (НайтиПоКоду или НайтиПоНаименованию) будет наиболее простым и удобным решением. В случае, когда поиск требует проверки других реквизитов, предпочтителен метод НайтиПоРеквизиту.

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

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

Реклама — это искусство делать из полуправды целую ложь.

— Эдгар Шоафф