Имя: Пароль:
1C
1С v8
Проблема преобразования 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
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Строка(ПоступлениеТоваровАльфаАвто.ДокументОснование))));
Довольно длинные конструкции получились... может как-то покороче можно?
Основная теорема систематики: Новые системы плодят новые проблемы.