Каталог решений - Заметка об использовании В ИЕРАРХИИ()

Заметка об использовании В ИЕРАРХИИ()

Заметка об использовании В ИЕРАРХИИ()

В наличии

Очень специфическая задача, в которой мне захотелось использовать В ИЕРАРХИИ()

Категория:

Описание

Происходит некий процесс с участием элемента справочника «номенклатура»
Процесс зависит от того, входят ли группы, содержащие этот элемент в определенный регистр сведений.
Т.о. нужно определить, содержат ли в себе группы, указанные в регистре обрабатываемый элемент.

С ходу я написал примерно следующее:

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Ссылка
|ИЗ Справочник.Номенклатура КАК Номенклатура
|ГДЕ Ссылка = &Ссылка 
| И Ссылка В ИЕРАРХИИ(ВЫБРАТЬ
|                        Группа
|                     ИЗ РегистрСведений.Группы КАК Группы)
|;"

Далее происходит ветвление алгоритма в зависимости от того, пуст результат запроса или нет.
Естественно, при большом справочнике «Номенклатура» это будет работать медленно.

Гораздо эффективнее сделать так:

СписокРодителей = ПолучитьСписокРодителей(Ссылка);//Функция не является стандартной
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Группа
|ИЗ РегистрСведений.Группы КАК Группы
|ГДЕ Группа В (&СписокРодителей) 
|;"

Мораль: решение, кажущееся мне очевидным не всегда лучшее )

has been added to your cart:
Оформление заказа