Имя: Пароль:
1C
 
Тип, ссылка для параметра в запросе...
,
0 mikecool
 
01.09.23
14:14
Запрос

Выбрать
 Выбор когда &Параметр Ссылка Справочник.Спр1 Тогда Выразить(&Параметр Как Справочник.Спр1).Код
  Когда &Параметр Ссылка Справочник.Спр2 Тогда Выразить(&Параметр Как Справочник.Спр2).Наименование
  Иначе ""
 Конец


если у меня &Параметр есть ссылка на Справочник.Спр1, то получаю ошибку
Несовместимые типы ВЫРАЗИТЬ Выразить(&Параметр Как Справочник.Спр2)


Это почему так? Как попадает в эту ветку вообще?
зы: проверил на типах - то же самое
1 Волшебник
 
01.09.23
14:15
Выразить - для реквизитов составного типа
2 mikecool
 
01.09.23
14:16
(1) от параметра реквизит взять - все равно через Выразить ходить надо, другого пути я не знаю
3 mikecool
 
01.09.23
14:17
+2 и на первое ветвление не ругается, там, где ссылка совпадает
4 Волшебник
 
01.09.23
14:19
(2) Анализируй тип в программном коде. Передай нужное поле в качестве параметра
5 mikecool
 
01.09.23
14:21
(4) для этого нужно совершить еще запрос, чтобы получить нужное поле
да тут дело бы не в том, могу и так сделать
вопрос в другом - как запрос попадает в ветку, в которую попадать не должен?
6 mikecool
 
01.09.23
14:23
+5 видимо "компиляция" проходит независимо от ветвления...
7 mikecool
 
01.09.23
14:25
есть ли выход?
в задаче - сформировать наименование элемента по 3м реквизитам составного типа,
значения реквизитов передаю как параметры, и пытался выкрутиться одним запросом
8 dmt
 
01.09.23
14:36
(7) см (4), если ты передаешь значение как параметр, то что мешает сразу получить тип? вычисление типа не приведет к запросу
9 mikecool
 
01.09.23
14:39
(8) хорошо, есть у меня типы значений, как это мне упростит задачу?
формировать текст запроса динамически или нарисовать дерево если с которых брать нужный текст запроса?
10 Галахад
 
гуру
01.09.23
14:49
Хм.
ВЫБРАТЬ
    ВЫБОР
        КОГДА ТИПЗНАЧЕНИЯ(&Параметр) = ТИП(Справочник.Валюты)
            ТОГДА 1
        КОГДА ТИПЗНАЧЕНИЯ(&Параметр) = ТИП(Справочник.Номенклатура)
            ТОГДА 2
        ИНАЧЕ ""
    КОНЕЦ КАК Поле1
11 ptiz
 
01.09.23
15:45
(7) можно положить параметр во временную таблицу в колонку составного типа