diff --git a/addons/stock_account/models/stock.py b/addons/stock_account/models/stock.py
index 88a87e5e380ca645b69aa7147d07757a4f4f1d16..60f534bf298ea67f57bb36f364e8d08ea89b74fb 100644
--- a/addons/stock_account/models/stock.py
+++ b/addons/stock_account/models/stock.py
@@ -514,11 +514,6 @@ class StockMove(models.Model):
         else:
             valuation_amount = cost
 
-        if self._context.get('forced_ref'):
-            ref = self._context['forced_ref']
-        else:
-            ref = self.picking_id.name
-
         # the standard_price of the product may be in another decimal precision, or not compatible with the coinage of
         # the company currency... so we need to use round() before creating the accounting entries.
         debit_value = self.company_id.currency_id.round(valuation_amount)
@@ -549,6 +544,11 @@ class StockMove(models.Model):
         # This method returns a dictonary to provide an easy extension hook to modify the valuation lines (see purchase for an example)
         self.ensure_one()
 
+        if self._context.get('forced_ref'):
+            ref = self._context['forced_ref']
+        else:
+            ref = self.picking_id.name
+
         debit_line_vals = {
             'name': self.name,
             'product_id': self.product_id.id,