全新安装Odoo 16社区版创建员工合同时报错
Odoo 16社区版创建员工合同报错:Invalid field 'analytic_precision' on model 'hr.contract'
问题场景
全新安装Odoo 16社区版,完成会计模块基础配置后,设置员工模块(部门、职位、员工添加),但创建员工合同时,无论填写全部字段还是仅必填字段,保存均触发错误,报错信息如下:
Traceback (most recent call last): File "C:\Program Files\Odoo16\server\odoo\http.py", line 1578, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "C:\Program Files\Odoo16\server\odoo\service\model.py", line 134, in retrying result = func() File "C:\Program Files\Odoo16\server\odoo\http.py", line 1607, in _serve_ir_http response = self.dispatcher.dispatch(rule.endpoint, args) File "C:\Program Files\Odoo16\server\odoo\http.py", line 1804, in dispatch result = self.request.registry['ir.http']._dispatch(endpoint) File "C:\Program Files\Odoo16\server\odoo\addons\website\models\ir_http.py", line 227, in _dispatch response = super()._dispatch(endpoint) File "C:\Program Files\Odoo16\server\odoo\addons\base\models\ir_http.py", line 140, in _dispatch result = endpoint(**request.params) File "C:\Program Files\Odoo16\server\odoo\http.py", line 698, in route_wrapper result = endpoint(self, *args, **params_ok) File "C:\Program Files\Odoo16\server\odoo\addons\web\controllers\dataset.py", line 42, in call_kw return self._call_kw(model, method, args, kwargs) File "C:\Program Files\Odoo16\server\odoo\addons\web\controllers\dataset.py", line 33, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "C:\Program Files\Odoo16\server\odoo\api.py", line 459, in call_kw result = _call_kw_model_create(method, model, args, kwargs) File "C:\Program Files\Odoo16\server\odoo\api.py", line 439, in _call_kw_model_create result = method(recs, *args, **kwargs) File "<decorator-gen-218>", line 2, in create File "C:\Program Files\Odoo16\server\odoo\api.py", line 409, in _model_create_multi return create(self, [arg]) File "C:\Program Files\Odoo16\server\odoo\addons\hr_contract\models\hr_contract.py", line 259, in create contracts = super().create(vals_list) File "<decorator-gen-142>", line 2, in create File "C:\Program Files\Odoo16\server\odoo\api.py", line 410, in _model_create_multi return create(self, arg) File "C:\Program Files\Odoo16\server\odoo\addons\mail\models\mail_thread.py", line 258, in create threads = super(MailThread, self).create(vals_list) File "<decorator-gen-65>", line 2, in create File "C:\Program Files\Odoo16\server\odoo\api.py", line 410, in _model_create_multi return create(self, arg) File "C:\Program Files\Odoo16\server\odoo\addons\base\models\ir_fields.py", line 665, in create recs = super().create(vals_list) File "<decorator-gen-13>", line 2, in create File "C:\Program Files\Odoo16\server\odoo\api.py", line 410, in _model_create_multi return create(self, arg) File "C:\Program Files\Odoo16\server\odoo\models.py", line 3884, in create raise ValueError("Invalid field %r on model %r" % (key, self._name)) ValueError: Invalid field 'analytic_precision' on model 'hr.contract'
解决方案
1. 排查第三方模块冲突
- 进入Odoo后台,打开应用模块,筛选已安装的第三方(非官方)模块,重点检查HR、会计相关的自定义模块或第三方插件。
- 卸载可疑模块后,重启Odoo服务,再次尝试创建合同。
2. 删除无效字段记录
- 开启Odoo技术模式:点击右上角用户头像,选择关于Odoo,点击激活技术模式。
- 进入设置 -> 技术 -> 数据库结构 -> 字段,搜索字段名
analytic_precision,并筛选模型为hr.contract的记录。 - 删除该无效字段记录,重启服务后测试。
3. 重新安装hr_contract模块
- 备份当前数据库,防止数据丢失。
- 进入应用模块,搜索
hr_contract,点击卸载。 - 卸载完成后,重新安装
hr_contract模块,重启服务后尝试创建合同。
4. 检查会计模块配置
- 进入会计 -> 配置 -> 设置,检查分析会计相关的精度设置,确认没有错误关联到员工合同模块。
- 尝试重置会计模块的基础配置,重新保存设置后测试。
内容的提问来源于stack exchange,提问作者Hammod
相关产品推荐
相关产品推荐

