Имя: Пароль:
1C
1С v8
Проверка на вхождение параметра запроса в иерархию.
0 фпк1сл
 
22.07.17
12:05
Добрый день!
Уважаемые гуру, подскажите пожалуйста, что делаю неправильно?
Есть параметр запроса Сегмент, хочу в запросе проверить, входит ли он в иерархию.
Сегмент - элемент справочника
РодительСегмента - группа этого же справочника.
&Сегмент1 В ИЕРАРХИИ(РодительСегмента) - на такую конструкцию ругается Неверные параметры "В ИЕРАРХИИ" &Сегмент1 В ИЕРАРХИИ(<<?>>РодительСегмента).
1 Волшебник
 
модератор
22.07.17
12:51
нужно наоборот
РодительСегмента В ИЕРАРХИИ(&Сегмент1)
2 фпк1сл
 
22.07.17
13:04
Спасибо за ответ!
Да вот в том то и дело, что я передаю в запрос сегмент, в результате запроса я получаю группу сегмента, и мне нужно проверить входит ли этот сегмент в иерархию полученной группы.
Я так понял, что конструкция "В ИЕРАРХИИ" работает только с параметрами запроса, поэтому буду дообрабатывать результат запроса отдельно.
4 Волшебник
 
модератор
22.07.17
13:06
(2) Вам нужно исправить запрос. Покажите запрос.
5 фпк1сл
 
22.07.17
13:13
"ВЫБРАТЬ
    |    ПараметрыРаспределенияНоменклатуры.ГруппаДоступа КАК ГруппаДоступа,
    |    ПараметрыРаспределенияНоменклатуры.Приоритет КАК Приоритет,
    |       ПараметрыРаспределенияНоменклатуры.Сегмент КАК Сегмент
    |ИЗ
    |    РегистрСведений.ПараметрыРаспределенияНоменклатуры КАК ЗГ_ПараметрыРаспределенияНоменклатуры
    |ГДЕ
    |                ВЫБОР
    |            КОГДА ПараметрыРаспределенияНоменклатуры.Наименование = """"
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ &Наименование ПОДОБНО ""%"" + ПараметрыРаспределенияНоменклатуры.Наименование + ""%""
    |        КОНЕЦ
    |    И ВЫБОР
    |            КОГДА ПараметрыРаспределенияНоменклатуры.Сегмент = ЗНАЧЕНИЕ(Справочник.СегментыНоменклатуры.ПустаяСсылка)
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ ВЫБОР
    |                        КОГДА ПараметрыРаспределенияНоменклатуры.Сегмент.ЭтоГруппа = ИСТИНА
    |                            ТОГДА &Сегмент1 В ИЕРАРХИИ(Сегмент)
    |                        ИНАЧЕ &Сегмент1 = Сегмент
    |                    КОНЕЦ
    |                    ИЛИ ВЫБОР
    |                        КОГДА Сегмент.ЭтоГруппа = ИСТИНА
    |                            ТОГДА &Сегмент2 В ИЕРАРХИИ(Сегмент)
    |                        ИНАЧЕ &Сегмент2 = Сегмент
    |                    КОНЕЦ
    |        КОНЕЦ";

Немного лирики. Есть РС ПараметрыРаспределенияНоменклатуры, в котором есть 3 измерения, ГруппаДоступа, Сегмент(справочник сегменты номенклатуры), Наименование(строка). При записи номенклатуры ищу настройку по наименованию и сегментам, и завожу запись в другом РС номенклатура-группа доступа.
6 youalex
 
22.07.17
13:34
(2) >Я так понял, что конструкция "В ИЕРАРХИИ" работает только с параметрами запроса,

C  подзапросами - тоже работает.
Например
ГДЕ Ссылка В ИЕРАРХИИ (ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура)