24.10.2008, 16:17 | #1 |
Участник
|
Как из ledgerVoucher получит Account?
Поиск по форуму ничего не дал.
Подскажите пожалуйста, как правильно из ledgerVoucher, получить счёт разноски. |
|
24.10.2008, 16:24 | #2 |
NavAx
|
Посмотрите таблицу LedgerTrans и все поймете.
|
|
24.10.2008, 16:31 | #3 |
Участник
|
А по подробнее можно?
|
|
24.10.2008, 16:38 | #4 |
NavAx
|
AOT\Data Dictionary\Tables\LedgerTrans
(ax3) Главная книга\Запросы\Бухгалтерские проводки (dax) Главная книга\Запросы\Коды операций ЗЫ. Вы что понимаете под ledgerVoucher? Если класс разноски, то Ваш вопрос более чем странен, с такими вопросами к таким классам лучше не приближаться. Последний раз редактировалось raz; 24.10.2008 в 16:41. |
|
24.10.2008, 16:40 | #5 |
MCITP
|
Тут, понимаете, какой вопрос, такой и ответ...
Можете сформулировать ваш вопрос поконкретнее? Как один из вариантов понимания вашего вопроса - у вас есть Ваучер (Документ ГК) и вы хотите по этому номеру определить бух. счета на которые прошла разноска? Тогда искать надо в таблице LedgerTrans, по полю Voucher и крайне желательно с учётом даты (TransDate). Учитывайте при этом, что счетов там может быть много (как минимум 2 - кредит и дебет).
__________________
Zhirenkov Vitaly |
|
24.10.2008, 16:51 | #6 |
Участник
|
Вопрос по классу ledgerVoucher. Есть объект ledgerVoucher, как из него получить текущий счет, по которому идёт разноска?
|
|
24.10.2008, 16:56 | #7 |
Banned
|
|
|
24.10.2008, 17:01 | #8 |
Участник
|
Вообще интересуют все варианты.. Но больше всех вариант получения изнутри..
После вноса внего счёта, но перед разноской. Последний раз редактировалось Вата; 24.10.2008 в 17:06. |
|
24.10.2008, 17:11 | #9 |
NavAx
|
Ну и вопрос. А в каком методе и в какой момент? А самим в отладчике посмотреть?
ЗЫ. Уж не имеется ли в виду точка останова в LedgerVoucherTransObject::newCreateTrans(), через этод метод 99% проводок создаются. Через это легко находятся ошибки при разноске, т.к. сообщения об ошибках возникают в конце и без этого трудно понять в чем проблема. Последний раз редактировалось raz; 24.10.2008 в 17:14. |
|
24.10.2008, 17:12 | #10 |
Banned
|
Понятно. Увы.
Надо допиливать класс LedgerVoucherObject, который не раскрывает наружу структуру ledgerTransList. Как альтернатива, можно сделать метод, подобный \Classes\LedgerVoucherObject\lastAmountCur(). |
|
24.10.2008, 17:16 | #11 |
Участник
|
ledgerVoucherObject ... Хм.. А вот так?
ledgerVoucherObject.ledgerTransObject().ledgerTrans().AccountNum; Вопрос как взять ledgerVoucherObject? Может сделать одноименный метод с protected, public-ом? Последний раз редактировалось Вата; 24.10.2008 в 17:18. |
|
24.10.2008, 17:18 | #12 |
Banned
|
Если бы все было так просто... Посмотрите на метод addTrans и метод \Classes\LedgerVoucherTransList\add
Получается, что ledgerVoucherObject.ledgerTransObject() НЕ стоит на последнем внесенном объекте. |
|
|
За это сообщение автора поблагодарили: fed (2), Вата (-1). |
24.10.2008, 17:27 | #13 |
NavAx
|
Интересно было бы узнать что за задача такая, требующая такого подхода. Может все решается проще.
|
|
|
За это сообщение автора поблагодарили: EVGL (1). |
24.10.2008, 17:27 | #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). |
24.10.2008, 17:42 | #15 |
Участник
|
Задача стандартная, дописать то, что должно было быть в архитектуре системы. Хотелось бы иметь заполненное поле СЧЕТ, в таблице «Проводок списания» (RDeferralsTrans). Дабы в дальнейшем упростить жизнь и себе и пользователям.
|
|
|
За это сообщение автора поблагодарили: EVGL (-9). |
24.10.2008, 18:06 | #16 |
Banned
|
ШОК. Спасибо, raz.
Вата, копайте в сторону метода \Classes\LedgerJournalTransUpdateRDeferrals\updateNow, передавайте дополнительные параметры. P.S. Не надо, Вата, у меня больше. |
|
27.10.2008, 14:03 | #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]) всем спасибо. |
|