Имя: Пароль:
1C
1С v8
Запрос к другой базе через СОМ объект
0 Конфигуратор1с
 
22.08.12
18:17
Можно ли в таком случае использовать тз как параметр?
1 ЧашкаЧая
 
22.08.12
18:21
ТЗ созданный в COM-объекте наверняка можно.
2 Конфигуратор1с
 
22.08.12
18:22
(1) То есть создавать не только запрос и менеджер временных таблиц, но и саму тз? СПасибо. Сейчас попробую
3 Конфигуратор1с
 
22.08.12
18:45
(1)А как мне тип колонки строки задать в СОМ объекте?
4 Конфигуратор1с
 
22.08.12
18:45
Запрос = Соединение.NewObject("Запрос");
   
   Менеджер = Соединение.NewObject("МенеджерВременныхТаблиц");
   Тип = Соединение.NewObject("ОписаниеТипов");
   Тип.Типы().Добавить(Тип("Строка"));
   ТаблицаЗначений = Соединение.NewObject("ТаблицаЗначений");
   ТаблицаЗначений.Колонки.Добавить("Артикул",Тип);
Пишет Тип ВТ.Артикул не может использоваться в запросе
5 GenV
 
22.08.12
18:53
(0) Попробуй так:
   Тип = Соединение.NewObject("ОписаниеТипов", "Строка");
6 Конфигуратор1с
 
22.08.12
19:12
(5)Спасибо большое, работает!!!
7 Конфигуратор1с
 
22.08.12
19:12
(1)И Вам спасибо!!!
8 Конфигуратор1с
 
22.08.12
19:13
Результат


Запрос = Соединение.NewObject("Запрос");
   
   Менеджер = Соединение.NewObject("МенеджерВременныхТаблиц");
   Тип = Соединение.NewObject("ОписаниеТипов","Строка");
   //Тип.Типы().Добавить(Тип("Строка"));
   ТаблицаЗначений = Соединение.NewObject("ТаблицаЗначений");
   ТаблицаЗначений.Колонки.Добавить("Артикул",Тип);//,Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(13)));
//    ТаблицаЗначений.Колонки.Добавить("Остаток");//,Новый ОписаниеТипов("Число"));          
   
   Для каждого Строка Из СкладыМенеджерская Цикл
   
       НоваяСтрока = ТаблицаЗначений.Добавить();
       НоваяСтрока.Артикул = Строка.Код;
   
   КонецЦикла;
   
   Запрос.МенеджерВременныхТаблиц = Менеджер;
   Запрос.УстановитьПараметр("Таблица",ТаблицаЗначений);
   Запрос.Текст = "ВЫБРАТЬ
   |    ВТ.Артикул КАК Артикул
   |ПОМЕСТИТЬ ВТ
   |ИЗ
   |    &Таблица КАК ВТ
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ  *
   |    ИЗ
   |    ВТ КАК ВТ";
   
   тз1 = Запрос.Выполнить().Выгрузить();
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой