Показать сообщение отдельно
Старый 10.11.2003, 14:09   #3  
somebody is offline
somebody
Участник
 
128 / 30 (2) +++
Регистрация: 30.04.2003
Адрес: Москва
Создание шапки закупки
Разобрался. Не указал, что 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;