![]() |
![]() |
![]() |
|
Определение типа реквизита Объекта передаваемого по OLE | ☑ | ||
---|---|---|---|---|
0
Pashkaa
13.11.09
✎
14:06
|
При обмене по OLE получаю Объект (документ) из Источника в Приемник.
Объект имеет Реквизит допустим Контрагент. Тип реквизита Контрагент составной. Как в Приемнике определить тип значения Объект.Контрагент, так не прокатывает ТипЗнч(Объект.Контрагент) Источник.ТипЗнч(Объект.Контрагент) Туплю не пойму какую функцию использовать. |
|||
1
Pashkaa
13.11.09
✎
14:29
|
ап
|
|||
2
asady
13.11.09
✎
14:59
|
юзай ТипЗнчXML()
|
|||
3
Pashkaa
13.11.09
✎
15:49
|
Или XMLТипЗнч?
я пробовал писать и так Источник.XMLТипЗнч(Объект.Реквизит) Вернулось ComОбъект |
|||
4
H A D G E H O G s
13.11.09
✎
15:52
|
(3) а тебе что надо?
|
|||
5
Pashkaa
13.11.09
✎
15:55
|
(4) В Источнике реквизит документа Контрагент имеет составной тип СправочникСсылка.Склад + СправочникСсылка.Контрагент + .... (пример ПКО)
Я в приемнике получит Объект типа документ. Далее мне надо проверить какой тип имеет его Реквизит Контрагент. Т.к. он составной то может принимать разные значения. |
|||
6
ProxyInspector
13.11.09
✎
16:04
|
Создай в глобальном модуле функцию
Функция глТипЗнч(Объект) Возврат ТипЗнч(Объект); КонецФункции а потом пиши: Источник.глТипЗнч(Объект.Контрагент); |
|||
7
ProxyInspector
13.11.09
✎
16:07
|
Так же можно создать функцию
глXMLТипЗнч(объект) - и она будет работать как надо |
|||
8
Pashkaa
13.11.09
✎
16:10
|
(6) (7) Попахивает 7.7-ой :) Там тоже так часть функций приходилось переделывать.
Неужели нет больше выхода? |
|||
9
ProxyInspector
13.11.09
✎
16:14
|
А кто говорил, что будет легко? И если ты хочешь красиво работать на 8-ке, то должен переделать 90% функционала :)
Все это тянется из 7-ки |
|||
10
hhhh
13.11.09
✎
16:14
|
(6) неужели сработает? Вроде всё равно Com-object будет.
|
|||
11
asady
13.11.09
✎
16:23
|
тТипЗнчОЛЕ=БазаОЛЕ.XMLTypeOf(СсылкаНаОбъектОЛЕ);
тИмяТипа = тТипЗнчОЛЕ.ИмяТипа; тПоз=Найти(тИмяТипа,"."); тВид=Лев(тИмяТипа,тПоз-1); тИмя=Сред(тИмяТипа,тПоз+1); Сообщить("вид "+тВид+" имя "+тИмя); |
|||
12
exchang
13.11.09
✎
16:24
|
Вроде бы в соединение ты объект никак не вернешь, поскольку контекст другой.
Только по имени попробовать.. Для каждого Эл Из Реквизит.Type.Types() Цикл Сообщить(ТипЗнч(Эл)); КонецЕсли; |
|||
13
Pashkaa
13.11.09
✎
16:30
|
(11) Ща попробую. Спасибо.
|
|||
14
H A D G E H O G s
13.11.09
✎
16:31
|
(5) Если
Источник.xmlТипЗнч(Объект.Контрагент)=ТИсточник.xmlТипЗнч(Источник.Справочники.Контрагенты.ПустаяСсылка()) Тогда Сообщить("Это контрагент!"); КонецЕсли; |
|||
15
Pashkaa
13.11.09
✎
16:43
|
Прикольно получил в виде строки "CatalogRef.КассыККМ"
|
|||
16
Pashkaa
13.11.09
✎
16:44
|
Это типа СправочникСсылка.КассыККМ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |