20.01.2006, 17:10 | #1 |
Участник
|
Сопоставление проводок
Всем доброго дня, не могу разобраться, подскажите!
Смотрю проводки по счету - на форме есть кнопка Сопоставление ГК но при вызове формы проводки не выдаются в гриде. Проверил в LedgerTrans и LedgerTransSettlement там эти проводки есть (форма LedgerTransSettled)?! |
|
24.01.2006, 16:09 | #2 |
Участник
|
Если вы имеете ввиду кнопку "проводки по сопоставлению " в форме проводки по поставщику, то в эту форму попадают проводки сгенерированные при сопоставлении. К примеру, если у вас прошло сопоставление оплаты с накладной в валюте, по разному курсу, то при сопоставлении должна появится дополнительная проводка по поставщику на курсовую разницу или в случае скидки или если оплата с разными профилями разноски. Иначе, если такой ситуации нет, то оплата с накладной сопоставлеется без генерации допольнительной проводки поставщику и ГК. Такие проводки "по сопоставлению " и можно посмотреть по данной кнопке. Видимо сопоставление у вас прошло без генерации подобных проводок.
|
|
24.01.2006, 16:54 | #3 |
Участник
|
Цитата:
Сообщение от magnetica
Если вы имеете ввиду кнопку "проводки по сопоставлению " в форме проводки по поставщику, то в эту форму попадают проводки сгенерированные при сопоставлении.
|
|
24.01.2006, 17:01 | #4 |
Участник
|
В этой форме показываются проводки сопоставленные в
Главное меню \ Главная книга \ Периодические операции \ Сопоставления ГК В последних версиях сопоставление ГК никогда не выполняется автоматически. Сопоставление ГК, выполненное вручную ни на что не влияет. Функционал сопоставления пришел из Конкордовских времен. Насколько я знаю. Этот функционал у в Конкорде не особо использовался. Насколько я знаю, функционал Сопоставления ГК можно считать устаревшим. |
|
24.01.2006, 18:04 | #5 |
Участник
|
Цитата:
Сообщение от mazzy
функционал Сопоставления ГК можно считать устаревшим.
Хотелось бы видить то что рассопоставляешь... я тут немного поэксперементировал с этой формой - вот запрос который формируется при штатном вызове формы: SELECT * FROM LedgerTrans WHERE ((Crediting = 1)) AND LedgerTrans.BondBatchTrans_RU=LedgerTrans.BondBatchTrans_RU AND LedgerTrans.BondBatch_RU=LedgerTrans.BondBatch_RU EXISTS JOIN * FROM LedgerTransSettlement WHERE LedgerTrans.RecId = LedgerTransSettlement.TransRecId AND ((SettleId = 02262261)) то, что я отметил и приводит к невыведению нужной мне информации, т.е. непонятно откуда привязывается признак по кредиту/дебету и пытается найти связанные друг с другом проводки ? в идеале должно получиться (чтобы все работало) SELECT * FROM LedgerTrans EXISTS JOIN * FROM LedgerTransSettlement WHERE LedgerTrans.RecId = LedgerTransSettlement.TransRecId AND ((SettleId = 02262261)) |
|
24.01.2006, 18:23 | #6 |
Участник
|
Перечитал три раза.
Так и не понял что именно вам непонятно, и что вы хотите от нее добиться... Можете сформулировать простым обывательским (не программистским матерным) языком, чего именно вы от нее ожидаете? |
|
24.01.2006, 19:28 | #7 |
SAP
|
Цитата:
Сообщение от mazzy
Функционал сопоставления пришел из Конкордовских времен. Насколько я знаю.
Этот функционал у в Конкорде не особо использовался. Цитата:
Сообщение от mazzy
Насколько я знаю, функционал Сопоставления ГК можно считать устаревшим.
Результат работы функции позволяет пользователю иметь дополнительный фильтр финансовых операций - "закрытые/открытые", чтобы отслеживать актуальность. |
|
25.01.2006, 09:11 | #8 |
Участник
|
2 mazzy
Попробую объяснить, вопрос не по фукционалу, а по программированию. Есть некие сопоставленные проводки по счету ХХ.ХХХ в LedgerTrans: AmountCur RecId ... -100 10 -100 15 200 25 ... и соответственно записи в LedgerTransSettlement: TransRecId SettledId ... 10 0220 15 0220 25 0220 ... и есть соответствующая форма, где, как я думал, мог бы увидеть эти три проводки вместе - LedgerTransSettled, но при вызове этой формы я эти проводки не вижу (в крайнем случае одна, та которая передана как args() в эту форму). В этой форме в методе executeQuery() на LedgerTrans я написал следующую команду: info(LedgerTrans_ds.query().dataSourceNo(1).toString()) для того, чтобы узнать какой запрос формируется и вот что получил: SELECT * FROM LedgerTrans WHERE ((Crediting = 1)) AND LedgerTrans.BondBatchTrans_RU=LedgerTrans.BondBatchTrans_RU AND LedgerTrans.BondBatch_RU=LedgerTrans.BondBatch_RU EXISTS JOIN * FROM LedgerTransSettlement WHERE LedgerTrans.RecId = LedgerTransSettlement.TransRecId AND ((SettleId = 0220)) вопрос в следующем, откуда взялось условие "WHERE ((Crediting = 1)) AND LedgerTrans.BondBatchTrans_RU=LedgerTrans.BondBatchTrans_RU AND LedgerTrans.BondBatch_RU=LedgerTrans.BondBatch_RU"? - соответственно в форме ничего и не показывает.... для того, чтобы я увидел желаемое необходим запрос: SELECT * FROM LedgerTrans EXISTS JOIN * FROM LedgerTransSettlement WHERE LedgerTrans.RecId = LedgerTransSettlement.TransRecId AND ((SettleId = 0220)) |
|
25.01.2006, 10:17 | #9 |
Участник
|
Это работает Dynalink. Подхватывается релейшен LedgerBondTransCredit_RU на таблице LedgerTrans. Перекройте Init() на форме LedgerTransSettled
X++: public void init() { super(); if (this.args() && this.args().record() && this.args().record().TableId == tablenum(LedgerTrans)) { LedgerTrans_ds.query().dataSourceTable(tablenum(LedgerTrans)).clearDynalinks(); LedgerTrans_ds.query().dataSourceTable(tablenum(LedgerTrans)).clearRange(fieldnum(LedgerTrans, Crediting)); } }
__________________
Axapta v.3.0 sp5 kr2 |
|
25.01.2006, 10:24 | #10 |
Участник
|
Заработало, спасибо
|
|
24.03.2006, 19:42 | #11 |
Участник
|
а почему подхватывает имено его?
|
|