Способы поиска элементов справочника в 1С:Предприятие 8
В 1С предусмотрено несколько способов поиска элементов справочника. Рассмотрим основные из них:
1. Поиск по коду
Если известен код элемента справочника, для получения ссылки на элемент можно воспользоваться методом НайтиПоКоду
.
Синтаксис метода:
НайтиПоКоду(<Код>, <ПоискПоПолномуКоду>, <Родитель>, <Владелец>)
Пример использования:
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду("0000000347"); Если НайденныйЭлемент.Пустая() Тогда НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду(347); КонецЕсли
Описание параметров:
<Код>
(обязательный): искомый код элемента (тип — строка или число).<ПоискПоПолномуКоду>
(необязательный): логический параметр, определяющий поиск по полному коду (по умолчанию —Ложь
).<Родитель>
(необязательный): ссылка на родительский элемент, в пределах которого осуществляется поиск.<Владелец>
(необязательный): ссылка на владельца, ограничивающего область поиска.
Особенности:
- Если в справочнике несколько элементов с одинаковым кодом, возвращается первый найденный.
- При отсутствии элемента возвращается пустая ссылка.
2. Поиск по наименованию
Если известно наименование элемента, можно использовать метод НайтиПоНаименованию
.
Синтаксис метода:
НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)
Пример использования:
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоНаименованию("Услуги перевозки");
Описание параметров:
<Наименование>
(обязательный): строка с искомым наименованием.<ТочноеСоответствие>
(необязательный): логический параметр для определения точности поиска (по умолчанию —Ложь
).Истина
— требуется полное совпадение наименования.Ложь
— допускается частичное совпадение (по началу строки).
<Родитель>
и<Владелец>
(необязательные): аналогично параметрам методаНайтиПоКоду
.
Особенности:
- Если наименование встречается несколько раз, возвращается первый найденный элемент.
- Если элемент не найден, возвращается пустая ссылка.
3. Поиск по произвольному реквизиту
Если необходимо найти элемент по значению конкретного реквизита, используется метод НайтиПоРеквизиту
.
Нельзя использовать типовые реквизит Код, Наименование
Синтаксис метода:
<НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>, <Родитель>, <Владелец>)
Пример использования:
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", "01-2328");
Описание параметров:
<ИмяРеквизита>
(обязательный): строка, задающая имя реквизита, по которому выполняется поиск.<ЗначениеРеквизита>
(обязательный): значение искомого реквизита.<Родитель>
и<Владелец>
(необязательные): аналогично параметрам предыдущих методов.
Особенности:
- Метод возвращает первый найденный элемент с указанным значением реквизита.
- Если элемент не найден, возвращается пустая ссылка.
Сравнение методов
Метод | Когда применять | Особенности |
---|---|---|
НайтиПоКоду | Код элемента известен | Быстрый поиск, если код уникален. |
НайтиПоНаименованию | Известно наименование элемента | Удобно для работы когда наименование редко меняется |
НайтиПоРеквизиту | Необходим поиск по дополнительным реквизитам | Гибкий метод для сложных справочников с большим количеством реквизитов. |
Заключение
Для поиска элементов справочника в 1С:Предприятие следует выбирать метод в зависимости от имеющихся данных. Если известен код или наименование элемента, использование соответствующих методов (НайтиПоКоду
или НайтиПоНаименованию
) будет наиболее простым и удобным решением. В случае, когда поиск требует проверки других реквизитов, предпочтителен метод НайтиПоРеквизиту
.
Важно понимать: такой вариант приемлем для уникальных значений, рекомендуем всё таки использовать для этого запросы, которые позволяют гибче работать с данными (исключать группы, помеченные на удаление, сортировать в произвольном порядке)
Эти же методы можно использовать для работы с “Планом видов характеристик“, это более функциональный вариант справочника, но с другими достоинствами
Реклама — это искусство делать из полуправды целую ложь.