Обмен данными Delphi -> 1C #404829


#0 by Griffon_SB
Доброго времени суток. Решил написать ВК для перебора членов (объектов коллекции) WMI класса. Если в 8.0 мы можем использовать для коллекциq замечательную конструкцию "для каждого из", то в 7.7, как пишет Андрей Михайлов в своей книге "1С:Предприятие. Системное программирование", необходимо использовать ВК. В своей внешней компоненте я использую библиотеку WMIEXTENSIONLib_TLB с такими типами данных, как SWbemObject, SWbemPropertySet. Функция получает коллекцию и порядковый  номер объекта который нужно вернуть 1С-ке, находит этот объект и присваивает значению функции, как я понимаю, указатель на нужный объект. 1С получает НЕЧТО, что на просьбу "Сообщить(НЕЧТО;" выдает "OLE.ISWbemObjectEx". Вряд ли это объект WMI класса, потому как на любое свойство (н-р Caption) этого объекта выдает "Значение не представляет агрегатный объект (Caption)". Одним словом я в тупике и бьюсь уже несколько дней. С самим Дельфи работаю всего неделю, так что просьба не критиковать сильно: function TWMIExplorer.EnumerateCollection(const ObjSet: ISWbemObjectSet; и кусок кода 1С:
#1 by ТелепатБот
#2 by dk
э.... а может проще vbs использовать для перебора елементов коллекции?
#3 by Griffon_SB
WSC как один из способов - отлично. Использую его на крайняк. Просто взялся уже за ВК и Delphi, и сдаваться не хочу. Интересно ужасно что же все таки возвращает в этом случае Delphi
#4 by Griffon_SB
Еще один интересный момент: в Делфях задаю параметры своей функции. Для входящих это тип WMI коллекции ISWbemObjectSet * и Long *. Когда пытаюсь задать для выходного параметра тип ISWbemObject * выдается сообщение, что выходной параметр может быть только указательного типа и чего-то никак не могу понять: ISWbemObject * - это разве не указательный тип данных??? 1С же передало успешно ISWbemObjectSet как указатель, а вернуть Делфи не может этот же параметр? Может кто-то сможет мне разъяснить это?
#5 by Griffon_SB
Up!
#6 by FN
Пример по коллекции: Функция читает список компьютеров, зарегистрированных в доменах локальной сети, и возвращает таблицу значений с колонками "Домен" и "Компьютер": Может не стоит ВК писать для этого?
#7 by Ковычки
Да уж...(с)
#8 by Griffon_SB
Спасибо FN, но дело в том что текст такого решения открыт(((
#9 by smaharbA
а такого ?
#10 by smaharbA
больше даже - есть решение почти в одну строку
#11 by Griffon_SB
Спасиба буим ковырять
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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