Преобразование COMОбъект в прикладной тип данных (Таблица Значений) #436047


#0 by linkerr
Вопрос: 1. Подключились к базе 8.1 по COM 2. Сделали NewObject("Запрос") в этой базе 3. Выполнили запрос и выгрузили в таблицу значений 4. Для основной базы таблица значений остается COM-объектом Таблица значений далее используется в методе Загрузить ТЧ документа. Проблема в том, можно ли преобразовать таблицу значений из COM-объекта в прикладной тип ТаблицаЗначений без использования перебора элементов?
#1 by ТелепатБот
#2 by Mitriy
настолько лень перебор сделать?
#3 by linkerr
Вопрос в том есть ли функция, которая может сделать приведение типов? Ведь в сущности нету смысла делать такую затратную операцию, как перебор, если можно было бы просто сказать 1С, что это таблица значений.
#4 by hhhh
и ежу понятно, что перебор в любом случае работает быстрее. С чего ты взял, что Загрузить работает быстрее, чем перебор?
#5 by Valery
В данном случае перебор и будет являтся преобразованием типов.
#6 by gromozeka07b9
Нет. Тебе нужно не приведение типов. В удаленной базе у тебя и так тип - ТЗ. А в основной - тоже ТЗ, но в обертке ComObject, от которой просто так не избавишься - только бежать по циклу. Я бы лучше сериализовал эту ТЗ в удаленной системе, и загрузил ее строкой  в основную, тогда никаких траблов с ComObject не будет.
#7 by linkerr
Для 4: Загрузить системный метод в отличие перебора, который является алгоритмом написанным на внутреннем языке. Априори системный метод работает быстрее, чем моя писанина на встроенном языке. Для 5: Это понятно. Но речь идет о встроенной функции преобразования типов.
#8 by b_ru
>>Априори системный метод работает быстрее, чем моя писанина на встроенном языке.
#9 by linkerr
для 6: Выходит, что нету встроенной функции преобразования типов, чтобы вот так вот просто избавиться от "обертки" ComObject?
#10 by gromozeka07b9
Нет. Я ж говорю - преобразовывать нечего. У тебя тип по-любому в обеих системах - ТЗ. Только работая в основной базе с этой ТЗ ты обязан пользоваться пространством имен именно удаленной базы - для того в ComObject и обернута ТЗ. И методы объекта ТЗ ты можешь вызывать только из пространства удаленной базы, через обертку ComObject. Т.е. ты не можешь в основной базе сделать что-то типа: ТЗCom.Загрузить, поскольку ТЗCom - это ТЗ удаленной базы, а метод Загрузить - из основной.
#11 by linkerr
Для 9: Большое спасибо за ответ. Ты очень помог. P.S.   Благодаря вам теперь я должен шоколадку коллеге.
#12 by Defender aka LINN
Ну, вообще-то есть. Но не совсем универсальный.
#13 by gromozeka07b9
Какой?
#14 by Defender aka LINN
ЗначениеВСтрокуВнутр/ЗначениеИзСтрокиВнутр
#15 by gromozeka07b9
смотри пост 6
#16 by Defender aka LINN
Не заметил :)
#17 by gromozeka07b9
Бывает :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С