中华人民共和国最高人民法院民 事 判 决 书（2021）最高法知民终990号上诉人（原审被告、反诉原告）：镇江新天地信息科技有限公司。住所地：江苏省镇江新区。法定代表人：杨星，该公司总经理。委托诉讼代理人：邢志华，江苏孙吴律师事务所律师。被上诉人（原审原告、反诉被告）：苏州华印达信息科技有限公司。住所地：江苏省苏州工业园区。法定代表人：陈鹏，该公司执行董事。委托诉讼代理人：季景红，江苏博晓律师事务所律师。上诉人镇江新天地信息科技有限公司（以下简称新天地公司）因与被上诉人苏州华印达信息科技有限公司（以下简称华印达公司）计算机软件开发合同纠纷一案，不服江苏省苏州市中级人民法院于2020年11月27日作出的（2019）苏05知初1220号民事判决，向本院提起上诉。本院于2021年5月17日立案后，依法组成合议庭，并于2021年7月9日询问当事人，上诉人新天地公司的委托诉讼代理人邢志华、被上诉人华印达公司的委托诉讼代理人季景红参加询问。本案现已审理终结。新天地公司上诉请求：撤销原审判决第三项，改判华印达公司赔偿新天地公司损失320000元。事实与理由：（一）原审认定未完成16项合同内需求与事实不符。1.原审认定的第（1）（2.a）（4）（5）（6）（7）（8）（9）项问题为系统Bug，即程序运行出现的错误，可能是开发原因造成，也可能是系统参数和数据错误产生，确认可以更改。软件是复杂系统，无法保证不出现错误，发现错误不影响软件验收，不属于合同内需求没有完成。2.原审认定的第（3）（10）（11）（13）项问题为华印达公司认识错误，华印达纸箱ERP企业管理系统（以下简称涉案软件）符合《软件需求和开发设计》的规定。3.原审认定的第（2.b）（16）项问题为变更需求，第（12）（14）（15）项问题为新增需求。（二）原审认定的第（17）-（94）问题为合同外需求，在对全部94项是否为合同内需求存在争议的情况下，新天地公司有权拒绝开发，等待法院裁决。华印达公司解除委托合同，新天地公司不存在过错，也没有给华印达公司造成损失。新天地公司完成了32项合同外需求，开发工作量和开发费用没有实际减少，软件已经交付运行，华印达公司应当支付剩余委托报酬320000元。合同解除后不存在终验后才支付剩余报酬的问题，原审认为试运行阶段无权要求剩余合同款项属适用法律错误。华印达公司辩称：原审判决认定事实清楚，适用法律正确，请求驳回上诉，维持原判。华印达公司向原审法院提起诉讼，原审法院于2019年12月9日立案受理。华印达公司起诉请求：1.判令解除华印达公司与新天地公司于2019年9月10日签订的《软件委托开发合同》（以下简称涉案合同）及附件软件需求和开发设计、软件项目验收标准；2.判令新天地公司返还华印达公司已支付款项250000元并支付违约金19950元；3.判令新天地公司承担本案诉讼费用。新天地公司原审辩称：1.同意解除涉案合同，但认为新天地公司开发的软件已初验合格并完成交付，而华印达公司一直拒绝出具终验合格书和支付后续款项，实际是华印达公司构成违约，华印达公司应向新天地公司支付剩余合同款项；2.华印达公司所述试运行期间的问题多是华印达公司新增或变更开发需求所致，若法院判定华印达公司所提问题确属合同内需求，新天地公司亦愿意继续完成后续开发。新天地公司向原审法院反诉请求：1.判令华印达公司赔偿新天地公司损失320000元；2.华印达公司承担本案诉讼费用。针对新天地公司的反诉请求，华印达公司原审辩称：1.软件初验合格只是软件开发中的一个环节，初验合格不能等同于终验合格，新天地公司据此认为软件已开发完毕是错误的；2.涉案软件在试运行中出现诸多问题，该些问题均是新天地公司未完成合同内需要所致，新天地公司所述与事实不符；3.结合双方围绕纸箱包装ERP系统开发前后多次签约解约的情况以及涉案合同履行的实际，华印达公司不再接受新天地公司的后续履约。原审法院认定事实：2018年8月21日，华印达公司与新天地公司签订软件开发合同，约定华印达公司委托新天地公司研究开发纸箱包装ERP系统项目。该合同签订后，华印达公司分别于2018年10月8日、2019年1月25日先后支付合同款项共计250000元。2019年5月10日，华印达公司与新天地公司签订软件开发增补协议，约定双方就前述纸箱包装ERP系统项目进行业务补充。2019年8月20日，江苏博晓律师事务所受华印达公司委托向新天地公司寄送律师函，新天地公司于2019年8月29日签收。该律师函称新天地公司未依照约定期限将前述软件开发成功并交付给华印达公司，其行为已构成违约，故函告新天地公司：1.在新天地公司收悉律师函之日，华印达公司与其签订的纸箱包装ERP系统研发合同、纸箱包装ERP系统增补协议立即解除；2.新天地公司在收到本律师函之日起10天内，向华印达公司退还已支付的开发经费250000元。在前述软件开发合同及增补协议解除后，华印达公司（甲方）与新天地公司（乙方）于2019年9月10日签订软件委托开发合同即涉案合同(合同编号：WT-20190910001)，涉案合同第一条为定义，其中约定了：1.3应用软件：乙方根据本合同商务和技术要求为甲方华印达纸箱ERP企业管理系统项目开发、研制的软件，包括技术文件及技术资料等。1.4技术文件或技术资料：合同附件软件需求和开发设计中涉及的所有与应用软件、技术开发及服务、软件的安装、调测、运行、维护和检验相关的文件。1.8初验：甲方按照附件软件需求和开发设计及软件项目验收标准对应用软件按照测试规范进行测试和验证。合格后，甲方与乙方共同签署初验合格证书。1.9移交：乙方在约定时间内向甲方提交应用软件设计文件、开发各阶段文件及应用软件全部源代码、使用操作说明书等。1.10试运行：在初验合格后与最终验收之间的一段时间内对应用软件进行运行，用来证明应用软件的指标是否达到了附件软件需求和开发设计及软件项目验收标准中规定的所有要求。1.11最终验收或终验：甲方对应用软件按照附件软件需求和开发设计及软件项目验收标准进行最终验收。合格后，甲方与乙方共同签署终验合格证书。1.12保修期：按照本合同约定，乙方提供应用软件的免费修复、免费技术支持和服务、以及免费升级，以保证应用软件系统正常运行的时期。涉案合同第二条约定了合同标的，其中约定了：2.1甲方委托乙方为甲方开发华印达纸箱ERP企业管理系统项目软件（即应用软件），乙方负责完成应用软件的设计开发、移交、培训及相关其他服务工作，并保证该应用软件满足本合同及附件提出的所有要求。2.2附件：软件需求和开发设计，由甲方提出软件的具体需求，乙方按甲方的需求制定详细的软件开发设计方案，并交由甲方评审同意后实施。涉案合同第三条为合同价格，其中约定了：3.1本合同总价款（合同总价且为含税价）：人民币伍拾柒万元整(￥570000.00)。3.3除另有约定外，甲方无需就本合同项下委托事项向乙方支付上述费用之外的任何其他费用及税费（包括但不限于营业税、增值税等）。涉案合同第四条为支付，其中约定了：4.1本合同总价款的支付以由甲方分期支付乙方，具体支付方式和时间约定如下：（1）合同签订后，甲方支付本合同总价款的30%；（2）最终验收合格后，甲方支付本合同总价款的60%；（3）保修期届满后，甲方支付本合同款的10%。涉案合同第五条约定了初验、移交、试运行和终验，其中包括：5.1验收标准：乙方保证其向甲方提供的应用软件为全新、完整的软件，并且保证其应用软件的性能、质量及运行与合同及附件中的所有要求相符。双方按本条规定的程序和标准及附件软件需求和开发设计及软件项目验收标准对乙方完成的应用软件进行初验、移交、试运行和终验。在此期间如有部分功能是因甲方需求不能确定，双方可积极商讨此类需求的解决、实现方式并另行约定该类需求的开发工期。5.2初验：乙方按照本合同规定将应用软件开发完成后，应于2019年9月20日前向甲方提交书面初验申请，甲方在收到申请后10工作日内，按照附件软件需求和开发设计及软件项目验收标准对应用软件进行初验，乙方须提供必要的配合。如果测试结果符合附件软件需求和开发设计及软件项目验收标准的质量标准，双方将签署初验合格证书。初验合格证书应由双方代表签字，一式二份，双方各执一份。初验不合格，双方亦应签署初验情况说明，乙方应立即进行更正修改，直至测试结果符合附件软件需求和开发设计及软件项目验收标准的质量标准。初验不合格10日内，经乙方更正修改仍不能达到附件软件需求和开发设计及软件项目验收标准的质量标准的，甲方有权解除本合同。5.3移交：乙方在初验合格后10工作日内根据附件软件需求和开发设计的内容向甲方进行全部完整、准确的技术文件的移交；包括但不限于应用软件的软件开发设计文件及应用软件全部源代码。5.4试运行：应用软件初验合格后进入试运行期。试运行期限为15天。试运行应实现应用软件的功能和性能符合乙方在本合同附件软件需求和开发设计中的承诺。如果在试运行期间发现任何因乙方原因造成的与附件软件需求和开发设计规定的不符，应明确列出错误内容及修改方式，乙方有责任对其进行修改和更正直到其达到附件软件需求和开发设计中的要求，同时试运行期依据上述修改、更正期间进行相应顺延。如果由于乙方原因引起的应用软件的质量和性能问题造成整个系统瘫痪，并且不能在4小时内恢复，试运行期将自系统恢复之次日起重新开始计算。试运行最长不得超过30天，超过该期间后仍不能达到附件软件需求和开发设计及软件项目验收标准的，甲方有权解除本合同。5.5终验：终验在试运行期届满后10个工作日内由甲方指派代表进行。如果终验测试应用软件的所有功能和性能指标均与附件软件需求和开发设计的规定相符，甲方与乙方将共同签署两份应用软件终验合格证书，其中一份由乙方保存，一份由甲方保存。终验不合格，应明确列出错误内容及修改方式，由乙方负责更正和修改。乙方更正、修改后必须再次按照附件软件需求和开发设计和软件项目验收标准进行终验。如果再次终验仍不合格，甲方有权解除本合同。5.6测试反馈及修改进度信息，双方约定存放于“语雀”，双方均为管理者，网站地址为：https：//www.yuque.com/maize，任何一方对文档或文档内容随意或恶意删除，按违约处理，且违约方应向另一方支付合同总价20%的违约金。5.7终验合格并不免除乙方根据本合同规定的保修责任。涉案合同第八条约定了违约责任，其中包括：8.1若由于乙方原因使得初验、移交、试运行（含顺延和重新计算的试运行期）、终验（含再次终验）等任一阶段工作延误的，乙方应就该等延误向甲方承担违约责任。对于乙方在任一阶段工作的延误，甲方均有权要求乙方按照下列比率向甲方支付违约金：任一阶段工作迟延的，则迟延履行的第1、2周，乙方应每周按相当于合同总价1%的标准支付违约金；迟延履行的第3至4周，乙方应每周按相当于合同总价1.5%的标准支付违约金；迟延履行4周以上的时间，乙方应每周按相当于合同总价2%的标准支付违约金。迟延履行不足1周时按1周计算。因任一阶段工作迟延而使甲方额外增加的各项费用（包括但不限于运输及保险费用、测试费用）由乙方承担。如乙方任一阶段工作迟延使甲方遭受损失的，乙方应承担甲方由此造成的损失。甲方解除合同并不影响乙方根据甲方要求应当承担的上述违约责任。8.2保修期内，如乙方未能按合同规定及时提供服务，每迟延一次，乙方需支付合同总价1%的违约金。8.3对于乙方依据本合同约定应当承担的各项违约金及损失赔偿，甲方有权依据本合同约定从应支付乙方的款项中扣除。如乙方对前述扣款事项有异议，应在接到甲方通知后五日内提出。8.4如果因为甲方原因使得合同时间未能得到履行，则在得到甲方书面确认后时间将相应顺延。8.5甲方若有超出附件软件需求和开发设计且不合理的需求，乙方有权拒绝；并要求甲方按附件软件需求和开发计划及项目验收标准进行验收。涉案合同第十条为合同生效及其他，其中约定了：10.5附件是本合同不可分割的部分，若附件与合同正文有任何冲突，以合同正文为准。本合同附件为：软件需求和开发设计、软件项目验收标准。10.6本合同签订之日起，甲乙双方于2018年8月21日签订的项目名称为“纸箱包装ERP系统研发合同”的软件开发合同和2019年5月15日签订的项目名称为“纸箱包装ERP系统增补协议”的软件开发增补协议同时解除。10.7甲方于2018年10月8日支付乙方的人民币壹拾伍万元整(￥150000.00)及2019年1月25日支付乙方的人民币壹拾万元整(￥100000.00)为本合同总价款支付的一部分。合同附件软件需求和开发计划及项目验收标准对软件的开发需求及验收标准作出了详细约定。涉案合同签订后，双方均有一定履行。2019年10月10日，华印达公司出具软件初验合格证书，该证书载明新天地公司为华印达公司开发的“华印达纸箱ERP企业管理系统”达到软件需求和开发设计、软件项目验收标准的初验合格标准。随后，涉案软件进入试运行阶段，双方就软件运行中产生的问题产生争议。本案中，华印达公司主张对照涉案合同附件软件需求和开发计划新天地公司未完成合同内的需求共94项，具体为：（1）销售管理-订单管理：在复制订单的时候修改新订单的信息，但“目标编号”里的信息也跟着一起变化；（2）财务管理-供应商应付款汇总表：（a）已付的5万没有出来；（b）目前出来的已付29332.09是预付账款冲的，不在内，只需统计“资金科目管理”里的科目；（3）销售管理-送货管理-新增/编辑送货单：生产日期错误；（4）基础资料-新增/编辑客户资料：期初应收金额和期初预收金额不能修改；（5）财务管理-工资结算汇总表：（a）无数据显示；（b）注意：默认显示出本年的数据，且有合计值；（6）财务管理-资金科目管理：资金科目中的期初金额结算过后需要灰掉；（7）财务管理-车辆应付款汇总表：无表头、无数据；（8）采购管理-原材采购：已终止采购的数据在导出来的采购单中仍然显示；（9）员工管理-人事档案：员工账号已没有关联，却还是删除不了；（10）销售管理-送货管理-新增/编辑送货单：双击S-11这个订单，但选进去的是别的订单；（11）仓库管理-成品库存管理-新增成品库存转订单：数据不在选择的列表中；且搜索不到；（12）系统管理-角色与权限：所有业务单据的修改依据权限来判定；（13）客户端升级：升级无提示，且会使数据出不来，关闭客户端后再打开才发现有更新；（14）产品的授权有起始日期，无终止日期；技术服务的授权有起始日期和终止日期；（15）销售管理-派车管理：送货单中有对应车牌，但未有做派车单据在哪里看；（16）原先是在登录的窗口有修改密码的操作，现已被取消，但在进入系统后，修改密码的功能无体现；（17）Tab标签的间隔缩小1/3；（18）Tab的间距要统一大小，且尽量小；界面的上下条的高度要统一；最后一个Tab的关闭图标出不来；（19）有可上传的模块中，在上传时打开的弹窗后缀名限定这里为windows的自定义文件，不需要改后缀名；（20）唛图管理的格式排版应与模具管理中保持一致；（21）采购管理-原材采购-新增/编辑原材采购单：点击“删除选择”，会提示“确定是否删除”，确定后提示“没有选择”。另外，需要全局检查此类问题；（22）员工管理：管理列表与单据的排序不一致，排序规则是什么？员工管理-工资录入：单据弹窗的高度与采购、送货等单据一样，不应该这么低；（23）销售管理-订单管理：此处的调入量是在采购原材之前调入的，是不是原材的需求量应当减少；（24）销售管理-送货管理-新增/编辑送货单-生成送货单-数据修改问题；（25）税率放在列表中更为合理，这样可以自动带出；（26）销售管理-送货管理：送货单中最基本的合计金额没有；（27）采购管理-原材采购：已经转购并开好了采购单，但新增里面还能看到；（28）财务管理-发票管理：未开票金额显示错误；本条数据“删除选择”后，再选择时找不到；（29）各单据在新增/编辑时，当数据没有发生变化，点击关闭按钮后还会提示“是否保存”的问题；（30）下拉框样式；（31）采购管理-原材采购：子单显示颜色不对，子单的颜色是从订单开始一直带到对账中的：在弹窗中子单的颜色需要标为紫色；（32）基础资料-新增/编辑产品资料：切换tab再返回，数据丢失；关闭tab，返回的是tab的上一级单；（33）销售管理-新增/编辑订单：数据没有联动性，部分基础数据在新增后，相关联的单据不能实时更新，需要关闭后再次打开单据才会显示；全局存在该问题；目前只有订单中的“供方材质”才能实现联动；（34）基础资料中的新增窗口保存后不关闭，清空即可；编辑窗口保存后关闭；业务单据中的新增窗口和编辑窗口在保存后都关闭；（35）enter选定下一行同列单元的功能以及tab选定下一列单元格的功能没有了；（36）基础资料-车辆资料：默认数据为1，不为空值。其他地方也存在类似问题；（37）销售管理-新增/编辑订单：1、订单编辑后保存，没有关闭；2、手动关闭时，显示数据有变化，是否再次保存？数据有无变化是要判断的，不是点关闭后固定出来的，逻辑前面有提出；（38）采购管理-原材采购：备用采购时，“毛片”只对应“无压线”，“空”要去掉；（39）生产管理-生产报表：（1）此为生产报表，检索条件里怎么出来外协入仓日期；（2）报表数据显示的是：成品生产入仓的信息，成品采购入仓不能包括在内；（40）送货单报表中赠送不显示0；（41）各对账单中单价需要提供修改功能；（42）生产管理：订单中的排序应当按照工序先后进行；（43）员工管理-人事档案：部门职位中增加职能数据，并对应业务流程中的权限：（a）“配送员”建议放在部门或职位中对应；（b）业务--客户资料里可对应选择；跟单--客户资料里可对应选择；生产--生管MES使用；物流--收货、送货里可对应选择；（44）销售管理-送货管理-生成送货单：需要增加“订单类型”；（45）财务管理-新增/编辑订单：一些框内删除键缺失；其他模块中也有这个问题；（46）客户类型有三种：正式客户、试用客户、潜在户（只有正式客户可以进行软件产品和技术服务的授权）；（47）正式客户当前占用的云空间大小(应用服务、数据服务)和资源占用情况需要显示出来，这样可以参照评估；（48）1个客户可对应授权多个软件系统(目前我们只有一个而已)；（49）1个软件系统的授权有两个部分(1、产品；2、技术服务)；（50）授权信息里需要记录完整的授权过程(产品、价格、期间)，类如：a、软件产品有可能从标准版升级到专业版或彩箱版；b、技术服务的多次授权的信息(2018.1.12018.12.31、2019.1.1-209131)；（51）销售合同或技术服务合同里是选择具体的授权信息来进行相关数据的填充再进行打印；（52）客户的账号管理：账号无“停用日期”“用户名称”，列表中的主账号修改为账号类型，把操作里的“编辑”和“账号”合并为“编辑”；（53）客户管理的大概框架基本上就如下：客户信息--客户基本资料和空间占用资料；授权信息--各客户的产品授权信息(选中可生合同)和技术服务授权信息(选中可生成合同；每一次的授新增需求权信息后面可上传文档以保存合同扫描件；账号信息--各客户的账号信息；（54）管理后台及软件新增“箱型图”；（55）自产的子单生产作业单增加“主单编号”；（56）可输入框的组件问题，要的效果是：输入，有对应的下显信息时，按tab键时是保存当前输入信息，手动选择下显信息时填充选择的信息；没有对应的下显信息时，按tab键是保存当前输入的信息；（57）前后勾选顺序在进入单据列表后不要变化，例：在选择的弹窗依次勾选同一个客户订单的顺序为3、5、6、1、2，那进入到单据里，这个客户下面数据排序也对应是3、5、6、1、2；（58）财务管理-供应商应付款汇总表：在“期初应付”的后面应增加上“期初预付”，这样数据才正确。注：“客户应付款汇总表”与之对应一样；（59）已有采购，款号不用灰掉，款号可能会变动；订单对账后，全部数据灰掉；（60）财务管理：客户应收款汇总表、供应商应付款汇总表、车辆应付款汇总表中请列出所有往来单位的数据；（61）采购管理-原材采购：可恢复采购的条件：（a）订单中待采购数量要大于等于“恢复采购”中的数量；（b）备用采购-不进行判断（初验时有反馈说有这样的判断，现实是判断在哪里？）；（62）财务管理-到期提醒：增加“对账金额”的显示；（63）财务管理-新增/辅料月结对账：“供方简称”“换算税率”显示错误；2、对账是否可以修改的判断依据是：有无对应的发票信息或结算信息，有任其一的依据时，本单据显示应不可编辑的状态（全部灰掉）；（64）财务管理-资金科目管理：各资金科目数据无法核对，可否显示“当前金额”以简单示意；（65）基础资料-产品资料-生产报价单：款号、联系人、传真数据错误；客户资料部分有瑕疵以及数据不全；报价日期应该默认为当前日期；客户资料中的送货套账对应公司资料里的信息；（66）基础资料-供应商管理-新增/编辑客户资料：客户简称和客户编码两项在测试中出现问题，在相关业务发生后，需要灰掉（具体的是哪些业务请沟通）；（67）表头中的“调整金额”放在明细表中，明细表右上方增加“增加调整”按钮。去掉主表中的调整金额、合计金额；（68）合计的问题：合计在数据行里；（69）销售-新增/编辑订单：锁定改为“审核”，且审核过的订单，数据全部灰掉，不能编辑；（70）销售管理-新增/编辑订单：原材公仓的逻辑未调整；（71）基础资料-模具管理：“生产开数”可否为*/*的分数形式；（72）常量设置-系统工序：专业版里的删除键需要屏蔽掉；（73）平台设计风格请参考软件的设计（主要为界面排版）；（74）左侧的功能导航栏大类定义不清晰，如：“信息管理、留言管理”是网站里的管理功能，“常量设置”是纸箱ERP里的管理功能；划分清楚后续再有新的ERP功能管理分类会比较明确；（75）销售管理-新增/编辑订单：产品里的材质与其他材质如何区别；（76）销售管理-送货管理-生成送货单：销售订单和加工订单不能同时选择在一个送货单中，否则会导致对账出现问题；（77）单据修改问题：根据权限来定义是否可以操作修改；（78）财务报表里涉及到“客户”“供应商”“外协供商”“辅料供应商”的报表有个问题，列出的应该是全部的单位，不只是有往来数据的单位，因为有的往来单位是有期初值的；（79）取消“客户模具管理”中的模具管理、印版管理、唛图管理的编码自动生成，改为手动输入；（80）开放：送货、退货、外协入仓、原材采购、成品采购、原材入仓、原材退货、成品入仓、成品采购退货、辅料入仓、辅料退货、辅料领用的修改编辑权限。放在权限设置里做配置（该问题已反应多次）；（81）财务管理-其他收款单：“收支科目”需要按单据区分，列出所有的不太合适；有些资金的变动不能记录为“收入”或“支出”项；（82）仓库管理-原材库存管理-新增原材库存转损耗：已选择进去，选择中的列表数据还有显示，相关选择弹窗中的逻辑请全局再检查一下，弹窗显示数量=应显示数量-已选择数量；（83）销售管理-新增/编辑订单：供方材质带不出来；（84）销售管理-新增/编辑订单：报价公式没有自动带出来；订单中新增箱型后，箱型图出不来；（85）自产的子单生产作业单中缺失主单任务编号；（86）应收款合计+未对账订单金额合计大于信用额度时，订单不能输入，并提示；（87）原材采购和成品采购中“恢复采购”的条件；（88）销售-新增/编辑订单：锁定后，应该所有数据都是锁定状态；（89）新增的模具资料在订单不重新打开的情况下，不能显示；（90）生产管理-生产报表：在不关闭tab的情况下，其搜索或其他条件要一直保持：这个是全局应用；（91）生产管理-生产报表：“刷新”按键功能定义不清，其应该只清空搜索条件；“刷新”功能的作用全局检查；（92）材料尺寸数据；（93）销售管理-订单管理：主单的数量修改后，子单的数量没有自动变化，配比数没有用上；（94）销售管理-派车管理：派车管理报表中，没有显示检索条件，此问题全局存在。就前述华印达公司提出的94项问题，新天地公司对其中的83项问题作出了界定和回应，对（84）-（94）项问题未予回应，其中（1）-（9）为系统Bug，（17）-（22）不是错误，（10）（11）及（23）-（28）为华印达公司错误，（29）-（40）为系统优化，（12）-（15）及（41）-（66）为华印达公司新增需求，（16）及（67）-（83）为华印达公司变更需求。就新天地公司对前述双方对94项问题的界定，经与涉案合同所附软件需求和开发设计对照分析，新天地公司所述的不是错误系指该些问题是基于美观性或易操作性对界面所作的带有主观性的调整，不影响各自原有的基础功能的使用；所述的华印达公司错误系指华印达公司对该些问题的理解和认定与事实存在偏差；所述的系统优化系指对现有基础功能的进一步扩展和优化。本案中，以涉案合同为依据，同时结合双方的诉辩意见以及庭审陈述，对前述94项问题分析如下：（1）-（16）属于未完成的合同约定的开发需求，（17）-（94）为未完成的合同外开发需求。除前述华印达公司提出的94项问题外，新天地公司提出其在初验及试运行阶段还完成了华印达公司所要求的合同外需求32项，具体为：（1）采购管理-成品采购汇总表：有歧义的数据名称修改；（2）新增公司资料；（3）调整布局；（4）增加最大门幅开数；（5）数据展现样式；（6）新增功能；（7）基础资料-优惠管理：增加原报价、对应“纸类/楞型”数据；（8）基础资料-优惠管理：增加对应“纸类/楞型”数据；（9）基础资料-产品资料：页面增加箱型的新增和编辑；（10）取消：“销售单价”与“参考售价”的联动，保持原“销售单价”不变；（11）销售管理-订单未交表：增加对应库存数量数据；（12）采购管理-原材采购：净片-毛片后面加上压线方式；（13）基础资料-字典项-回车键保存；（14）基础资料-材质报价&楞型-材质类型转移至纸类楞型（考虑其中引起的问题）；（15）基础资料-客户管理-产品资料-产品资料中去掉送货备注；（16）销售管理-订单管理-“净片”时，压线方式=“空”；（17）销售管理-送货排程-成品公仓选择去除；（18）采购管理-原材采购-删除备用采购-备注；（19）生产管理-外协入仓单-编辑页面去掉入仓数量的合计；（20）生产管理-外协退货单-编辑页面去掉入仓数量的合计；（21）员工管理-部门职位-去掉编码这个搜索项；（22）员工管理-部门职位-列表中增加部门名称这一列，位于职位名称后面；（23）员工管理-人事档案-增加人员类型状态：普通员工、送货人员，在送货单等模块的送货人员选择时，仅可选择人员状态为送货人员的员工；（24）仓库管理-辅料入仓-辅料库存合并调整；（25）仓库管理-辅料退货-库存合并后，库存退货调整；（26）仓库管理-原材入仓-加工入仓中也要有生成生产单，位置同采购入仓；功能同订单管理-生成生产单；（27）财务管理-供应商月结对账-搜索中的供方简称改为下拉选择框；（28）财务管理-辅料损耗记录-搜索中辅料类别和品名规格改为下拉选项；（29）财务管理-辅料月结对账-搜索中的供方简称改为下拉选择框；（30）财务管理-外协月结对账-搜索中的外协单位改为下拉选择框；（31）财务管理-客户对账汇总表-搜索中的客户简称改为下拉选择框；（32）财务管理-发票汇总表-往来单位下拉选项，包括：客户、供应商、外协供应商、辅料供应商、车辆（对应发票中的往来单位）；可输入可选择。就前述新天地公司的主张，华印达公司认可新天地公司完成了上述功能需求，但认为该些功能需求属于基于合同质量要求的业务关联性、操作便捷性等提出的问题，不属于新增或变更的需求。本案中，以涉案合同为依据，对前述32项问题分析如下：（1）为合同内需求，（2）-（32）为合同外开发需求。原审法院认为：华印达公司与新天地公司签订的涉案合同系双方真实意思表示，内容不违反法律、行政法规的强制性规定，合法有效，双方均应依约履行。关于华印达公司的本诉请求。华印达公司主张新天地公司共有94项合同内需求未能完成并据此诉请解除合同以及返还合同款项，但根据涉案合同及其所附软件需求和开发设计可知，华印达公司所提的94项需求中只有16项需求可以纳入新天地公司依约应完成的合同内需求范畴，其余78项需求皆为合同外需求。由此可见，华印达公司所谓该94项需求皆为合同内需求并不完全与涉案合同约定相符。在双方已完成软件初验并进入试运行环节的情形下，华印达公司提出前述诸多问题进而引发双方就合同的后续履行产生重大争议，华印达公司就当前的合同履行受阻亦负有责任，其据此请求解除合同难以成立。针对涉案合同是继续履行还是予以解除的问题，其一，华印达公司诉请解除并明确陈述不愿接受合同的继续履行，而新天地公司对合同解除也表示同意；另一方面，梳理双方围绕涉案软件开发进行的签约、解除以及再签订涉案合同的历程可知，双方就软件开发一直存在诸多争议，而软件开发有赖于双方的高度配合和有效沟通，涉案合同的后续履行实际上困难重重。综合以上考量，判定解除涉案合同符合双方的合意，亦有助于及时的定纷止争。就华印达公司所提的返还合同款项并支付违约金的请求，鉴于涉案软件开发已完成初验并进入试运行环节，且新天地公司实际上还完成了较多的合同外的开发需求，而华印达公司就合同履行受阻确也负有责任，在此情形下华印达公司的该项请求依据不足，原审法院不予支持。关于新天地公司的反诉请求。如前所述，华印达公司提出的94项需求中亦确有部分属于新天地公司应完成的合同内需求而未能完成，新天地公司就涉案合同的履行受阻亦负有责任。反观双方的履约实际，涉案软件开发处于初验完成并进入试运行环节，而涉案合同就软件开发步骤及相应的款项支付均有明确约定，新天地公司在软件处于试运行阶段即诉请华印达公司支付后续合同款项显然缺乏依据，原审法院不予支持。原审法院依照《中华人民共和国合同法》（以下简称合同法）第八条、第九十三条第一款、第九十七条、第一百二十条、第三百三十条、第四百零五条、《中华人民共和国民事诉讼法》第六十四条第一款之规定判决：一、解除华印达公司与新天地公司于2019年9月10日签订的软件委托开发合同；二、驳回华印达公司的其他诉讼请求；三、驳回新天地公司的诉讼请求。原审本诉案件受理费5349元，财产保全费1870元，由华印达公司负担；原审反诉案件受理费3050元，由新天地公司负担。二审中，当事人没有提交新证据。原审查明的事实基本属实，本院予以确认。另查明，本院二审审理过程中，关于第（14）项问题，华印达公司承认附件中针对授权信息没有进行明确约定。华印达公司虽主张设定授权终止日期，是因为没有终止权限会导致在权限到期后仍可以继续使用，但并未证明软件需求中存在相关功能的设定。关于第（15）项问题，华印达公司明确其所主张存在的具体问题内容为“在未做派车单之前，在系统中做送货单时，可以指定该批货物由哪辆车去送，在返回到派车单的页面之后，选择到该指定车辆，但是并未显示：车辆已经在送货单里指派了，但是未制作相对应的派车单的一个列表。”本案系计算机软件开发合同纠纷案件。《中华人民共和国民法典》（以下简称民法典）自2021年1月1日起施行，合同法同时废止。根据《最高人民法院关于适用时间效力的若干规定》第一条第二款的规定：“民法典施行前的法律事实引起的民事纠纷案件，适用当时的法律、司法解释的规定，但是法律、司法解释另有规定的除外。”因本案合同订立等相关法律事实发生于民法典施行前，本案适用合同法的相关规定进行审理。本院认为，本案的争议焦点问题为：（一）原审法院认定16项合同内需求未完成是否准确；（二）华印达公司是否应赔偿新天地公司损失320000元。（一）关于原审法院认定16项合同内需求未完成是否准确的问题新天地公司上诉主张，在原审认定的16项未完成的合同内需求中，第（1）（2.a）（4）（5）（6）（7）（8）（9）问题为系统Bug，即程序运行出现的错误；第（3）（10）（11）（13）问题为华印达公司认识错误，无法按其要求完成；第（2.b）（16）问题为变更需求；第（12）（14）（15）问题为新增需求。对此本院分别评判如下：对于第（1）（2.a）（4）（5）（6）（7）（8）（9）项问题，新天地公司认为其为系统BUG。同时，对于第（2.b）和第（3）项问题，新天地公司在向原审法院提交的“应答文件一”中，亦认可其为系统BUG，现其在本院二审中该两项分别主张为变更需求和华印达公司认识错误，但却未能提交证据足以推翻其自认，故本院对其该项主张不予支持，该两项亦应认定属于系统BUG。对此，新天地公司在上诉中主张，其“可能是开发原因造成，也可能是系统参数和数据错误产生，可以确认更改。ERP软件是复杂系统，无法保证不出现错误，发现改正不影响软件验收”。然而，对于此类可以确认更改的错误，新天地公司截至华印达公司原审起诉仍未予以更正，其履行行为显然不能满足合同约定的需求，原审法院对此认定并无不当。对于第（10）（11）（13）项问题，新天地公司主张因华印达公司认识错误，无法按其要求完成。然而，一方面，由华印达公司原审提交的证据可见，双方在订立涉案合同前，曾多次就此进行缔约，且新天地公司在原审中亦主张其对涉案软件的开发进行了调研工作，可见，其对该项目应有充分了解，在订立合同时亦能够明确华印达公司提出的需求能否满足，其现主张该三项需求系因华印达公司认识错误，无法按其要求完成而未能实现，缺乏事实依据。另一方面，关于第（10）项问题，在《软件需求和开发设计》中，明确了“销售管理-送货管理：……可按订单选择……”的需求，即其应当可按订单选择客户送货业务，而在当前界面中，双击选择订单不能命中正确的订单，并非华印达公司认识错误，属于新天地公司未完成合同需求；关于第（11）项问题，在《软件需求和开发设计》中，明确了“仓库管理-成品库存管理：……管理界面数据可搜索……”的需求，而在当前界面中，显示数据无法搜索，新天地公司不能证明华印达公司对此负有过错，其属于未完成的合同需求；关于第（13）项问题，在《软件需求和开发设计》中，明确了“质量要求—客户端支持在线升级功能”，系统应支持在线更新升级，给出升级提示，保障升级过程中数据正常，此系升级功能的基本要求，而并非额外需求。而在本案界面中，客户端用户使用时，如果有升级，无提示，功能使用时数据出不来，关闭客户端后再打开，才发现有更新，此与升级功能要求不符，新天地公司主张对此已告知华印达公司，但并未提交证据证明，原审法院认定其应属未完成的合同需求，并无不当。对于第（16）项问题，新天地公司主张为变更需求，然而，修改用户密码是软件的基本功能，不论是在登录窗口，还是在进入系统后进行操作，都应是常用的可选操作入口，华印达公司的该项要求并不属于需求变更。对于第（12）（14）（15）项问题，新天地公司主张为新增需求，其中，对于第（12）项问题，在《软件需求和开发设计》中，明确“系统管理-权限管理：账号的权限管理业务，按角色定义和分配，角色权限可新增、编辑、删除”，可见对于业务单据的修改权限设置的需求已约定在协议中，不属新增需求；对于第（14）项问题，虽然在《软件需求和开发设计》中，明确“系统管理-关于（软件信息）：包含软件简介、授权信息、厂商信息”，但华印达公司承认在合同附件中针对授权信息没有进行明确约定，并且其亦无证据证明涉案软件需求中存在关于防止“对外进行授权时没有授权终止日期，会导致在权限到期后仍可以继续使用”相应的功能设计，因此，华印达公司主张授权终止日期为合同内需求缺乏依据，原审法院对此认定不当，本院予以纠正；对于第（15）项问题，华印达公司主张该问题系“在未做派车单之前，在系统中做送货单时，可以指定该批货物由哪辆车去送，在返回到派车单的页面之后，选择到该指定车辆，但是并未显示：车辆已经在送货单里指派了，但是未制作相对应的派车单的一个列表”，但通过其原审提交证据中的截图，并未能体现其所主张的问题，其对此亦未提交其他证据予以证明。原审法院认定该项问题属于新天地公司未完成的合同内需求确属不当，本院予以纠正。综上，原审法院认定新天地公司对于第（1）-（13）项及第（16）项合同内需求内容未予完成事实依据充分，但对于第（14）（15）两项问题属未完成合同内需求认定事实错误，本院予以纠正。（二）关于华印达公司是否应赔偿新天地公司损失320000元的问题本院认为，依照合同法第九十七条规定：“合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施、并有权要求赔偿损失。”本案中，涉案合同已经解除，新天地公司要求华印达公司赔偿损失320000元应就此承担举证责任。现新天地公司仅以双方约定的合同剩余价款作为损失计算的依据，然而，一方面，尽管原审法院对部分事实认定错误，但新天地公司对于14项合同内需求并未完成，其履行行为存在瑕疵；另一方面，截至涉案合同解除时，本合同并未履行完毕，合同解除后，尚未履行部分将终止履行，新天地公司在同意解除合同时，对此应为明知。在合同解除后，新天地公司已免于履行合同中约定的瑕疵修复及其他技术支持和服务义务，在此情况下，其要求比照合同完全履行完毕所将获得酬劳数额作为损失计算的依据于法无据。同时，对于新天地公司所主张的其完成的非本合同内需求内容，因其不属于本合同约定事项范围，故该损失是否存在及应否赔偿不属于因解除本合同时所争议事项的范围，本院对新天地公司的该项上诉理由不予支持。综上所述，原审判决认定事实存在错误，但裁判结果和适用法律正确，故对新天地公司的上诉请求不予支持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项、《最高人民法院关于适用的解释》第三百三十四条之规定，判决如下：驳回上诉，维持原判。二审案件受理费6100元，由上诉人镇江新天地信息科技有限公司负担。本判决为终审判决。审 判 长 原晓爽审 判 员 薛 淼审 判 员 何 隽二〇二一年八月十二日法官助理 张琳洁书 记 员 汪 妮裁判要点案号（2021）最高法知民终990号案由计算机软件开发合同纠纷合议庭审判长：原晓爽审判员：薛淼、何隽法官助理：张琳洁书记员：汪妮裁判日期2021年8月12日关键词计算机软件；合同解除；损失计算当事人上诉人（原审被告、反诉原告）：镇江新天地信息科技有限公司；被上诉人（原审原告、反诉被告）：苏州华印达信息科技有限公司。裁判结果驳回上诉，维持原判。原判主文：一、解除苏州华印达信息科技有限公司与镇江新天地信息科技有限公司于2019年9月10日签订的软件委托开发合同；二、驳回原告苏州华印达信息科技有限公司的其他诉讼请求；三、驳回反诉原告镇江新天地信息科技有限公司的诉讼请求。本诉案件受理费5349元，财产保全费1870元，由苏州华印达信息科技有限公司负担；反诉案件受理费3050元，由镇江新天地信息科技有限公司负担。涉案法条《中华人民共和国合同法》第九十七条；《中华人民共和国民事诉讼法》第一百七十条第一款第一项；《最高人民法院关于适用的解释》第三百三十四条。法律问题合同解除后损失的确定裁判观点合同解除后，主张因解除合同而要求赔偿损失的一方，对损失的确定负有举证责任。注：本摘要并非判决书之组成部分，不具有法律效力。