|  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, ошибка | 
|  | 
| 
 |