пятница, 20 ноября 2015 г.

Замена ПринадлежитЭлементу(<Элемент>) запросом.

ПринадлежитЭлементу(<Элемент>) (Определяет подчиненность элемента справочника группе с учетом всех уровней иерархии.) - к этой функции нужно относиться с осторожностью.
Если сравнивается пустой элемент справочника,  то вызывается ошибка.
Лучше ее заменить на запрос:
//Запрос(а не принадлежитЭлементу) в этом случае, что бы избежать возможной ошибки с rls
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    Склады.Ссылка
        |ИЗ
        |    Справочник.Склады КАК Склады
        |ГДЕ
        |    Склады.Ссылка В ИЕРАРХИИ(&ГруппаСкладов9)
        |    И Склады.Ссылка = &Ссылка
        |    И НЕ Склады.ЭтоГруппа";

    Запрос.УстановитьПараметр("ГруппаСкладов9", ГруппаСкладов9);
    Запрос.УстановитьПараметр("Ссылка", Склад);
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Возврат Ложь;//Если запрос пустой, то в Группе складов 9 не присутствует Склад, иначе возвращается ссылка на склад, что означает - склад в группе.
    КонецЕсли;
    Возврат Истина;