上市公司董监高合规兼职要点速览(根据最新规则整理)
近年来,随着资本市场的快速发展,监管机构对上市公司治理的要求不断提高,多部新规相继发布并实施:《上市公司独立董事管理办法》从2023年9月4日起正式施行,一年过渡期现已届满;新《公司法》于2024年7月1日正式实施;此外,证监会还于2024年12月27日发布了《上市公司章程指引(修订草案征求意见稿)》(以下简称《章程指引(征求意见稿)》)。在此背景下,上市公司董监高的兼职行为面临更为严格的监管要求,本文结合最新法规详细解读董监高兼职的具体规范,以期为上市公司及其董监高提供有益参考。
一、董事
【规则依据】:《深圳证券交易所上市公司自律监管指引第1号——主板上市公司规范运作》3.5.4/《深圳证券交易所上市公司自律监管指引第2号——创业板上市公司规范运作》3.5.4/《上海证券交易所上市公司自律监管指引第1号——规范运作》3.5.4/《上海证券交易所科创板上市公司自律监管指引第1号——规范运作》4.4.3/《北京证券交易所上市公司持续监管指引第1号——独立董事》附件之《独立董事候选人声明与承诺》
根据《公司法》第一百八十四条的规定,董事、监事、高级管理人员未向董事会或者股东会报告,并按照公司章程的规定经董事会或者股东会决议通过,不得自营或者为他人经营与其任职公司同类的业务。上市公司独立董事也适用前述规定,不得在开展上市公司同类业务的公司兼任职务,但按照《公司章程》经上市公司董事会或股东会决议通过的除外。
二、监事
新《公司法》第一百二十一条规定,股份有限公司可以按照公司章程的规定在董事会中设置由董事组成的审计委员会,行使《公司法》规定的监事会的职权,不设监事会或者监事。本次《章程指引(征求意见稿)》则进一步明确,上市公司设置审计委员会行使监事会及监事相关监督职责,具体调整包括删除原监事会的相关内容、删除全部条文中关于“监事”“监事会”的表述,以及规定由审计委员会行使《公司法》规定的监事会的职权,例如自行召集股东会。
需要注意的是,目前《上市公司章程指引》仍处于征求意见阶段,正式稿尚未发布。因此,在上市公司取消监事会之前,上市公司仍需按照现行规则要求,确保监事依法履职,详情如下:
根据《公司法》第一百八十四条的规定,董事、监事、高级管理人员未向董事会或者股东会报告,并按照公司章程的规定经董事会或者股东会决议通过,不得自营或者为他人经营与其任职公司同类的业务。相较于2018年的《公司法》,新《公司法》将竞业禁止人员范围由“董事、高级管理人员”扩大到“董事、监事、高级管理人员”,增加监事作为约束主体。具体而言,上市公司监事不得在开展上市公司同类业务的公司兼任职务,但按照《公司章程》经上市公司董事会或股东会决议通过的除外。
三、高级管理人员
根据《关于上市公司总经理及高层管理人员不得在控股股东单位兼职的通知》(1999年5月6日 证监公司字〔1999〕22号)的规定,总经理及高层管理人员(副总经理、财务主管和董事会秘书)必须在上市公司领薪,不得由控股股东代发薪水。
案例一:DLRD(600719)——总经理薪酬由控股股东发放
根据《公司法》第一百八十四条的规定,董事、监事、高级管理人员未向董事会或者股东会报告,并按照公司章程的规定经董事会或者股东会决议通过,不得自营或者为他人经营与其任职公司同类的业务。即上市公司高级管理人员不得在开展上市公司同类业务的公司兼任职务,但按照《公司章程》经上市公司董事会或股东会决议通过的除外。
除上述规范外,上市公司、董监高人员、控股股东还应严格遵守与兼职有关的承诺,如部分上市公司控股股东会就保持上市公司独立性做出限制上市公司特定人员在其单位兼职的承诺,若违反这些承诺,则将面临相应的监管风险(如案例二)。因此,上市公司及相关人员应时刻保持警惕,确保兼职行为的合规性。
案例二:HGZY(000923)——控股股东保证上市公司独立性的承诺履行不到位
''标签解析异常!
Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
at System.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Byte[] buff, Int32 offset, Int32 len, Int32& totalRead)
at System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value)
at System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj, SqlCommandColumnEncryptionSetting columnEncryptionOverride, String columnName)
at System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly)
at System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
at System.Data.SqlClient.SqlDataReader.GetValues(Object[] values)
at System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
at System.Data.ProviderBase.SchemaMapping.LoadDataRow()
at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at Whir.Repository.Database.Query(String sql, Object[] args)
at Whir.Label.Dynamic.Content.GetColumnFileValue() in E:\chenxz\05.ezEIP\ezEipV5.0\tags\V5.3.0(0649)\Whir.Label\Dynamic\Content.cs:line 111
at Whir.Label.Dynamic.Content.Render(HtmlTextWriter output) in E:\chenxz\05.ezEIP\ezEipV5.0\tags\V5.3.0(0649)\Whir.Label\Dynamic\Content.cs:line 93