Имя: Пароль:
1C
 
COM запрос с параметрами
0 Никулин Леонид
 
01.04.16
10:24
Здравствуйте!

Подключаюсь к базе источнику по COM. Создаю запрос и передаю в него параметры. При выполнении получаю ошибку((. Изюмина в параметре с типом Массив. Этот же запрос без параметра Массив отрабатывает. Подскажите можно ли решить проблему? Ниже добавлю текст модуля и ошибки  

Спасибо!
1 Никулин Леонид
 
01.04.16
10:27
V83 = Новый COMObject("V83.COMConnector");
    БазаИсточник = V83.Connect("Srvr="+Сервер+";Ref="+ИнформационнаяБаза+";Usr="+Пользователь+";Pwd="+Пароль);
        
    Запрос = БазаИсточник.NewObject("Запрос");
    Запрос.Текст = "ВЫБРАТЬ
                   |    Контрагенты.Представление
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |ГДЕ
                   |    Контрагенты.Код В(&МассивКодов)";
    Запрос.УстановитьПараметр("МассивКодов", МассивКодов);
    
    COM_ТаблицаКонтрагентов = Запрос.Выполнить().Выгрузить();
2 lubitelxml
 
01.04.16
10:29
ошибку покажи
3 Никулин Леонид
 
01.04.16
10:30
Где МассивКодов массив с двумя элементами. В базе к которой подключаюсь запрос отрабатывает.

Получаю следующую ошибку

{Форма.Форма.Форма(146)}: Ошибка при вызове метода контекста (Выполнить)
    COM_ТаблицаКонтрагентов = Запрос.Выполнить().Выгрузить();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.4.465): {(6, 18)}: Неверные параметры
Контрагенты.Код <<?>>В(&МассивКодов)
4 Никулин Леонид
 
01.04.16
10:34
Для отладки попробовал такую конструкцию:

V83 = Новый COMObject("V83.COMConnector");
    БазаИсточник = V83.Connect("Srvr="+Сервер+";Ref="+ИнформационнаяБаза+";Usr="+Пользователь+";Pwd="+Пароль);
        
    Запрос = БазаИсточник.NewObject("Запрос");
    Запрос.Текст = "ВЫБРАТЬ
                   |    Контрагенты.Представление
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |ГДЕ
                   |    Контрагенты.Код  = &Код";
    Запрос.УстановитьПараметр("Код", "00030");
    
    COM_ТаблицаКонтрагентов = Запрос.Выполнить().Выгрузить();

Все отработало правильно. Не хочет запрос работать с Массивом в параметре((. Подскажите это платформа или как обычто ручки кучявые?
5 lubitelxml
 
01.04.16
10:36
а если пробел после "В" поставить: Контрагенты.Код В (&МассивКодов)?
6 Никулин Леонид
 
01.04.16
10:39
(5) Я тоже уже об этом подумал.Текст запроса формирует КонструкторЗапроса. Все равно попробовал добавить пробел. Не помогло
7 lubitelxml
 
01.04.16
10:42
8 lubitelxml
 
01.04.16
10:43
9 Тролль главный
 
01.04.16
10:43
МассивКодов надо создавать в COM-соединении
10 assasu
 
01.04.16
10:45
МойМассив = БазаИсточник.NewObject("Массив");
11 Никулин Леонид
 
01.04.16
10:49
Ух ты! Сейчас буду пробовать...
12 assasu
 
01.04.16
10:49
век живи - век учись
13 Никулин Леонид
 
01.04.16
10:55
Юху! Взлетело. Благодарю всех за активность и поздравляю всех с днем дурака