Создание шапки закупки
Разобрался. Не указал, что purchParameters::numRefPurchId() - пользовательский метод, к-рый возвращает следующее:
NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(PurchId))), т. е. находит для текущей компании ссылку в таблице NumberSeqReference.
Т. е. действительно, метод NumberSeq.num() возвращал пустую строку, к-рая и пишется в PurchId, т. к. в таблице numTableNum (экземпляр NumberSequenceTable) в соотв. строке было numTableNum.restrictionLevel == RestrictionLevel::Manual ("Ручной выбор"). Исправил значение с 0 на 4 ("Изменения запрещены"), заработало.
В итоге такой код добавляет шапку закупки:
PurchTable purchTable;
PurchTableType purchTableType;
VendTable vendTable;
NumberSeq purchNumberSeq;
;
purchTable.initValue();
purchTable.purchStatus = PurchStatus::Backorder;
purchTable.purchaseType = PurchaseType::Purch;
purchTableType = purchTable.type();
purchTable.purchId = purchTableType.getNewPurchId();
purchNumberSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(PurchId))), true);
purchTable.purchId = purchNumberSeq.num();
purchTable.orderAccount = "00001"; // код поставщика
purchTable.initFromVendTable();
ttsbegin;
purchTable.insert();
purchTableType.purchIdUsed();
ttscommit;
return purchTable;
|