Имя: Пароль:
1C
1С v8
Как обратиться к временной таблице в разделе ГДЕ пакета запросов?
0 Const31
 
05.11.15
17:18
Здравствуйте. Подскажите, пожалуйста.

Можно написать вариант с вложенным запросом.

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


Если переписать то же самое в виде пакета запросов.

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


Как теперь обратиться к временной таблице в разделе ГДЕ пакета запросов (посл.строка)?
Если использовать символ "&" как здесь, это воспринимается как параметр, а если без него
возникает синтаксическая ошибка вроде несуществующего поля. Смысл в том, чтобы один
раз получить проиндексированную по ссылке врем.таблицу нужных видов номенклатуры,
а затем использовать ее в разных запросах пакета. Пример с видом номенклатуры выбран
для простоты. Первый запрос пакета (или вложенный в первом варианте) может выполняться
по таблице сод.большое число записей. Может есть еще варианты с пакетом запросов?
1 VikingKosmo
 
05.11.15
17:19
Так же как и в первом запросе, только написать
ИЗ ТвояВТ КАК ТвояВТ
2 Nuobu
 
05.11.15
17:20
Номенклатура.ВидНоменклатуры В
|                (ВЫБРАТЬ
|                    ВидыНоменклатуры.Ссылка
|                ИЗ
|                    ВремТаблВидНоменклатуры КАК ВидыНоменклатуры)"
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн