Показать сообщение отдельно
Старый 10.03.2011, 11:05   #24  
someOne is offline
someOne
Участник
Аватар для someOne
 
171 / 402 (14) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я лично для себя пришел к выводу, что надо все нафиг переписать на .NET, как рекомендовали тут. Объем модификаций вроде как ощутимый, но хочется реально решить проблему "враз и навсегда", а не шаманить с макросами try/catch. Семейство классов SysExcel* модифицируется на раз, с ComExcelDocument_RU все сложнее из-за того, что его экземпляры создаются напрямую через new(). Пока есть реализация на уровне proof of concept, о результатах тестирования непременно доложусь.
Идея с NET - не плохая. Как то сам совсем упустил ее. Попробовал - действительно помогло!!!

Была проблема открытия outlook через COM с вложенным файлом в процедуре обработки счета на оплату. Воспроизводилась лишь на терминальном сервере WinServ 2008 r2. Перевод процедуры на NET проблему решил.

Есть лишь одна проблема такого решения: Не на всех системах, где запускается клиент Аксапты, имеются установленные dll NET компонентов для доступа к office (например Microsoft.Office.Interop.Outlook.dll)

По умолчанию эти компоненты есть лишь на "свежих" ОС типа WinServ 2008, Vista (предполагаю, не проверял). На все другие клиентские места (например XP) придется дополнительно эти компоненты устанавливать и регистрировать - без этого код NET работать не будет. Это дополнительные сложности.

Но тем не менее вариант с NET решения данных проблем мне представляется более "эстетичным"