Показать сообщение отдельно
Старый 08.11.2016, 20:07   #4  
TDV is offline
TDV
Участник
 
128 / 30 (2) +++
Регистрация: 04.11.2005
Цитата:
Сообщение от jonny Посмотреть сообщение
Коллеги, есть следующая проблема.
Пытаюсь сделать сохранение отчета в формате аксапты через портал(счет на оплату).
В аксапте статический метод в классе, делается разноска счета на оплату, с подпихиваением в SalesFormLetter нужного экземпляра PrintJobSettings, При запуске метода через джоб все замечательно отрабатывает - файл сохраняется, при вызове из портала неведомая ошибка:
Функция "GetVersionExW" в библиотеке DLL "KERNEL32" привела к возникновению исключения

Кто либо сталкивался с подобным, или может есть соображения в чем может быть проблема?
Буду рад любым идеям
Доброго времени суток,
Удалось решить проблему?
Тоже самое появляется. В Job работает нормально, из EP та же ошибка.(запускается через menuitem out)

Ошибка при вызове в WinApi::getOSVersion()


X++:
client static public container getOSVersion()
{
    #define.OSVERSIONINFOSIZE(276) // includes 128 TCHARs

    DLL         dll;
    DLLFunction dllFunction;
    Binary      binary;
    ;

    dll = new DLL(#KernelDLL);
    dllFunction = new DLLFunction(dll,'GetVersionExW');

    binary = new Binary(#OSVERSIONINFOSIZE);
    binary.dWord(0,#OSVERSIONINFOSIZE);

    dllFunction.arg(ExtTypes::Pointer);
    dllFunction.returns(ExtTypes::Byte);

    dllFunction.call(binary); // здесь валится  

    return [binary.dWord(4),binary.dWord(8),binary.dWord(16)];
}
Вызываемый из

X++:
#define.Win98Platform(1)
public void makeReportRun(ReportName reportName = this.lastValueElementName())
{
    Args        args;
    Report      report;

    [B]if (conpeek(WinAPI::getOSVersion(), 3) > #Win98Platform)[/B]
    {
        super(reportName);
        return;
    }

    // Running under Windows 98 or prior OS version
    args = new Args(reportName);
    if (! reportRun || reportRun.name() != reportName)
    {
        args.caller(this);
        reportRun   = SalesPurchReport_RU::newSysReportRun(args);
    }

    report      = reportRun.report();
    report.interactive(false);

    queryNextUniqueId   = report.query().nextUniqueId();
    treeQueryVersion    = report.query().version();
}

Что делать с этим? Как решили проблему?
DAX2009RU8
SP2010Sp1

Последний раз редактировалось mazzy; 08.11.2016 в 21:08. Причина: оформил xpp-код