| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Маркировка + резервирование в заказанных = проблема при изменении складской аналитики
			 
			
			Имеются утверждённые и смаркированные друг с другом производственные заказы. Таким образом система выход заказа одного уровня сопоставляет со входом заказа другого уровня. Для каждой складской проводки в статусе "Заказано" есть ожидающая её (примаркированная к ней) проводка в статусе "Зарезервировано в заказанных". Система не даёт изменить складскую аналитику для первого заказа. Пишет 
		
		
		
		
		
		
		
	Цитата: 
	
		
			Имеются проводки со статусом Зарезервировано в заказанных 
В результате невозможно изменить складскую аналитику.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В стандарте такой механизм есть, но он работает он, гм, выборочно. Можешь посмотреть на метод inventUpdate.updateDimReserveChange() и на следующий кусок кода из inventUpdate.writeInventTrans(). 
		
		
		
		
		
		
		
	X++: if (_inventTrans.orig() && _inventTrans.InventDimId != _inventTrans.orig().InventDimId)// Do not use inventTrans_orig as it may not match content in database { fromInventDim = InventDim::find(_inventTrans.orig().InventDimId); if (InventDimFixedClass::inventDimFieldsDifferent(fromInventDim,toInventDim) & InventDimFixedClass::initPrimaryDim(movement.dimGroupId()) != 0 && InventDim::mustCheckDimChange(movement.dimGroupId(),fromInventDim,toInventDim)) { if (_inventTrans.orig().isUpdatedEstimated()) { inventOnhand = InventOnhand::newPhysicalUpdate(movement,fromInventDim); if(!this.allowChangeDim(inventOnhand, _inventTrans, fromInventDim)) throw error(strfmt("@SYS54456")); } else if (!_inventTrans.orig().isUpdatedQuotation()) { inventOnhand = InventOnhand::newPhysicalUpdate(movement,fromInventDim); if (! inventOnhand.checkItemDraw(-_inventTrans.Qty,allowNegativePhysical)) throw error(strfmt("@SYS54456")); } if (_physicalUpdate) this.updateDimReservePhysical(toInventDim,_inventTrans.Qty,_inventTrans.InventRefTransId); reserveAgainDimId = fromInventDim.InventDimId; } else { qtyRemain = this.updateDimReserveChange(toInventDim,fromInventDim,_inventTrans.Qty,_physicalUpdate,_inventTrans.InventRefTransId); if (_physicalUpdate) this.updateDimReservePhysical(toInventDim,qtyRemain,_inventTrans.InventRefTransId); } Кстати мне кажется, что в более ранних версиях (по крайней мере в версии 3.0, в которой я этот механизм обнаружил), система вообще меняла автоматически любую аналитику, не помеченную как первичная аналитика хранения. Кроме того - обрати внимание на поле inventTrans.inventDimFixed. Это та аналитика, которая по задумке авторов не может менятся в проводке автоматически. Она инициализируется из первичной аналитики хранения, но также может быть указана руками при резервировании. Опять таки - это про оригинальную версию 3.0. Похоже что в 2009ой версии, флажки в этой аналитике не проверяют, если она не нулевая, то вообще аналитику запрещают менять автоматически.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Hard (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Мы, например, вообще эти связи м/у ПЗ убили, слишком много проблем с ними, во всяком случае у нас. Изменения главного ПЗ система не позволяет сделать (кроме аналитики вроде еще количество и еще что-то, не вспомню). Кроме того были проблемы, если удаляешь ПЗ ниже уровнем, бывает остаются связи и ПЗ верхнего уровня не удалишь. Сейчас мы используем создание цепочки ПЗ на основе строк спецификации с типом строки "Производство", но без маркировки и резерва.
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось Bega; 02.11.2011 в 13:24.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Но вопрос скорее то не в том, что бы просто обойти эту проверку. Хочется изменить складскую аналитику так, чтобы не порвалась цепочка резервирования, т.е. одновременно и на приходной и на расходной проводках Последний раз редактировалось S.Kuskov; 02.11.2011 в 13:52.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну так  inventUpdate.updateDimReserveChange() и ищет расходную проводку, связанную с данной приходной, а потом обновляет там аналитику...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: S.Kuskov (5). | |
| 
			
			 | 
		#6 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
  Следовательно, необходимым условием является не то, что у номенклатуры нет первичной аналитики хранения, а то, что ни одна из первичных аналитик не изменяется в данный момент.
		
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: fed (2). | |
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Так. До меня дошло. Механизм inventUpdate.updateDimReserveChange() не работате в случае если среди изменяемых аналитик присутствует первичная аналитика?. А что будет если это условие выключить?  
		Последний раз редактировалось S.Kuskov; 02.11.2011 в 14:29.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я уверен что это работает в версии 2009. Просто на одном из моих подшефных проектов, немцы забыли поставить галочку "Первичная аналитика хранения"  для аналитики склад, а потом очень, очень удивлялись когда система пыталась списывать в производство со склада отгрузок  
		
		
		
		
		
		
		
		
			  Просто закупщики меняли в закупке склад (просто потому что решали эту закупку прямиком отправить клиентам как запчасти). При этом склад менялся и в складских проводках списания в производство (Хотя в строке спецификации производственного заказа стояла цеховая кладовая конечно, а не склад отгрузок)...
		Последний раз редактировалось fed; 02.11.2011 в 14:37.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В смысле, в коде? Предположу, что в некоторых ситуациях может разойтись аналитика в заказе и в проводке. 
		
		
		
		
		
		
			А почему бы просто не снять с этой аналитики галочку Первичная? 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Её можно будет не указывать в заказах при создании строк. Следовательно, потом можно будет резервировать откуда угодно. 
		
		
		
		
		
		
			Добавлено: Вот ещё fed яркий пример привёл того, на что это повлияет. В том смысле, что перерезервироваться будет везде, а не только в производственных заказах. Так что аккуратней с ней, с галочкой этой  
		
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: S.Kuskov (3). | |