|
|
#1 |
|
Участник
|
Создание проводки и ее сопоставление
Axapta 3.0
Создание проводки и ее сопоставление должно быть по поставщику. Обязательно ли создавать проводку в ГК или нет? И есть ли какие-нибудь особеннности если проводка оплатная(оплата поставщику)? |
|
|
|
|
#2 |
|
Программатор
|
мало инфы. Вы там руками чтоли создание проводок программируете?
|
|
|
|
|
#3 |
|
Участник
|
|
|
|
|
|
#4 |
|
Участник
|
|
|
|
|
| За это сообщение автора поблагодарили: BeLFO (1), perestoronin (1), Fanygrom (1). | |
|
|
#5 |
|
Участник
|
Вообщем для создания проводки написал JOB
X++: ledgerVoucher = ledgerVoucher::newledgerPost(DetailSummary::Summary,
SysModule::Vend,
numberSeq.parmNumberSequenceCode());
ledgerVoucherObject = LedgerVoucherObject::newVoucher(numberSeq.num(), transDate,SysModule::Vend ,LedgerTransType::Payment);
ledgerVoucherObject.newTaxReference(DetailSummary::Summary);
ledgerVoucher.AddVoucher(ledgerVoucherObject);
ledgerBondClient = ledgerVoucherObject.ledgerBondClient_RU();
ledgerVoucherObject.AddTrans(LedgerVoucherTransObject::newCreateTrans(
ledgerVoucherObject,
LedgerPostingType::ConsolidateDiff,
"60.01.00",
dimension,
"Руб",
amountCur,
8465876));
ledgerVoucherObject.AddTrans(LedgerVoucherTransObject::newCreateTrans(
ledgerVoucherObject,
LedgerPostingType::ConsolidateDiff,
"60.01.00",
dimension,
"Руб",
-amountCur,
8465876));
Info(numberSeq.num());
ledgerBondClient.bondVRef2Log(1);
ledgerBondClient.bondLastVRef2CurrentLog();
ledgerVoucher.end();
vendVoucher = CustVendVoucher::construct(SysModule::Vend,
ledgerVoucher,
vendTable.accountNum,
100000,
Companyinfo::find().currencyCode,
transTxt,
vendTable.dimension,
'',
LedgerPostingType::VendBalance);
vendVoucher = CustVendVoucher::construct(SysModule::Vend,
ledgerVoucher,
vendTable.accountNum,
-100000,
Companyinfo::find().currencyCode,
transTxt,
vendTable.dimension,
'',
LedgerPostingType::VendBalance);
vendVoucher.setPaymMode(vendTable.paymMode);
vendVoucher.setPaymSpec(vendTable.paymSpec);
vendVoucher.post(vendTrans); |
|
|
|
|
#6 |
|
Участник
|
Вся логика формы спрятана в класс CustVendOpneTransEngine_Ru
проводки для сопоставление складываются в него. Для сопоставления вызывается функция VendTrans::settleTransact(custVendOpenTransEngine.custVendTable()) Кто-нибудь имел с этим дело? Помогите разобраться. |
|
|
|
|
#7 |
|
северный Будда
|
Честно говоря - хотелось бы сначала понять логику ручного создания проводки по поставщику. Почему вы не задействуете штатные механизмы? Что такого в постановке есть, что этому мешает? Ибо если дело не в этом, а в неграмотной постановке - надо её менять, а не конструировать обходные траншеи
__________________
С уважением, Вячеслав |
|
|
|
|
#8 |
|
Участник
|
Штатные механизмы не задействовал, потому что все надо сделать программно.
В общем глобальная постановка: - Существуют заявки на оплату поставщикам. - Каждая заявка содержит список документов, которые нужно оплатить. - Есть одобренная сумма по каждой заявке. - Надо сопоставить неоплаченные документы на одобренную сумму. вот так вкратце. |
|
|
|
|
#9 |
|
Программатор
|
Штатный механизм - это программно 'нажать' нужную кнопку или класс вызвать, который нажатие вызывает и передать туда нужные параметры. все отработает стандартно, и программирования минимум
|
|
|
|
|
#10 |
|
Программатор
|
X++: vendVoucher = CustVendVoucher::construct(SysModule::Vend,
ledgerVoucher,
vendTable.accountNum,
100000,
Companyinfo::find().currencyCode,
transTxt,
vendTable.dimension,
'',
LedgerPostingType::VendBalance);
vendVoucher = CustVendVoucher::construct(SysModule::Vend,
ledgerVoucher,
vendTable.accountNum,
-100000,
Companyinfo::find().currencyCode,
transTxt,
vendTable.dimension,
'',
LedgerPostingType::VendBalance); |
|
|
|
|
#11 |
|
Участник
|
Этот джоб не сопоставляет проводки по поставщику, а только делает проводки ГК.
Как Вам уже говорили, смотрите автоматическое сопоставление и делайте по аналогии. В классе Specification_OffsetVoucher метод run. Для Ax3.0, да и DAX4 вся работа заключается в использовании классов Specification_OffsetVoucher, OffsetVoucher и таблицы SpecTrans и затем вызова CustVendSettle. В DAX2009 набор классов изменен. Просто в отличии от того, что есть в этом методе run, Вам нужно выбирать проводки не так как это сделано в этом классе, а по своей логике. |
|
|
|
| За это сообщение автора поблагодарили: Fanygrom (1). | |
|
|
#12 |
|
Участник
|
Job изначально был для создания проводки.
Спасибо за инфу про классы, посмотрю. |
|
|