Выгрузить колонку из ТЗ #656993


#0 by Meilleur
Приветствую всех! Может, кто-нибудь сталкивался. У меня есть ТЗ, полученная через COM соединение с другой базой 1С. Мне необходимо выгрузить колонку из этой ТЗ в отдельный массив. Так как данная ТЗ является COM-объектом, метод "Выгрузить колонку" вызвать не получается, вылетает по ошибке. Или я что-то путаю? Как можно выгрузить колонку, не прибегая к циклическому перебору строк из ТЗ? Спасибо!
#1 by acsent
нужно safearray передавать
#2 by Галахад
Как-то так: массивТам = Запрос.Выполнить.Выгрузить.ВыгрузитьКолонку("ОченьНужнаяКолонка") МассивТут = ЗначениеИзСтрокиВнутр(Там.ЗначениеВСтрокуВнутр(массивТам))
#3 by zladenuw
#4 by Meilleur
Именно здесь и вылетает.
#5 by Meilleur
У меня результат запроса или же выгрузка из него имеют тип COMОбъект. Как мне к COMSafeArray перейти при этом?
#6 by Галахад
Может в коде чего?
#7 by Meilleur
В коде все просто: В результате все переменные: Рез, Выгрузка и ДанныеПоКолонке имеют тип COMОбъект различной структуры. Но выгрузить значения  в массив или список значений ни из одной полученной переменной у меня не получается.
#8 by Галахад
Наверное ругается как-то?
#9 by Reset
Ты проигнорировал?
#10 by Reset
Колонку с кодом так легко пернести, т.к. тип данных примитивный
#11 by Defender aka LINN
Вообще-то ДанныеПоКолонке - массив. Просто ты этого понять не можешь.
#12 by Meilleur
Спасибо за комплимент! Немного уточню. Не получается выгрузить в массив, который бы я передал на входе в качестве параметра для другого запроса.
#13 by Reset
Посочувствовать нужно или что?
#14 by Reset
Ответ дали вроде.
#15 by Рэйв
Если массив содержит числа,даты или строки  - создай массив местной базе и заполни его перебрав полученный COM массив. Если содержит ссылки СОМ базы, то тебе придется брать у них код (или что-то еще) и искать локально
#16 by Reset
Он не хочет перебором (см )
#17 by Рэйв
А... Ну,мало ли что он не хочет..
#18 by Meilleur
Да, все правильно! Данные выгружаются без проблем и очень быстро в отличие от перебора. Просто первый оператор необходимо разбить на несколько, как я и сделал. Но второй оператор я ввиду ошибочного первого проигнорировал...
#19 by Meilleur
Спасибо!
#20 by skunk
все это хорошо будет работать пока базы индентичны
#21 by Meilleur
Задача и заключается в том, чтобы синхронизировать один объект в двух базах.
#22 by skunk
вот и получиш жопу когда будешь синхранизировать объект которого нет в базах
#23 by Галахад
"Просто первый оператор необходимо разбить на несколько, как я и сделал." Почему? А как в не работает? А какая разница для простых типов?
#24 by Reset
Все будет работать даже в совершенно различных базах и кофигурациях до тех пор, пока в коллекции будут только примитивные типы
#25 by skunk
а ты уверен, что там простые типы?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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