Показать сообщение отдельно
Старый 06.08.2007, 14:30   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
[Excel] - Несколько версий Excel на машине клиента
Добрый день.

У клиента на машине стоит одновременно несколько версий 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 ?