Цитата:
Сообщение от
kashperuk
Судя по коду разноски, вроде все делаете правильно. Поэтому предполагаю, что ошибка где-то в первых двух пунктах, или же неправильно (не до конца) настроена система (номерные серии??).
Для пущей уверенности привожу свой тестовый код:
1. создание Sales Order:
X++:
NumberSeq = NumberSeq::newGetNumFromCode(
SalesParameters::numRefSalesId().numberSequence);
salesTable.SalesId = NumberSeq.num();
salesTable.CurrencyCode = "USD";
salesTable.CustGroup = "10";
salesTable.CustAccount = custAccount;
salesTable.InvoiceAccount = custAccount;
salesTable.SalesType = 3;
salesTable.LanguageId = "en-us";
salesTable.ShippingDateRequested = SystemDateGet();
salesTable.SalesStatus = 1;
salesTable.PostingProfile= "GEN";
salesTable.AddressRefRecId = 5637147107;
salesTable.AddressRefTableId = 77;
salesTable.initValue();
//salesTable.initFromCustTable();
salesTable.insert();
Ордер создается нормальный - т.е. согласно номерной серии происходит все нормально.
2. создание Sales Line:
X++:
salesLine.clear();
salesLine.salesId = salesTable.SalesId;
salesLine.ItemId = itemId;
salesLine.LineAmount = 888;
salesLine.ShippingDateRequested = SystemDateGet();
salesLine.ConfirmedDlv = SystemDateGet();
salesLine.InventDimId = "00008243_069";
salesLine.Name = "IN006";
salesLine.QtyOrdered = 1;
salesLine.SalesQty = 1;
salesLine.SalesPrice = 777;
salesLine.SalesStatus = 3;
salesLine.SalesType = 1;
salesLine.CurrencyCode = "USD";
salesLine.CustGroup = "10";
salesLine.CustAccount = "ACC13";
salesLine.AddressRefRecId = salesTable.AddressRefRecId;
salesLine.AddressRefTableId = 366;
salesLine.SalesUnit = "Pcs";
salesLine.PriceUnit = 1;
salesLine.LineNum = 1;
salesLine.LineAmount = 888;
salesLine.createLine(true, true,true,true,true, false);
После создания Sales Line не создается SalesParmLine - это так, для заметки
3. постинг инвойса с вытекающими "приятными" последствиями:
X++:
SalesFormLetter = SalesFormLetter::construct(DocumentStatus::Invoice, true);
salesFormLetter.update(salesTable, SystemDateGet(), SalesUpdate::All, AccountOrder::None, false, true);
Есть идеи, господа?