В ИЕРАРХИИ с предопределенным значением

1. PerlAmutor 129 22.10.18 13:54 Сейчас в теме
Есть такое выражение в запросе:

ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК Справочник._СпециальныеНастройки).Значение КАК ГруппаЦентральныеСклады

Оно прекрасно работает.

Хотел применить его в блоке "ВЫБОР КОГДА" с "В ИЕРАРХИИ":

ВЫБОР КОГДА Документы.Склад В ИЕРАРХИИ(ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК Справочник._СпециальныеНастройки).Значение) ТОГДА


И 1С не нравится такая конструкция. Сделал через УстановитьПараметр, но хотел обойтись без него.

{(49, 147)}: Неверные параметры "В ИЕРАРХИИ"
КОГДА Документы.Склад В ИЕРАРХИИ(ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК Справочник._СпециальныеНастройки)<<?>>.Значение)
По теме из базы знаний
Найденные решения
10. spacecraft 22.10.18 15:08 Сейчас в теме
(1) как вариант:
ВЫБОР КОГДА Документы.Склад В ИЕРАРХИИ(Выбрать (ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)).Значение) ТОГДА
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. VmvLer 22.10.18 14:20 Сейчас в теме
9. PerlAmutor 129 22.10.18 15:06 Сейчас в теме
(6) Какие 1С придумала, такие и есть.
8. spacecraft 22.10.18 15:06 Сейчас в теме
(1)
Хотел применить его в блоке "ВЫБОР КОГДА" с "В ИЕРАРХИИ"

Нельзя в таких условиях это применять. Это не предопределенный элемент, а реквизит предопределенного элементы, который нужно сначала получить. А в условии нужно использовать уже известные данные.
ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК Справочник._СпециальныеНастройки).Значение КАК ГруппаЦентральныеСклады

Это несколько избыточно. Тут нет выделения типа из составного типа. Достаточно так:
(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) ).Значение КАК ГруппаЦентральныеСклады
10. spacecraft 22.10.18 15:08 Сейчас в теме
(1) как вариант:
ВЫБОР КОГДА Документы.Склад В ИЕРАРХИИ(Выбрать (ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)).Значение) ТОГДА
13. PerlAmutor 129 22.10.18 15:18 Сейчас в теме
(10) Да я к этому уже пришел, мне интересно было мнение остальных программистов. Считаю, что это баг 1С.


ВЫБРАТЬ
	(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)).Значение КАК Ссылка
ПОМЕСТИТЬ втТест;
....
	ВЫБОР
	   КОГДА Документы.Склад В ИЕРАРХИИ (ВЫБРАТЬ Ссылка ИЗ втТест)


ВЫБОР КОГДА Документы.Склад В ИЕРАРХИИ (ВЫБРАТЬ (ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)).Значение) ТОГДА
19. improg 618 28.08.23 12:22 Сейчас в теме
(1)
ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК Справочник._СпециальныеНастройки).Значение КАК ГруппаЦентральныеСклады


По-моему в данном случае Выразить можно опустить:

(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)).Значение КАК ГруппаЦентральныеСклады
20. PerlAmutor 129 29.08.23 06:55 Сейчас в теме
(19) Да, при сравнении можно опустить, это надо лишь когда хочешь достучаться до реквизита склада, т.к. "Значение" у меня составного типа.
2. alex-l19041 8 22.10.18 14:05 Сейчас в теме
 В ИЕРАРХИИ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)) 
3. PerlAmutor 129 22.10.18 14:08 Сейчас в теме
(2) Так Вы получите ссылку на предопределенный элемент справочника _СпециальныеНастройки, а не значение этого предопределенного элемента.
4. alex-l19041 8 22.10.18 14:10 Сейчас в теме
(3) пробовали ? и не работает ?
7. PerlAmutor 129 22.10.18 15:02 Сейчас в теме
(4) Пробовал конечно. Проверяется так:

ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК Справочник._СпециальныеНастройки).Значение = ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады) КАК ОдинаковыеСсылки


Но я вывел оба результата и перешел по ссылкам. Они разные, как я и говорил, одна ссылка - элемент справочника _СпециальныеНастройки, другая ссылка - ссылка хранящаяся в значении элемента этого предопределенного элемента.
11. alex-l19041 8 22.10.18 15:11 Сейчас в теме
(7) а что передаете через УстановитьПараметр ?
5. alex-l19041 8 22.10.18 14:17 Сейчас в теме
через УстановитьПараметр
- передается ссылка
12. Fox-trot 158 22.10.18 15:13 Сейчас в теме
14. PerlAmutor 129 22.10.18 15:19 Сейчас в теме
15. Fox-trot 158 22.10.18 17:49 Сейчас в теме
ВЫБРАТЬ
    Справочник.Ссылка КАК Ссылка
Из Справочник._СпециальныеНастройки КАК Справочник
ГДЕ Справочник.Ссылка В ИЕРАРХИИ (Справочник._СпециальныеНастройки.ЦентральныеСклады)
ПОМЕСТИТЬ втТест;
....
    ВЫБОР
       КОГДА Документы.Склад В (ВЫБРАТЬ Ссылка ИЗ втТест)
16. PerlAmutor 129 22.10.18 18:45 Сейчас в теме
(15) Это заведомо нерабочий код, просто потому, что у Вас идет поиск элемента справочника _СпециальныеНастройки в иерархии предопределенного элемента. Меня же интересует ссылка на группу в справочнике СкладыИМагазины, которая находится в реквизите "Значение" предопределенного элемента справочника _СпециальныеНастройки, но по факту там составной тип, т.ч. может быть ссылка на что угодно. Странно то, что 1С не смущает получение реквизитов через несколько точек (Документы.Ссылка.Организация.БанковскийСчет.Банк.ВалютаСчета.Наименование), для которых она делает соединение с таблицами, а вот с конструкцией "ЗНАЧЕНИЕ(Справочник._СпециальныеНастройки.ЦентральныеСклады)).Значение" используемой В ИЕРАРХИИ() у неё уже затык.
17. Fox-trot 158 22.10.18 19:03 Сейчас в теме
ВЫБРАТЬ
    Справочник.Ссылка КАК Ссылка
Из Справочник.Склады КАК Справочник
ГДЕ Справочник.Ссылка В ИЕРАРХИИ (Справочник._СпециальныеНастройки.ЦентральныеСклады)
ПОМЕСТИТЬ втТест;
....
    ВЫБОР
       КОГДА Документы.Склад В (ВЫБРАТЬ Ссылка ИЗ втТест)
18. PerlAmutor 129 22.10.18 19:30 Сейчас в теме
(17) Не вариант, т.к. Вы пытаетесь найти элементы справочника склады в иерархии группы справочника _СпециальныеНастройки ) Типы ссылок заведомо разные
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот