30.03.2005, 16:47 | #1 |
Участник
|
Журнал платежей поставщиков
Привет.
Проблема с формой Платежей (строки) поставщиков. - LedgerJournalTrans_VendPaym. Началось все с того, что обнаружилось следующее поведение в форме: Создаю несколько строк в журнале. проставляю какие нибудь счета. Даты пока все одинаковые. Далее становлюсь на строку, к примеру, первую, меняю дату на другую. И курсором перехожу на другую запись ( на вторую. ) при этом меняется дата во второй строке на ту, что ввел в первой. Начал рыть код. Это происходит при сохранении текущей записи. Последовательность вызовов следующая: \Forms\LedgerJournalTransVendPaym\Data Sources\LedgerJournalTrans\Methods\write там ledgerJournalEngine.write(ledgerJournalTrans); вызывается. в нем 28 строка: this.adjustLedgerJournalTrans(_ledgerJournalTrans); в нем 8 строкой: if (ledgerJournalEngine_Server.adjustDate(_ledgerJournalTrans, this))//, voucherDateList)) В этом методе следующий код: PHP код:
И наконец, вопрос: Это так и должно быть, или это глюк, который просто никто не замечал??? Больше что-то похоже на второе. А если должно так быть, то почему? Неужели нельзя указать другую дату для отдельной строки? Спасибо |
|
30.03.2005, 18:06 | #2 |
Участник
|
Re: Журнал платежей поставщиков
Цитата:
Изначально опубликовано kashperuk
Это так и должно быть, или это глюк, который просто никто не замечал??? Больше что-то похоже на второе. А если должно так быть, то почему? Неужели нельзя указать другую дату для отдельной строки? Ваучер - это набор строк с одинаковым номером документа ГК. Аксапта определяет номер ваучера в зависимости от настроек журнала. По-умолчанию, в настройках журнала стоит опция "Изменять номер при балансе" Это значит, что Аксапта начнет новый ваучер только если вы введете строчки, для которых сумма по дебету равна сумме по кредиту. Если в строке журнала вводится корр.счет. То сумма дебета и сумма кредита автоматически совпадают. Таким образом (если для каждой строки вводится корр.счет), вы видите отдельный номер ГК в каждой строке. Если же ваши пользователи корр.счет пропустили. То Аксапта считает, что пользователь вводит многострочную проводку. В этом случае следующие строчки будут получать ОДИНАКОВЫЙ номер ваучера, пока дебет не сравняется с кредитом. А один ваучер может быть только с одной датой. Разные даты вы можете указать только для разных ваучеров. См. картинку. Первые три строки относятся к одному ваучеру. Первые три строки с разными датами сделать не получится никак |
|
30.03.2005, 18:14 | #3 |
Участник
|
Очень хороший ответ, спасибо.
Но наши пользователи корр.счет не пропустили, а не указали сознательно... ну проще им сначала перечислить даты, поставщиков и суммы, а уже потом выбирать на каждую строчку банк... так то. |
|
30.03.2005, 18:48 | #4 |
Участник
|
Цитата:
Изначально опубликовано linney
Очень хороший ответ, спасибо. Но наши пользователи корр.счет не пропустили, а не указали сознательно... ну проще им сначала перечислить даты, поставщиков и суммы, а уже потом выбирать на каждую строчку банк... так то. Анекдот: Русские мужики купили японскую бензопилу. Решили проверить. Подсунули ей доску. - Вжик - сказала японская бензопила - О! - сказали русские мужики Подсунули ей бревно. - Вжик - сказала японская бензопила - О! - сказали русские мужики Подсунули ей желензный лом - Кряк - сказала японская бензопила - Э-э-э - махнули рукой русские мужики... |
|
31.03.2005, 18:10 | #5 |
Участник
|
ага... и ружья у нас кирпичом не чистют..
|
|
31.03.2005, 20:24 | #6 |
Участник
|
ружья кирпичом не чистют у них
|
|
27.10.2009, 16:06 | #7 |
Участник
|
LedgerJournalEngine_Server.adjustDate() перебивает курсы!
Подниму эту давнишнюю тему - хочу вернуться к коду чудо-метода ledgerJournalEngine_Server.adjustDate(), который с 2005-го года в неизменном виде перекочевал и в 2009-ю Аксапту:
X++: ttsbegin; dateCorrected = false; while select forUpdate ledgerJournalTransLocal where ledgerJournalTransLocal.journalNum == _ledgerJournalTrans.journalNum && ledgerJournalTransLocal.voucher == _ledgerJournalTrans.voucher { if (ledgerJournalTransLocal.recId != _ledgerJournalTrans.recId) { ledgerJournalTransLocal.transDate = _ledgerJournalTrans.transDate; if (_ledgerJournalEngine) _ledgerJournalEngine.currencyModified(ledgerJournalTransLocal); ledgerJournalTransLocal.doUpdate(); dateCorrected = true; } } ttscommit; |
|
27.10.2009, 18:05 | #8 |
Member
|
А почему у вас при программном создании строк меняется дата ваучера?
__________________
С уважением, glibs® |
|
27.10.2009, 18:09 | #9 |
Участник
|
В том-то и дело, что она не меняется - у всех строк с одинаковым ваучером дата тоже одинаковая. Другое дело, что тот же LedgerJournalEngine со своими допущениями может дергать adjustDate() чаще, чем нужно, а тот тупо не смотрит, одинаковая ли в строках дата...
|
|