diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py
index d9936688739443ce12096f2794a10fd09e5ae655..b7a706ab0ab175e479512f448c498d9613e02bfa 100644
--- a/addons/account/models/account_move.py
+++ b/addons/account/models/account_move.py
@@ -2988,6 +2988,8 @@ class AccountMoveLine(models.Model):
     @api.depends('product_id', 'account_id', 'partner_id', 'date_maturity')
     def _compute_analytic_account(self):
         for record in self:
+            record.analytic_account_id = (record._origin or record).analytic_account_id
+            record.analytic_tag_ids = (record._origin or record).analytic_tag_ids
             rec = self.env['account.analytic.default'].account_get(
                 product_id=record.product_id.id,
                 partner_id=record.partner_id.commercial_partner_id.id or record.move_id.partner_id.commercial_partner_id.id,
@@ -2996,8 +2998,9 @@ class AccountMoveLine(models.Model):
                 date=record.date_maturity,
                 company_id=record.move_id.company_id.id
             )
-            record.analytic_account_id = (record._origin or record).analytic_account_id or rec.analytic_id
-            record.analytic_tag_ids = (record._origin or record).analytic_tag_ids or rec.analytic_tag_ids
+            if rec and not record.exclude_from_invoice_tab:
+                record.analytic_account_id = rec.analytic_id
+                record.analytic_tag_ids = rec.analytic_tag_ids
 
     def _get_price_total_and_subtotal(self, price_unit=None, quantity=None, discount=None, currency=None, product=None, partner=None, taxes=None, move_type=None):
         self.ensure_one()