| 
			
			 | 
		#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  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я с этим давно смирился, принял как данность.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#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  | 
| 
	
 | 
| 
			
			 | 
		#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). | |
| 
			
			 | 
		#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, ошибка | 
| 
	
	 | 
	
		
  |