| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А попробуйте со след. содержанием метода update() 
		
		
		
		
		
		
			
		
		
		
		
	X++: void update(boolean _updatePriceDate = true) { boolean updPrice; FormRun formRun; FormObjectSet formObjSet; int i; InventTable inventTable; if (this.orig().Price != this.Price || this.orig().Markup != this.Markup || this.orig().PriceUnit != this.PriceUnit) { updPrice = true; if (_updatePriceDate) this.PriceDate = systemdateget(); } ttsbegin; super(); if (updPrice) { if (this.ModuleType != ModuleInventPurchSales::Sales) InventTable::updateAutoSalesPrice(this.ItemId, this.PriceDate); else { if (this.isFormDataSource()) { // refresh and reread inventTable datasource if exists in form formRun = this.dataSource().formRun(); for (i=1; i<= formRun.dataSourceCount(); i++) { if (formRun.dataSource(i).cursor().TableId == tablenum(InventTable)) { formObjSet = formRun.dataSource(i); inventTable = formObjSet.cursor(); break; } } if (!inventTable) { inventTable = InventTable::find(this.ItemId, true); } if (inventTable) { if (inventTable.updateAutoSalesPercent() && formObjSet) { formObjSet.refresh(); formObjSet.reread(); } } } } } ttscommit; } X++: server boolean updateAutoSalesPercent() { InventTableModule inventTableSales; InventTableModule inventTableBasic; ; if (this.SalesModel == SalesPriceModel::None) return false; inventTableSales = InventTableModule::find(this.ItemId,ModuleInventPurchSales::Sales,true); if (this.SalesPriceModelBasic == SalesPriceModelBasic::PurchPrice) inventTableBasic = InventTableModule::find(this.ItemId,ModuleInventPurchSales::Purch); else inventTableBasic = InventTableModule::find(this.ItemId,ModuleInventPurchSales::Invent); if (! inventTableSales || ! inventTableBasic) return false; switch(this.SalesModel) { case SalesPriceModel::Contributionratio: if (inventTableSales.pcsPrice()) { this.SalesContributionRatio = (inventTableSales.pcsPrice() - inventTableBasic.pcsPrice()) * 100 / inventTableSales.pcsPrice(); } break; case SalesPriceModel::PercentMarkup: if (inventTableBasic.pcsPrice()) { this.SalesPercentMarkup = (inventTableSales.pcsPrice() - inventTableBasic.pcsPrice()) * 100 / inventTableBasic.pcsPrice(); } break; default: } this.update(); return true; }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Starling (1). | |