|
|
#1 |
|
Участник
|
Как из ledgerVoucher получит Account?
Поиск по форуму ничего не дал.
![]() Подскажите пожалуйста, как правильно из ledgerVoucher, получить счёт разноски. |
|
|
|
|
#2 |
|
NavAx
|
Посмотрите таблицу LedgerTrans и все поймете.
|
|
|
|
|
#3 |
|
Участник
|
А по подробнее можно?
|
|
|
|
|
#4 |
|
NavAx
|
AOT\Data Dictionary\Tables\LedgerTrans
(ax3) Главная книга\Запросы\Бухгалтерские проводки (dax) Главная книга\Запросы\Коды операций ЗЫ. Вы что понимаете под ledgerVoucher? Если класс разноски, то Ваш вопрос более чем странен, с такими вопросами к таким классам лучше не приближаться. Последний раз редактировалось raz; 24.10.2008 в 16:41. |
|
|
|
|
#5 |
|
MCITP
|
Тут, понимаете, какой вопрос, такой и ответ...
![]() Можете сформулировать ваш вопрос поконкретнее? Как один из вариантов понимания вашего вопроса - у вас есть Ваучер (Документ ГК) и вы хотите по этому номеру определить бух. счета на которые прошла разноска? Тогда искать надо в таблице LedgerTrans, по полю Voucher и крайне желательно с учётом даты (TransDate). Учитывайте при этом, что счетов там может быть много (как минимум 2 - кредит и дебет).
__________________
Zhirenkov Vitaly |
|
|
|
|
#6 |
|
Участник
|
Вопрос по классу ledgerVoucher. Есть объект ledgerVoucher, как из него получить текущий счет, по которому идёт разноска?
|
|
|
|
|
#7 |
|
Banned
|
|
|
|
|
|
#8 |
|
Участник
|
Вообще интересуют все варианты.. Но больше всех вариант получения изнутри..
После вноса внего счёта, но перед разноской. Последний раз редактировалось Вата; 24.10.2008 в 17:06. |
|
|
|
|
#9 |
|
NavAx
|
Ну и вопрос. А в каком методе и в какой момент? А самим в отладчике посмотреть?
ЗЫ. Уж не имеется ли в виду точка останова в LedgerVoucherTransObject::newCreateTrans(), через этод метод 99% проводок создаются. Через это легко находятся ошибки при разноске, т.к. сообщения об ошибках возникают в конце и без этого трудно понять в чем проблема. Последний раз редактировалось raz; 24.10.2008 в 17:14. |
|
|
|
|
#10 |
|
Banned
|
Понятно. Увы.
Надо допиливать класс LedgerVoucherObject, который не раскрывает наружу структуру ledgerTransList. Как альтернатива, можно сделать метод, подобный \Classes\LedgerVoucherObject\lastAmountCur(). |
|
|
|
|
#11 |
|
Участник
|
ledgerVoucherObject ... Хм.. А вот так?
ledgerVoucherObject.ledgerTransObject().ledgerTrans().AccountNum; Вопрос как взять ledgerVoucherObject? Может сделать одноименный метод с protected, public-ом? Последний раз редактировалось Вата; 24.10.2008 в 17:18. |
|
|
|
|
#12 |
|
Banned
|
Если бы все было так просто... Посмотрите на метод addTrans и метод \Classes\LedgerVoucherTransList\add
Получается, что ledgerVoucherObject.ledgerTransObject() НЕ стоит на последнем внесенном объекте. |
|
|
|
| За это сообщение автора поблагодарили: fed (2), Вата (-1). | |
|
|
#13 |
|
NavAx
|
Интересно было бы узнать что за задача такая, требующая такого подхода. Может все решается проще.
|
|
|
|
| За это сообщение автора поблагодарили: EVGL (1). | |
|
|
#14 |
|
Участник
|
У меня это вот такой код:
X++: boolean add(LedgerVoucherTransObject _ledgerTransObject)
{
str keyString;
;
keyString = strfmt('%1', this.elements());
transObject.insert(keyString, _ledgerTransObject);
// EVGL, Correspondence III -->
refId_RU = this.elements()-1;
// EVGL, Correspondence III <--
return true;
} |
|
|
|
| За это сообщение автора поблагодарили: EVGL (-1). | |
|
|
#15 |
|
Участник
|
Задача стандартная, дописать то, что должно было быть в архитектуре системы. Хотелось бы иметь заполненное поле СЧЕТ, в таблице «Проводок списания» (RDeferralsTrans). Дабы в дальнейшем упростить жизнь и себе и пользователям.
|
|
|
|
| За это сообщение автора поблагодарили: EVGL (-9). | |
|
|
#16 |
|
Banned
|
ШОК. Спасибо, raz.
Вата, копайте в сторону метода \Classes\LedgerJournalTransUpdateRDeferrals\updateNow, передавайте дополнительные параметры. P.S. Не надо, Вата, у меня больше.
|
|
|
|
|
#17 |
|
Участник
|
А сразу нельзя было так сказать?
![]() В классе, изменяем: X++: public void updateNow(LedgerVoucher _ledgerVoucher, LedgerPostingType _posting, [B]LedgerJournalTrans _ledgerJournalTrans[/B]) { if (rDeferralsOperationType.checkPostTrans()) RDeferralsTrans::createTrans(_ledgerJournalTrans, _ledgerVoucher, [B]this.ledgerAccount(_ledgerJournalTrans)[/B] ); } X++: server static void createTrans(Common _common, LedgerVoucher _ledgerVoucher, [B]LedgerAccount _ledgerAccount = ''[/B]) { RDeferralsPost deferralsPost; ; deferralsPost = RDeferralsPost::construct(_common, _ledgerVoucher, RDeferralsTrans::getTransType(_common)); if (deferralsPost.canCreateDeferralsTrans()) { deferralsPost.createTrans([B]_ledgerAccount[/B]); //передаём его дальше } deferralsPost.post(); deferralsPost.updateStatus(); } X++: void createTrans([B]LedgerAccount _ledgerAccount = ''[/B]) всем спасибо. |
|
|