| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Версии спецификации и метод InventTable.insertBOMTable()
			 
			
			Сразу скажу, что спецификации знаю весьма поверхностно - поэтому и есть некоторые сомнения относительно того, что удалось найти. 
		
		
		
		
		
		
		
		
			В ходе сравнения приложений разных версий обнаружилось «незначительная» разница в методах InventTable.insertBOMTable() для версии приложения 3.0 SP3 и 3.0 SP5, а также последующих версий. Разница заключается в интерпретации состояния конфигурационного ключа BOMVersion - если в SP3 код выглядит (с некоторыми купюрами) так: X++: server void insertBOMTable() { BOMTable BOMTable; BOMVersion BOMVersion; if (! this.inventItemType().canHaveBOM()) return; if (!isConfigurationKeyEnabled(configurationkeynum(BOMVersion))) return; BOMTable.initFromInventTable(this); // ... BOMTable.insert(); BOMVersion.initFromInventTable(this); BOMVersion.initFromBOMTable(BOMTable); // ... BOMVersion.insert(); } X++: server void insertBOMTable() { BOMTable BOMTable; BOMVersion BOMVersion; if (! this.inventItemType().canHaveBOM()) return; if (isConfigurationKeyEnabled(configurationkeynum(BOMVersion))) return; BOMTable.initFromInventTable(this); // ... BOMTable.insert(); BOMVersion.initFromInventTable(this); BOMVersion.initFromBOMTable(BOMTable); // ... BOMVersion.insert(); } Объясните кто-нить, где именно была ошибка: в коде приложения до 3.0 SP3 включительно или же в коде, начиная с 3.0 SP5? Какой из вариантов правильный?.. ![]() Последний раз редактировалось gl00mie; 29.04.2008 в 12:22.  | 
| 
	
 |