|
Тип("....") как использовать в СОМ - соединении | ☑ | ||
---|---|---|---|---|
0
Sasha_H
14.06.13
✎
10:48
|
Есть СОМ-соединение к другой ИБ. Необходимо собрать СКД и исполнить это все дело на стороне СОМ-базы. Натолкнулся вот на такую проблему:
ИсточникДанных = СхемаКомпоновкиCOM.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных1"; ИсточникДанных.ТипИсточникаДанных = "Local"; НаборДанных = СхемаКомпоновкиCOM.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"), как типизироваться со стороны СОМ? СоединениеBase_COM.Тип("НаборДанныхЗапросСхемыКомпоновкиДанных") - не помагает пробовал юзать XMLТип(), но ошибочно так как возвращает этот метод не тот тип. Разве надо для этого использовать специализированную функцию в другой ИБ которая вернеть мне нужный тип? |
|||
1
hhhh
14.06.13
✎
11:08
|
да, конечно, нужно тип из другой ИБ. Просто Тип() по-любому не прокатит - это не тот тип, в другой ИБ таких типов нет.
попробуй по английски написать СоединениеBase_COM.Type |
|||
2
Sasha_H
14.06.13
✎
11:30
|
(1)
{ВнешняяОбработка.СравнениеБазCOMСоединение.МодульОбъекта(20)}: Метод объекта не обнаружен (Type) НаборДанных = СхемаКомпоновкиCOM.НаборыДанных.Добавить(СоединениеBase_COM.Type("НаборДанныхЗапросСхемыКомпоновкиДанных")); |
|||
3
Serginio1
14.06.13
✎
11:54
|
Используйте внешние отчеты. С ними все намного проще
v8: Можно ли по OLE выполнять запросы из 1с 7.7 в 1с 8.2 |
|||
4
Sasha_H
14.06.13
✎
11:54
|
Это не ОЛЕ! а СОМ-соединение!
|
|||
5
Sasha_H
14.06.13
✎
11:55
|
(3) Запрос я знаю чито можно, мне надо схему СКД собрать!
|
|||
6
Ковычки
14.06.13
✎
11:56
|
СоединениеBase_COM.Вычислить("Тип(""НаборДанныхЗапросСхемыКомпоновкиДанных"")")
? |
|||
7
Sasha_H
14.06.13
✎
11:57
|
Здесь встретиол аналогичную проблему, правда человек так ине понял почему у него не работает: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=588208
КС_Э = DataSource.NewObject("КвалификаторыСтроки",250); Массив_Э = DataSource.NewObject("Массив"); Массив_Э.Добавить(Тип("Строка")); ОписаниеТиповС_Э = DataSource.NewObject("ОписаниеТипов",Массив_Э,Неопределено,КС_Э); |
|||
8
Sasha_H
14.06.13
✎
11:58
|
(6) метод объекта не обнаружен Вычислить
|
|||
9
shurikvz
14.06.13
✎
11:59
|
XMLТип()
ИзXMLТипа() |
|||
10
Sasha_H
14.06.13
✎
11:59
|
(9) смотри в (0) пробовал юзать XMLТип(), но ошибочно так как возвращает этот метод не тот тип.
|
|||
11
Sasha_H
14.06.13
✎
12:03
|
Я понял, тут видимо функцию делать чтобы возвращала нужный тип из Вне, либо запросами по-старинке.
|
|||
12
Serginio1
14.06.13
✎
12:05
|
(4) А какая разница? Вызвать внешний отчет ты можешь и через V8x.COMConnector
|
|||
13
shurikvz
14.06.13
✎
12:05
|
(10) ?
а какой? ИмяТипаСтрокой = XMLТип(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")).ИмяТипа; НаборДанных = СхемаКомпоновкиCOM.НаборыДанных.Добавить(СоединениеCOM.ИзXMLТипа(ИмяТипаСтрокой, "")); |
|||
14
Sasha_H
14.06.13
✎
12:07
|
(13) XMLТип(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")) - это уже падает НЕОПРЕДЕЛЕНо возвращает
|
|||
15
Ковычки
14.06.13
✎
12:09
|
||||
16
Sasha_H
14.06.13
✎
12:18
|
(15) спс, то что надо!
Функция ТипВнешнегоСоединения(ИмяТипа) Описатель = СоединениеBase_COM.NewObject("ОписаниеТипов",ИмяТипа); НужныйТип = Описатель.Типы().Получить(0); Возврат НужныйТип; КонецФункции |
|||
17
shurikvz
14.06.13
✎
18:36
|
(14) Объяснили. Моя невнимательность. Не XMLТип(), а СериализаторXDTO.XMLТип(). Вот так правильно:
ТипXML = СериализаторXDTO.XMLТип(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); //НаборДанных = СхемаКомпоновкиCOM.НаборыДанных.Добавить(Соединение.СериализаторXDTO.ИзXMLТипа(ТипXML)); НаборДанных = СхемаКомпоновкиCOM.НаборыДанных.Добавить(СоединениеCOM.СериализаторXDTO.ИзXMLТипа(ТипXML.ИмяТипа, ТипXML.URIПространстваИмен)); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |