На Инфостарте есть несколько статей (например //infostart.ru/public/610960/). Все уже пережевано 100 раз, но есть нюанс, который я ни у кого не нашел и докопался методом проб и ошибок.
Краткая предыстория:
Копируем существующую компоненту, переименуем - "имя компоненты" , копируем CLSID, ищем в реестре запись и меняем значение в ветке "InprocServer32" на путь к нужной версии comcntrl.dll.
В коде вызываем:
Соединитель = Новый ComОбъект("имя компоненты");
Но в моем случае требовалось одновременная работа с несколькими версиями. Т.е. один пользователь запускает подключение с версией 1020, а другой 1315. И на подключении второй версии появляется ошибка: -2147024769(0x8007007F): Не найдена указанная процедура.
т.е. если вызвать подобный код:
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
на втором подключении вываливается ошибка. Поменять подключения местами - ошибка именно на втором подключении.
Т.е только один одновременно. Замечено также, что есть какой-то таймаут, после которого пользователь может сменить версию платформы.
Не буду описывать танцы с бубном, сразу к решению:
на картинке красным - таймаут и сколько одновременно инстансов может быть запущено. По умолчанию стоял 1 инстанс и 15минут таймаут.