Показать сообщение отдельно
Старый 03.09.2021, 10:50   #1  
oleggy is offline
oleggy
Участник
 
256 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
DAX2009: экспорт через Группы определений + Excel 2013
Всем привет.
На терминале был удален Excel 2010 а вместо него установлен Excel 2013 из за чего перестал работать импорт/экспорт через группы определений.
Цитата:
[c] \Classes\SysExcelApplication\save - 4
[c] \Classes\SysDataExcelCOM\save - 5
[c] \Classes\SysDataExcelCOM\buildWorkbooks - 89
[c] \Classes\SysDataExportExcel\export - 35
[c] \Classes\SysDataExportBase\run - 5
[c] \Classes\SysDataExport\main - 20
[c] \Classes\FormFunctionButtonControl\Clicked

Цитата:
Метод "save" в COM-объекте класса "Excel.Application" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: Save method of Application class failed.
Подебажил, пришел к выводу что система вот тут:
Цитата:
[c] \Classes\SysExcelApplication\construct - 1
[c] \Classes\SysDataExcelCOM\new - 4
[c] \Classes\SysDataExcelCOM\construct - 17
[c] \Classes\SysDataExportExcel\export - 30
[c] \Classes\SysDataExportBase\run - 5
[c] \Classes\SysDataExport\main - 20
[c] \Classes\FormFunctionButtonControl\Clicked

X++:
static client SysExcelApplication construct()
{
    SysExcelApplication     ret;
    COM                     excel;
    real                    excelVersion;
    ;

    try
    {
        excel = new COM(#EXCEL);
    }
    catch (Exception::Internal)
    {
        if (excel == null)
        {
            throw error("@SYS98748");
        }
    }

    excelVersion = str2num(excel.version());

    if (excelVersion >= 12.0)
        ret = SysExcelApplication_2007::construct(excel); // <-- тут
    else if (excelVersion >= 10.0)
        ret = SysExcelApplication_XP::construct(excel);
    else
        ret = SysExcelApplication_2000::construct(excel);

    return ret;
}

Видит что раз в системе установлен excel версии 15 (2013) значит подойдет класс SysExcelApplication_2007 и при попытке сохранить сгенерированный файл возникает ошибка, типа в Excel 2013 нет подходящего метода? Я верно понял ошибку?

Подскажите есть уже готовые решения внедряющие такую поддержку Excel 2013 ?
Как обойти такую ошибку?

Последний раз редактировалось oleggy; 03.09.2021 в 11:02.