|
|
#1 |
|
MCITP
|
Добрый день!
А никто не подскажет, как правильно, красиво и интуитивно понятно разнести фактуру из кода? Фактура по заказу. Заказ полностью обработан по накладной. Ожидалось что будет работать стандартное что-то типа: X++: salesFormLetter = SalesFormLetter::construct(DocumentStatus::Facture_RU); salesFormLetter.update(salesTable, opDate, SalesUpdate::All); Буду благодарен за примеры и/или подсказки. Спасибо!
__________________
Zhirenkov Vitaly |
|
|
|
|
#2 |
|
Участник
|
Накладная вметсе с фактурой может быть обработана так:
X++: salesFormLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
salesFormLetter.specQty(SalesUpdate::All);
salesParmTable.clear();
salesFormLetter.createParmTable(salesParmTable, salesTable);
salesParmTable.TransDate = systemDateGet();
salesParmTable.DocumentDate = systemDateGet();
salesParmTable.insert();
while select salesLine
where salesLine.SalesId == salesTable.SalesId
salesFormLetter.createParmLine_batch(salesLine);
salesFormLetter.createParmUpdate();
salesParmUpdate = salesFormLetter.SalesParmUpdate();
salesFormLetter.SalesParmUpdate(salesParmUpdate);
salesFormLetter.initParameters(salesParmUpdate, PrintOut::Current, NoYes::Yes, NoYes::No, NoYes::No, NoYes::No, NoYes::No);
salesFormLetter.run(); |
|
|
|
|
#3 |
|
Участник
|
Счет-фактура в российской функциональности и "красиво и понятно" как-то не очень сочетаются.
![]() Смотреть нужно на класс FactureJourCreate_RU и его наследников. Там есть методы для создания специализированных фактур (на предоплату, курсовую разницу). Что-то по аналогии можно сделать. |
|
|
|
|
#4 |
|
MCITP
|
вообщем для простого случая (накладные всегда по одному заказу) - это может выглядеть примерно так (в общем случае естетсвенно salesLink всякого рода естественно нужно обработать там, где у меня простой цикл)
X++: factureCreate = FactureJourCreate_RU::construct(FactureModule_Ru::Cust);
while select custInvoiceTrans
where custInvoiceTrans.SalesId == salesId
{
factureCreate.appendTrans([custInvoiceTrans.TableId, custInvoiceTrans.RecId, FactureLineType_RU::InvoiceLine], custInvoiceTrans.Qty);
}
factureCreate.initParameters(NoYes::Yes,
NoYes::No,
PrintOut::After,
FacturePrintType_RU::ProFormaBlank,
NoYes::No,
"",
opDate,
salesTable.InvoiceAccount,
salesTable.CurrencyCode,
FactureType_RU::Invoice);
factureCreate.parmShowProgress(false);
factureCreate.run();
__________________
Zhirenkov Vitaly |
|
|
|
| За это сообщение автора поблагодарили: johny77 (1). | |