Подключение к ExtSdk2 через OLE - Сценарии ExtSdk2

Материал из razgovorov.ru
Перейти к: навигация, поиск

Для работы со СБИС3 Плагин из внешних систем, таких как 1С или SAP, требуется получить COM-объект, зарегистрированный Плагином в Вашей системе. Его название "Tensor.SbisPluginClientCOM".

Получение COM-объекта

class OleSbis3Plugin:

    def __init__(self, **kwargs):
        self.awaited_answers = {}
        self.ole = win32com.client.Dispatch("Tensor.SbisPluginClientCOM")
        self.version = None
        self._wait_connected()
        self.host = None
        self.account_id = None
        self.guid_module = None

    def _wait_connected(self):
        event = self.read_all_xml(['Event_connected'])
        self.version = event[0]['data']['Version']
        return

Из данного примера кода видно, что получение COM-объекта занимает одну строку "self.ole = win32com.client.Dispatch("Tensor.SbisPluginClientCOM")" с использованием библиотеки pywin32. Далее Плагин подготавливает необходимые внутренние инструменты для подключения и в случае успеха пробрасывает событие с именем "Event_connected". Успешное подключение следует обработать в отдельной функции "_wait_connected()" как указано в примере. Она ожидает результат работы функции "read_all_xml()"

Пример реализации получения ответов от COM-объекта