Цитата:
Изначально опубликовано Tony Green
Приветствую всех!
Вопрос из области интеграции с внешними приложениями. От этого внешнего приложения есть COM объект с толпой методов в различных интерфейсах.
Нужный метод находится в одном из них. Вопрос, как заполучить экземпляр класса COM в аксапте именно с нужным мне интерфейсом, а не с тем, который получается в результате команды new COM(....) ?
Если коротко: НИКАК.
Если поподробнее: Аксапта поддерживает только COM-объекты автоматизации, или по другому объекты диспетчеризации. Работа с такими COM-объектами происходит через один и единственный интерфейс IDispatch, который в специальной манере реализует метод Invoke через который и происходит вызов методов с заранее неизвестными именами и неизвестным количеством параметров.
Напрямую работать с любыми другими COM-интерфейсами Аксапта (насколько мне известно) не умеет, ибо это предполагает наличие поддержки раннего связывания в компиляторе и много другого.
Замечу в этом Аксапта в этом не одинока - это подход всех скриптовых языков (VBScript, JavaScript, внутренний язык 1С и пр.), для которых в общем то IDispatch и разрабатывался.