|
Проблема преобразования Comобъект в ссылку на стороне коннектора | ☑ | ||
---|---|---|---|---|
0
nobody
03.12.14
✎
13:29
|
Добрый день, имею 2 конфигурации: А (платформа 8.3, БП 3.0) и Б (платформа 8.3, самописаная в режиме совместимости 8.2). Подключаюсь из базы А к базе Б (v83.connector), получаю Comобъект (ссылка из справочника в базе Б), потом вызываю функцию из базы Б, параметром указываю полученный Comобъект, в функции код, который возвращает строку ТипЗнч(мой параметр).
После вызова функции я получаю строку "Com объект", но ведь на стороне коннектора должно произойти преобразование в ссылку базы Б и вернутся тип ссылки? Что я делаю не так, почему так может быть? Версии платформы 8.3.5.1248, использование v82.connector ситуацию не меняет. |
|||
1
Maxus43
03.12.14
✎
13:31
|
>>и вернутся тип ссылки
|
|||
2
Зеленый пень
03.12.14
✎
13:31
|
(0) ТипЗнч - это не строка, а объект с типом "Тип"
|
|||
3
nobody
03.12.14
✎
13:34
|
(1) нет, я вызываю функцию из той базы, в которой происходит получение типа параметра (ТипЗнч) и возврат строки в мою базу. Но, возращается строка "Ком объект", то есть "та" не преобразует свой же комобъект в ссылку.
(2) да, там Строка(ТипЗнч()) |
|||
4
Maxus43
03.12.14
✎
13:37
|
погляди в сторону XMLТипЗнч и XMLТип |
|||
5
nobody
03.12.14
✎
13:41
|
(4) ведь всегда работал тот метод, что я хочу использовать. мне нужно передавать этот объект в другие процедуры коннектора. (саму задачу получить тип можно решить и на стороне клиента, вызовом Значение.Метаданные().ПолноеИмя())
|
|||
6
nobody
03.12.14
✎
13:42
|
Нормально преобразует строки, булево, число, их тип возвращает, справочники и перечисления - нет.
|
|||
7
nobody
03.12.14
✎
13:51
|
СОМ.XMLString работает, когда в параметре comобъект типа документ, и выдает ошибку, если там справочник.
|
|||
8
Зеленый пень
03.12.14
✎
13:54
|
(3) Покажи, где и как выполняешь Строка(ТипЗнч()).
Ну и вообще, Строка - это не хорошо, см. (4) |
|||
9
Maxus43
03.12.14
✎
13:54
|
XMLString вернёт тебе гуид, а не тип |
|||
10
nobody
03.12.14
✎
13:55
|
(9) он возвращает гуид только для документа, когда я туда передаю справочник - ошибка преобразования типа.
|
|||
11
nobody
03.12.14
✎
13:57
|
(8) в базе, к которой подключаюсь в общем модуле функция
функция вернутьтипстрокой (параметр) экспорт возврат(строка(типзнч())); конецфункции Работает она нормально, но возвращает строку "Сом объект", а должна же преобразовать в ссылку базы данных, ведь я туда передаю сомобъект справочника из этой же базы. |
|||
12
nobody
03.12.14
✎
14:08
|
вот нашел похожую проблему v8: Проблема передать ссылку на документ в запрос через COM.
|
|||
13
nobody
03.12.14
✎
14:41
|
если открыть выборку на коннекторе, то работает нормально, если же мой передаваемый comобъект (справочникссылка) это реквизит другого comобъект (документа), то преобразование не происходит..
|
|||
14
nobody
05.12.14
✎
12:49
|
предыдущий программист в коде между делом переподключался к коннектору, вот ничего и не работало. жизнь прекрасна.
|
|||
15
Mikhail Volkov
11.12.14
✎
20:35
|
Ну и как, удалось определить ТипЗнч() для СомОбъекта?
|
|||
16
Mikhail Volkov
11.12.14
✎
20:58
|
По GUID СомОбъекта можно определить его ТипЗнч()?
|
|||
17
Mikhail Volkov
11.12.14
✎
21:26
|
СомОбъектСсылка.Метаданные().Имя
|
|||
18
France
11.12.14
✎
21:37
|
Найти нужный элемент по ком мне могешь??
|
|||
19
Mikhail Volkov
11.12.14
✎
22:30
|
(18) Его ссылка или GUID известен?
|
|||
20
Mikhail Volkov
12.12.14
✎
09:08
|
+ (19) У меня такая ситуация: документы поступления в нашу базу КА приходят через Com-соединение из базы поставщика (партнера) Альфа-Авто. Еще понадобилось, чтобы по этим поступлениям автоматом формировались СФ полученные. А для них нужен НомерВходящегоДокумента, т.е. номер СФ выданной из базы поставщика. Ее там можно найти лишь по основанию моего документа поступления. Свое поступление там в Альфа-Авто нахожу по GUIDу:
ПоступлениеТоваровАльфаАвто = СомОбъектАльфаАвто.Документы.ПоступлениеТоваров.ПолучитьСсылку(СомОбъектАльфаАвто.NewObject("УникальныйИдентификатор", Строка(ДокОбъект.Ссылка.УникальныйИдентификатор()))); А вот тип основания может быть разным: реализация товаров, автомобилей, заказ-наряд: РеализацияАльфаАвто = СомОбъектАльфаАвто.Документы[ПоступлениеТоваровАльфаАвто.ДокументОснование.Метаданные().Имя].ПолучитьСсылку(СомОбъектАльфаАвто.NewObject("УникальныйИдентификатор", Строка(СомОбъектАльфаАвто.XMLСтрока(ПоступлениеТоваровАльфаАвто.ДокументОснование)))); Довольно длинные конструкции получились... может как-то покороче можно? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |