Показать сообщение отдельно
Старый 24.08.2009, 22:45   #58  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от RedFox Посмотреть сообщение
И вот очередная ошибка по складу, любезно указанная _enjoy_.
Проблема:
Товар А хранится на складе в единицах изм. "PCS" в ячейке Х.
Затем продаётся в единицах изм. "BOX".
1. Создается Заказ Продажи с Товаром А в ед.изм. "BOX"
2. Из Заказа создаю складскую Отгрузку с Товаром А в единицах изм. "BOX".
3. Из Отгрузки создаю Подбор: беру Товар А в ед.изм. "BOX" из ячейки Х и кладу Товар А в "BOX" в ту же ячейку Х. Регистрирую Подбор.
4. Отгрузка не учитыватеся у т.к. в ячейке Х Товар А по прежнему лежит в "PCS" а не "BOX"
В настройках склада настроены все операции, кроме Расширенный Подбор и Размещение=Нет

Анализ ошибки: .... И мы получили счастье!!!
Вот пришлось провести анализ ошибки:

Косметические исправления в 2 кодеюнитах:
- Для изменения Единиц Имерения.
Код:
//--RedFox
//  IF Location."Directed Put-away and Pick" THEN BEGIN
//++RedFox
	WhseJnlLine.Quantity := "Qty. to Handle";
	WhseJnlLine."Unit of Measure Code" := "Unit of Measure Code";
	WhseJnlLine."Qty. per Unit of Measure" := "Qty. per Unit of Measure";
	GetItemUnitOfMeasure2("Item No.","Unit of Measure Code");
	WhseJnlLine.Cubage :=
	  ABS(WhseJnlLine.Quantity) * ItemUnitOfMeasure.Cubage;
	WhseJnlLine.Weight :=
	  ABS(WhseJnlLine.Quantity) * ItemUnitOfMeasure.Weight;
//--RedFox
{
  END ELSE BEGIN
	WhseJnlLine.Quantity := "Qty. to Handle (Base)";
	WhseJnlLine."Unit of Measure Code" := WMSMgt.GetBaseUOM("Item No.");
	WhseJnlLine."Qty. per Unit of Measure" := 1;
  END;
}
//++RedFox
- для создания Внутрених перемещений по складу:
Код:
  IF NOT Location."Directed Put-away and Pick" THEN BEGIN
	TotalQtytoPick := ROUND(TotalQtytoPick * QtyPerUnitofMeasure,0.00001);
//--RedFox
	IF Location."Always Create Movement" THEN
	  IF (WhseSource = WhseSource::"Movement Worksheet") AND (FromBinCode <> '') THEN
		InsertTmpActLnFromMovWkshLine(LocationCode,ItemNo,VariantCode,FromBinCode,
									  QtyPerUnitofMeasure,TotalQtytoPick,TempWhseItemTrkgLine,TotalQtytoPickBase);
//++RedFox
P.S. Последнее попозже причешу, чтобы не нарушать "красоту"..