Имя: Пароль:
1C
1С v8
Как работать с массивом-параметром в запросе?
0 oleg_prg
 
17.12.12
18:19
Уважаемые форумчане, подскажите пожалуйста, как правильно написать запрос с массивом

Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ *
   |ИЗ &МассивПартий КАК ТПартии";
   Запрос.УстановитьПараметр("МассивПартий", Товары.ВыгрузитьКолонку("Партия"));
   ТЗ = Запрос.Выполнить().Выгрузить();
Выдает ощибку: Содержимое объекта данных может быть выбрано только во временную таблицу

ОК, Делаю иначе
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ Т
   |ИЗ &МассивПартий КАК ТПартии;
   |ВЫБРАТЬ * ИЗ Т";

Выдает  Неверные параметры "МассивПартий"
ИЗ <<?>>&МассивПартий КАК ТПартии;


Я знаю что массив можно использовать в запросе <чтото> В <Массив> но вот сейчас мне нужна именно выборка из массива. Могу конечно в запрос передать всю табличную часть и обратиться к партии, но это не наш метод
Спасибо!
1 Wobland
 
17.12.12
18:20
передай ТЗ
2 Wobland
 
17.12.12
18:20
массив - это не по-нашему, не по-реляционному!
3 Wobland
 
17.12.12
18:21
>в запрос передать всю табличную часть
а ты запроси оттуда
4 oleg_prg
 
17.12.12
18:24
Я верно понял, что так как я хочу сделать выборку из массива -так НЕЛЬЗЯ, можно только через таблицу?
5 Reset
 
17.12.12
18:26
Выбрать Т.Поле Поместить Партии из &Т Как Т;
Выбрать Партии.Поле ИЗ Партии

Запрос.УстановитьПараметр("Т", Товары.Скопировать(,"Партия"));
6 Нуф-Нуф
 
17.12.12
18:26
самое простое, выбирай из таблицы данных того типа, который у тебя в массиве, и ставь условие на этот массив
7 zak555
 
17.12.12
18:26
(2) с чего же ?
8 Reset
 
17.12.12
18:26
Только вместо Поле использовать правильно имя, видимо Партия
9 Нуф-Нуф
 
17.12.12
18:27
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ *
|ИЗ Справочник.Партии КАК ТПартии
|ГДЕ ТПартии в (&МассивПартий)
";
   Запрос.УстановитьПараметр("МассивПартий", Товары.ВыгрузитьКолонку("Партия"));
   ТЗ = Запрос.Выполнить().Выгрузить();
10 Нуф-Нуф
 
17.12.12
18:27
в (9) ошибка, но смысл понятен
11 oleg_prg
 
17.12.12
18:28
Да, все понятно! Спасибо огромное, просветили!!! =)
12 Reset
 
17.12.12
18:28
(4) Выборку из массива - нельзя, только из таблицы (см (5))
но массив можно использовать для отбора (см (9))
13 Wobland
 
17.12.12
18:29
(7) да с того, что массив - не таблица ;)