![]() |
#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). |