Вот пример кода программного создания журнала:
Код:
void createIncomingJournal()
{
LedgerJournalNameId incomingName;
LedgerJournalTable incomingJournal;
ledgerJournalTrans incomingTrans;
ledgerJournalTrans ledgerJournalTrans;
LedgerJournalEngine ljeIn;
LedgerJournalEngine ledgerJournalEngine;
NumberSeq numSeq;
ProjTable projTable;
RContractTable rct;
RContractPartnerType rctType;
;
ttsbegin;
select forupdate incomingJournal;
incomingJournal.clear();
incomingJournal.initValue();
incomingJournal.JournalName=incomingName;
incomingJournal.insert();
// Такие вещи позволяет делать только BMLedgerJournalEngine, но не LedgerJournalEngine
ljeIn = new BMLedgerJournalEngine(null);
ljeIn.newJournalActive(incomingJournal);
if(ljeIn)
{
//Строки журнала - исходые данные в таблице, скажем, lines
while select lines
{
ledgerJournalTrans=incomingTrans;
ledgerJournalEngine=ljeIn;
select forupdate ledgerJournalTrans;
ledgerJournalTrans.clear();
ledgerJournalTrans.TransDate=lines.PaymDate;
ledgerJournalTrans.currencyCode=lines.CurrencyID;
ledgerJournalTrans.ExchRate=lines.ExchRate;
ledgerJournalTrans.initValue();
ledgerJournalTrans.JournalNum=incomingJournal.JournalNum;
ledgerJournalEngine.numberSeqFormHandlerJournal().parmLedgerJournalTrans(ledgerJournalTrans);
ledgerJournalEngine.formMethodDataSourceCreatePost();
ledgerJournalEngine.initValue(ledgerJournalTrans);
// Fill data
ledgerJournalTrans.TransDate=lines.PaymDate;
ledgerJournalTrans.currencyCode=lines.CurrencyID;
ledgerJournalTrans.ExchRate=lines.ExchRate;
ledgerJournalTrans.accountType=lines.AccountType;
ledgerJournalTrans.AccountNum=lines.Account;
ledgerJournalTrans.offsetAccountType=lines.offsetAccountType;
ledgerJournalTrans.OffsetAccount=lines.offsetAccount;
if(AmountDebit)
ledgerJournalTrans.AmountCurDebit=lines.AmountDebit;
else if(AmountCredit)
ledgerJournalTrans.AmountCurCredit=lines.AmountCredit;
ledgerJournalTrans.Txt=lines.TransTxt;
ledgerJournalTrans.DocumentNum=lines.DocumentNum;
ledgerJournalTrans.DocumentDate=lines.PaymDate;
// uhh. Validate and write
ledgerJournalTrans.validateWrite();
ledgerJournalEngine.preWrite(ledgerJournalTrans);
ledgerJournalEngine.formMethodDataSourceWritePre();
ledgerJournalTrans.write();
ledgerJournalEngine.write(ledgerJournalTrans);
}//while select lines
}// if(ljeIn)
ttscommit;
if(ljeIn)
info(strfmt("Создан журнал входящих платежей %1", incomingJournal.JournalNum));
}