25.06.2012, 20:28 | #1 |
Administrator
|
AX 2009: Пустая строка не даёт закрыть форму "Строки производственного журнала..."
Берём стандартное приложение AX 2009 SP1 RU7 и выполняем следующие действия:
- Открываем форму Производство\Журналы\Карта задания - Создаём новый журнал (нажимаем на кнопку "Создать") В этот момент откроется форма Строки производственного журнала, карта задания и в ней будет создана одна пустая строка. - Закроем форму, нажав на крестик в правом верхнем углу Форма закроется без ошибок. Пустая строка сохранена не будет. Теперь повторим эксперимент с журналом Отгрузочная накладная. - Открываем форму Производство\Журналы\Отгрузочная накладная - Создаём новый журнал (нажимаем на кнопку "Создать") В этот момент откроется форма Строки производственного журнала, отгрузочная накладная и в ней будет создана одна пустая строка. - Попытаемся закрыть форму, нажав на крестик в правом верхнем углу Форма не закрывается. Вместо этого отображается список полей, которые не были заполнены в новой записи. То есть, система явно пытается эту запись сохранить при закрытии, в отличие от предыдущего случая. А теперь вопрос: в чём именно ключевое отличие этих двух форм? Что можно сделать с формой Отгрузочная накладная, чтобы она вела себя так же, как и все остальные журналы в системе (то есть, не пыталась сохранить пустую строчку при закрытии)? Всем заранее спасибо за ответы.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
26.06.2012, 15:46 | #2 |
Banned
|
Я с этим давно смирился, принял как данность.
|
|
26.06.2012, 17:55 | #3 |
Administrator
|
В качестве временного решения я пока поставил InsertIfEmpty = No на датасорсе в форме строк журнала отгрузочной накладной. Но всё равно интересно было бы разобраться.
Воспринимайте это как конкурсную задачу. Решившему - почёт и уважение
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
26.06.2012, 19:14 | #4 |
Axapta
|
Отличие в том, что в ProdJournalBOM.active() вызывается journalFormTrans.datasourceActivePost(), где в ProdJournalFormTransBOM\datasourceActivePost() есть код
X++: this.updateDesign(InventDimFormDesignUpdate::Active); X++: InventMovement _movement = this.inventMovement(); X++: if (!prodJournalBOM.RecId)
prodJournalBOM.InventTransChildType = InventTransChildType::ProdJournalBOM; |
|
|
За это сообщение автора поблагодарили: Maxim Gorbunov (5), gl00mie (2). |
27.06.2012, 12:41 | #5 |
Administrator
|
oip, большое спасибо! Это действительно оно Комментирование упомянутых строчек в ProdJournalFormTransBOM.inventMovement() решает проблему.
Остаётся, правда, вопрос, куда эти строчки перенести. У меня складывается такое впечатление, что никуда, они просто лишние. InventTransChildType всё равно переписывается в ProdJournalBOM.insert(), так что нет смысла инициализировать его каждый раз из active() датасорса. Как вы считаете?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
Теги |
ax2009, ошибка |
|
|