Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 авг 2021, 13:23

Передача Списка значений параметром в Запрос

Автор blade_snl, 29 июн 2021, 17:34

0 Пользователей и 1 гость просматривают эту тему.

blade_snl

Подскажите пожалуйста.
Есть запрос, обращается через Соm-соединение к другой базе, тут проблем нет.
Проблема возникает, когда я пытаюсь передать не один параметр, а список параметров в запрос:

Запрос = ПодключеннаяБаза.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод,
| ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК НоменклатураНаименование,
| ТоварыНаСкладахОстатки.Номенклатура.Родитель.Наименование КАК НоменклатураРодительНаименование,
| ТоварыНаСкладахОстатки.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
|ГДЕ
| НЕ ТоварыНаСкладахОстатки.Склад.Код В (&СписокСкладов)";

Список = Новый СписокЗначений;   //Создаем массив Кодов Складов, которые уже обработались в основной Процедуре
    Список.Добавить("УТП000001");
Список.Добавить("УТП000002");
Список.Добавить("УТП000003");
Список.Добавить("УТП000004");
Список.Добавить("УТП000005");
Список.Добавить("УТП000006");
Список.Добавить("000000001");
Список.Добавить("000000004");
Список.Добавить("000000005");
Список.Добавить("000000006");
Список.Добавить("000000007");
Список.Добавить("000000111");
Список.Добавить("000000056");
Список.Добавить("000000047");
Список.Добавить("000000113");
Список.Добавить("000000055");
Список.Добавить("000000045");
Список.Добавить("000000054");

    Запрос.УстановитьПараметр("СписокСкладов",Список);

РезультатЗапроса = Запрос.Выполнить();

...в итоге вылетает ошибка:

Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.15.1700): {(10, 41)}: Неверные параметры
НЕ ТоварыНаСкладахОстатки.Склад.Код В (<<?>>&СписокСкладов)

подскажите пожашуйста, что не так? в консольке этот же список отрабатывается без проблем

ef0din

Так попробуйте:
Список = ПодключеннаяБаза.NewObject("СписокЗначений");
Список.Добавить("УТП000001");
Список.Добавить("УТП000002");
Список.Добавить("УТП000003");
Список.Добавить("УТП000004");
Список.Добавить("УТП000005");
Список.Добавить("УТП000006");
Список.Добавить("000000001");
Список.Добавить("000000004");
Список.Добавить("000000005");
Список.Добавить("000000006");
Список.Добавить("000000007");
Список.Добавить("000000111");
Список.Добавить("000000056");
Список.Добавить("000000047");
Список.Добавить("000000113");
Список.Добавить("000000055");
Список.Добавить("000000045");
Список.Добавить("000000054");

Запрос.УстановитьПараметр("СписокСкладов",Список);

LexaK

список значений - это ссылка!
ее надо получить в СОМ-соединении

СписокЗначений = ПодключеннаяБаза.NewObject("СписокЗначений");//или как там точно, погуглите
вот с ним и работайте потом, заполняйте и устанавливайте в виде параметра запроса.
ответ Понравился? (в смысле пригодился?)

blade_snl

Цитата: LexaK от 29 июн 2021, 17:53список значений - это ссылка!
ее надо получить в СОМ-соединении

СписокЗначений = ПодключеннаяБаза.NewObject("СписокЗначений");//или как там точно, погуглите
вот с ним и работайте потом, заполняйте и устанавливайте в виде параметра запроса.

благодарю! теперь знаю куда копать.

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск