Имя: Пароль:
1C
1С v8
Проблема с передачей списка значений в запрос - отбирает только первое значение.
0 Humandra
 
16.02.12
19:14
Вечер добрый!
Где-то косяк имею, уже почти с утра промучалась, не нашла.
Есть произвольный запрос динамического списка вида:

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

Есть список значений на динамическом списке. Тип значений - СправочникСсылка.МойСправочник.

Устанавливаю параметр:
Список.Параметры.УстановитьЗначениеПараметра("МойСписокЗначений", МойСписокЗначений);

Проверяю отладчиком: в моем списке значений 3 элемента.
Но запрос возвращает только одну запись, ровно ту, что первая в списке значений!
Пробовала запрос в консоли выполнить - работает, возвращает 3 записи.
Пробовала проверить текст запроса динамического списка - именно тот, что выполняется в консоли.
Пробовала проверить тип значений списка:

Для Каждого СтрокаСписка Из МойСписокЗначенийЦикл
   Если ТипЗнч(СтрокаСписка.Значение) = Тип("СправочникСсылка.МойСправочник") Тогда
       Сообщить(СтрокаСписка.Значение);
   КонецЕсли;
КонецЦикла;
Выводится три раза значение.

Уже замучилась, честно говоря. Плиз, хелп! :(
1 Humandra
 
16.02.12
19:19
Вот похожая тема:
v8: ДинамическийСписок и СписокЗначений.
у человека была ровно та же проблема.
Советуют передавать массив.
Еще не пробовала. Но если так и делать - то что, получается, что в условие <В> нельзя передавать список значений?
2 Humandra
 
16.02.12
19:30
Да, с передачей массива заработало.
Но как так? Это баг? Или где-то описано в документации и является штатным поведением?
3 Humandra
 
16.02.12
20:38
up?
4 vmv
 
16.02.12
20:40
(0) попробуй массив
5 vmv
 
16.02.12
20:42
(2) а уже попробовала - это элементарная логика, а не баг.

зачем множество ссылок передавать в запрос как параметр списком, если массивом это будет экономичнее. Я бы вообще убрал возможность передачи списков в запрос
6 Humandra
 
17.02.12
08:52
(5) Так дело в том, что в документации где-то был даже пример с передачей именно списка значений. Хотя согласна, так правильнее - но тогда пусть ошибку, что-ли, выдают при передаче... я не поняла, почему он списком передает, но ищет только одну строку, какая ТУТ логика.