Имя: Пароль:
1C
1С v8
Запрос в УТ 10 к Бух 2.0 через COM
0 Alexey_55
 
10.11.12
14:50
В Форме обработки пользователь в список значений добавляет организации.
ищу эти организации в Бух 2.0 и добавляю в Массив, который потом будет использоваться в качестве параметра в запросе.
СписокОрг = Новый Массив;
Для  Каждого Организация Из СписокОрганизаций Цикл
   V8Организация = V8.Справочники.Организации.НайтиПоКоду(Лев(Организация.Значение.Код, 9));
   Если V8Организация = Неопределено Тогда
       Сообщить("Не найдена в Бух организация с кодом: " + Организация.Код);
       Продолжить;
   КонецЕсли;    
   СписокОрг.Добавить(V8Организация.Ссылка);
КонецЦикла;

   |Выбрать  Ссылка из
   |Документ.АвансовыйОтчет
   | ГДЕ
   |       Ссылка.Дата МЕЖДУ &дНач И &дКонечн
   | И   Ссылка.Организация в  ( &СписокОрганизаций )"
   
При выполнении запроса вылетает ошибка

{Форма.Форма1.Форма(285)}: Ошибка при вызове метода контекста (Выполнить)
   мТЗДоков = Запрос.Выполнить().Выгрузить();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.16.352): {(6, 25)}: Неверные параметры
И   Ссылка.Организация <<?>>в  ( &СписокОрганизаций )
1 Alexey_55
 
10.11.12
14:52
такой вопрос как правильно передать список организаций в качестве параметра в запрос?
2 zak555
 
10.11.12
14:53
задача перегрузить из УТ авансовые отчёты в БП ?
3 Alexey_55
 
10.11.12
14:53
Запрос находится в конфигурации Бух, я его выполняю в УТ
4 Alexey_55
 
10.11.12
14:54
нет, задача сверить авансовые отчеты в УТ и Бух
5 Alexey_55
 
10.11.12
14:55
точнее запрос находится в модуле внешнегосоединения Бух
6 Wobland
 
10.11.12
14:59
а массив отдаётся в запрос или непременно СЗ надо?
7 Alexey_55
 
10.11.12
15:04
я пробовал через СЗ и через Массив.
когда в СЗ добавляется COMОбъект, то сам СЗ становится COMОбъектом
Когда Массив, он остается массивом с добавленными COMОбъектами. по идее должен работать, но вылетает ошибка..
8 Alexey_55
 
10.11.12
15:20
ок, убрал это условие, запрос выполняется, но получается пустой..
Если Результат =  Запрос.Выполнить().Выгрузить();
Тип значения Результат получается COMОбъект а не ТаблицаЗначений((

как быть?
мне нужно чтобы была таблица значений, чтобы потом перебрать все авансовые отчеты
9 Alexey_55
 
10.11.12
15:57
я непонятно вопрос сформулировал?
10 sttt
 
10.11.12
17:47
(9) собери запрос конструктором запросов, может поможет...
11 Alexey_55
 
10.11.12
21:01
СписокОрг = Новый СписокЗначений;
Для  Каждого Организация Из СписокОрганизаций Цикл
   V8Организация =     V8.Справочники.Организации.НайтиПоКоду(Лев(Организация.Значение.Код, 9));
   Если V8Организация = Неопределено Тогда
       Сообщить("Не найдена в Бух организация с кодом: " + Организация.Код);
           Продолжить;
   КонецЕсли;    
   СписокОрганизаций.Добавить(V8Организация.Ссылка);
КонецЦикла;
   
Запрос = V8.ПолучитьЗапрос1()  ;// запрос из модуля Внешнего соединения в БП
Запрос.Текст = "ВЫБРАТЬ
                  |    Контрагенты.Ссылка
                  |ИЗ
                  |    Справочник.Контрагенты КАК Контрагенты
                  |ГДЕ
                  |    Контрагенты.Ссылка В(&СписокОрганизаций)";
Запрос.УстановитьПараметр("СписокОрганизаций",  СписокОрганизаций);

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

Вылетает ошибка
{Форма.Форма1.Форма(295)}: Ошибка при вызове метода контекста (Выполнить)
   Результат = Запрос.Выполнить().Выгрузить();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.16.352): {(6, 25)}: Неверные параметры
Контрагенты.Ссылка <<?>>В(&СписокОрганизаций)
12 Alexey_55
 
10.11.12
21:02
ХЕЕЕЛП
13 Alexey_55
 
10.11.12
21:06
этот модуль выполняется в форме обработки, запущенной в УТ
14 hhhh
 
10.11.12
22:23
(13) что-то опять юморите. Зачем список значений в этой базе создаете? Создавайте в той базе.
15 Alexey_55
 
11.11.12
11:57
(14) и там создавать тоже пробовал
16 thezos
 
11.11.12
12:13
(0) не все так просто с запросами через ком. Параметры надо устанавливать на той стороне.
17 thezos
 
11.11.12
12:15
(8) зачем таблица? Испльзуйте выборку.
18 Alexey_55
 
11.11.12
12:34
(14), (16) Все верно, создал СЗ на той стороне, все получилось! спасибо!