Показать сообщение отдельно
Старый 24.06.2009, 00:00   #41  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от RedFox Посмотреть сообщение
У нас есть Товар 1 (пользовался у себя товар 80206 - Кронус), у которого устнавнолено Reserve=Always
Продали его, а теперь пытаемся вернуть. Для Этого создаем (но не заполняем) Возврат и просто пытаемся копировать документ (чтобы типа сохранить все условия отгрузки для корректировки).
И получаем ошибку, что поле "Shipment Date" не заполнено (см. вложение). Но в исходном документе оно заполнено!!!

Тоесть система не копирует значения???

P.S. Читаю, что написано в про галочку "Include Header" - Place a check mark in this field if you want the program to copy the information from the document header you are copying to the document you are creating. The document lines will be copied whether or not there is a check mark in this field.
Любопытная бага. Я помещу ее в Антибаг если ты не против.

Хочу отметить, что НАВ shipment date в заголовок документа получателя копирует, но затем затирает (если документ-получатель является возвратом). Однако проблема не в заголовке. Если формировать документ вручную, то можно заметить, что shipment date заполняется в строках при вводе товара, не смотря на то, что заголовок пуст. А вот при копировании документа, хотя shipment date и копируется из строк-документа источника, затем он затирается значением из заголовка документа-получателя (а как я уже говорил, для возвратов туда принудительно устанавливается значение 0D).

Т.е. на первый взгляд проблема кроется в CU 6620 Copy Document Mgt. в функции CopySalesLine - не в том месте стоит END

Код:
IF ExactCostRevMandatory AND
   (FromSalesLine.Type = FromSalesLine.Type::Item) AND
   (FromSalesLine."Appl.-from Item Entry" <> 0) AND
   NOT MoveNegLines
THEN BEGIN
  IF RecalculateAmount THEN BEGIN
	ToSalesLine.VALIDATE("Unit Price",FromSalesLine."Unit Price");
	ToSalesLine.VALIDATE(
	  "Line Discount Amount",
	  ROUND(FromSalesLine."Line Discount Amount",Currency."Amount Rounding Precision"));
	ToSalesLine.VALIDATE(
	  "Inv. Discount Amount",
	  ROUND(FromSalesLine."Inv. Discount Amount",Currency."Amount Rounding Precision"));
  END;
//Считаю, что здесь должен быть END
  IF NOT CreateToHeader THEN
	IF ToSalesLine."Shipment Date" = 0D THEN BEGIN
	  IF ToSalesHeader."Shipment Date" <> 0D THEN
		ToSalesLine."Shipment Date" := ToSalesHeader."Shipment Date"
	  ELSE
		ToSalesLine."Shipment Date" := WORKDATE;
	END;
END;  //А здесь его быть не должно
В подтверждение можно включить флажок Точный Возврат Себестоимости и убедиться, что ошибка исчезнет. На мой взгляд Точный Возврат Себестоимости ни коим образом не должен быть связан с датой отгрузки (тем более в возврате она не несет никакой информационной нагрузки).