Добрый день.
У клиента на машине стоит одновременно несколько версий Excel.
Задача: дать возможность пользователю указать, с какой именно Excel будет работать Аксапта.
Вопрос: - как явно указать, с какой версией Excel должна работать Аксапта.
Решение
в лоб не сработало:
X++:
comApplication1 = new COM('Excel.Application.11');
comApplication2 = new COM('Excel.Application.12');
Данный код порождает два объекта, первый - 'Excel.Application.11', второй - 'Excel.Application.12' (так говорит мне отладчик). В реальности я вижу, что открылись две excel-ны последней версии.
Причина такого поведения кроется в реестре: HKEY_CLASSES_ROOT\\Excel.Application.11 и HKEY_CLASSES_ROOT\\Excel.Application.12 имеют один и тот же CLSID.
Похоже, что при установке новой версии Excel, инсталлятор заодно подправляет записи в реестре, относящиеся к предыдущей версии Excel. Можно ли этого избежать при установке? Можно ли в такой ситуации (когда две версии Excel уже установленны именно в таком виде) вызвать из Аксапты нужную версию Excel ?