Skip to Content
Menú
This question has been flagged
1 Respondre
117 Vistes

Erreur de serveur Odoo

RPC_ERROR

Odoo Server Error

Occured on 147.93.95.212:8069 on model hr.expense.sheet and id 21 on 2025-08-19 09:27:52 GMT

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 6193, in ensure_one
    _id, = self._ids
    ^^^^
ValueError: not enough values to unpack (expected 1, got 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1954, in _transactioning
    return service_model.retrying(func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 137, in retrying
    result = func()
             ^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1921, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 2168, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 329, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 727, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 40, in call_button
    action = call_kw(request.env[model], method, args, kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 517, in call_kw
    result = getattr(recs, name)(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/sale_expense/models/hr_expense_sheet.py", line 81, in action_reset_expense_sheets
    super().action_reset_expense_sheets()
  File "/usr/lib/python3/dist-packages/odoo/addons/hr_expense/models/hr_expense_sheet.py", line 594, in action_reset_expense_sheets
    self._do_reverse_moves()
  File "/usr/lib/python3/dist-packages/odoo/addons/hr_expense/models/hr_expense_sheet.py", line 775, in _do_reverse_moves
    non_draft_moves._reverse_moves(
  File "/usr/lib/python3/dist-packages/odoo/addons/sale_expense/models/account_move_line.py", line 51, in _reverse_moves
    res = super()._reverse_moves(default_values_list, cancel)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/account_move.py", line 59, in _reverse_moves
    return super()._reverse_moves(default_values_list=default_values_list, cancel=cancel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/hr_expense/models/account_move.py", line 78, in _reverse_moves
    return super()._reverse_moves(default_values_list=default_values_list, cancel=cancel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move.py", line 4702, in _reverse_moves
    reverse_moves.with_context(move_reverse_cancel=cancel)._post(soft=False)
  File "/usr/lib/python3/dist-packages/odoo/addons/account_invoice_extract/models/account_invoice.py", line 277, in _post
    posted = super()._post(soft)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/account_move.py", line 101, in _post
    posted = super()._post(soft)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/purchase_stock/models/account_invoice.py", line 144, in _post
    posted = super(AccountMove, self.with_context(skip_cogs_reconciliation=True))._post(soft)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/appointment_account_payment/models/account_move.py", line 14, in _post
    posted = super()._post(soft=soft)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/stock_account/models/account_move.py", line 43, in _post
    return super()._post(soft)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/custom-addons/sibic_facturation_sans_paiement/models/restriction.py", line 153, in _post
    draft_reverse_moves.reversed_entry_id._reconcile_reversed_moves(draft_reverse_moves, self._context.get('move_reverse_cancel', False))
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move.py", line 4657, in _reconcile_reversed_moves
    lines.with_context(move_reverse_cancel=move_reverse_cancel).reconcile()
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2948, in reconcile
    return self._reconcile_plan([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2358, in _reconcile_plan
    self._reconcile_plan_with_sync(plan_list, all_amls)
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2397, in _reconcile_plan_with_sync
    ._prepare_reconciliation_plan(plan, aml_values_map)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2194, in _prepare_reconciliation_plan
    process_leaf(plan)
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2192, in process_leaf
    process_amls(plan_node['amls'])
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2175, in process_amls
    amls_results, fully_reconciled_aml_ids = self._prepare_reconciliation_amls(
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 2143, in _prepare_reconciliation_amls
    results = self._prepare_reconciliation_single_partial(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 1882, in _prepare_reconciliation_single_partial
    credit_available_residual_amounts = self._prepare_move_line_residual_amounts(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_move_line.py", line 1806, in _prepare_move_line_residual_amounts
    has_zero_residual = company_currency.is_zero(remaining_amount)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_currency.py", line 257, in is_zero
    self.ensure_one()
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 6196, in ensure_one
    raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: res.currency()

Avatar
Descartar
Best Answer

Hi,

ValueError: Expected singleton: res.currency()

It means your code tried to call a method/field on a recordset with multiple records, but Odoo expected only one record.

Please refer to the blog:

1. https://www.cybrosys.com/blog/how-to-handle-singleton-error-in-odoo-15


Hope it helps.

Avatar
Descartar