模块结构

1C:企业8.2 /
对于开发者 /
代码约定

目录

1.1。 在一般情况下的程序模块(通用模块,对象模块,对象管理器模块,表单模块,命令等)中,以下部分可能存在于以下部分中 序列

某些部分可能仅存在于某种类型的模块中。 例如,表单元素的事件处理程序只能存在于表单模块中,并且不能在非全局通用模块,对象管理器模块,记录集,常量值和会话模块中定义变量描述部分和初始化部分。

将模块代码划分为多个部分的要求旨在提高代码的可读性并简化不同作者对代码的更改的引入( 由开发人员 )如在集体开发中,以及针对特定实现的应用程序解决方案的改进。

1.2。 常用模块的模板(复制空白)部分:

////////////////////////////////////////////////// ////////////////////////////// // // // //////////// ////////////////////////////////////////////////// ////////////// //////////////////////////////////// //////////////////////////////////////////// // //软件界面// ////////////////////////////////////////////////// //////////////////////////// //服务程序和功能

  • “程序接口”部分包含供其他配置对象或其他程序使用的导出过程和函数(例如,通过外部连接)。
  • “实用程序和功能”部分包含构成通用模块内部实现的过程和功能。 在公共模块是某些模块的一部分的情况下 实用 包含多个元数据对象的子系统,此部分还可以包含服务导出过程和仅用于从该子系统的其他对象调用的函数。
    对于批量通用模块,建议根据功能属性将此部分划分为子部分。 小节前面有一个评注,建议以类似的方式发布。 例如:

////////////////////////////////////////////////// ////////////////////////////// // 信息库更新

1.3。 用于对象模块,管理器,记录集,处理,报告等部分设计的模板:

////////////////////////////////////////////////// ////////////////////////////// //软件接口////////////// // ////////////////////////////////////////////////// ////////////// //事件处理者//////////////////////////////// //////////////////////////////////////////////// // //服务程序和功能

  • “程序接口”部分包含旨在用于其他配置模块或其他程序的导出过程和功能(例如,通过外部连接)。 没有必要在本节中放置旨在仅从对象本身的模块,其形式和命令调用的导出函数和过程。 例如,填充从对象模块中的填充处理和表单命令处理程序中的文档表单调用的文档的表部分的过程不是对象模块的程序接口,因为 只在模块本身和同一对象的形式中调用。 它们应该被放置 在该部分 “实用程序和功能。”
  • “事件处理程序”部分包含对象模块的事件处理程序( PrizavisiPRO等)
  • “实用程序和功能”部分与一般模块中的目的相同。

1.4。 表单模块的部分设计模板:

////////////////////////////////////////////////// ////////////////////////////// //表格事件的处理者///////////// ////////////////////////////////////////////////// /////////////// //形式的元素事件的处理//////////////////////////// ////////////////////////////////////////////////// // //事件处理器表格////////////////////////////////////////// ////////////////////////////////////// //表格队伍的处理者/////// ////////////////////////////////////////////////// /////////////////////// //服务程序和功能

  • “表单事件处理程序”部分包含表单事件处理程序过程: 创建服务器打开等。
  • “表单元素处理程序”部分包含处理表单主要部分中的元素的过程(与表单上的表无关的所有内容)。
  • “表格表<表格表名>的事件处理程序”部分中,有表格表格和表格元素的处理程序的过程。 对于处理程序过程,每个表必须有自己的分区。
  • “表单命令处理程序”部分包含表单命令处理程序的过程(其名称在表单命令的Action属性中指定)。
  • “实用程序和功能”部分与一般模块中的目的相同。

另请参阅:创建表单模块的规则

2.软件模块部分的一般要求。

2.1。 模块标题模块一开始的注释。 模块标题提供简要描述和应用条件。
例如:

////////////////////////////////////////////////// //////////////////////////// // //客户程序和通用功能:// - 用于处理表格中的清单; // - 使用日志; // - 用于处理操作 用户 正在进行中 编辑 //多线 文本 ,例如文件中的评论; // - 其他 ////////////////////////////////////////////////// ////////////////////////////////

对于表单模块,建议在表头中放置表单参数的说明。

2.2。 变量描述部分 。 变量名称根据常规分配 变量名称规则 ,并在文章中描述了它们的用途。 在软件模块中使用全局变量

应为所有模块变量提供足以理解其目的的注释。 建议将注释放在声明变量的同一行中。
例如:

Pem CurrencyAccounting Export; //保存会计的货币Perem地址支持导出; //发送错误消息的电子邮件地址

2.3。 软件界面 组成其编程接口的导出过程和函数紧跟在变量描述之后。 此类过程和函数旨在供其他配置对象或其他程序使用(例如,通过外部连接),因此它们应位于模块中的“可见位置”。

另请参见:过程和函数的说明。

2.4.1 表单事件处理程序,命令和表单元素 。 在表单模块中的服务过程和函数之前,定位表单的事件处理程序,以及命令和表单元素的事件处理程序。

有条理的推荐(有用的建议)

建议将一个表单元素的处理程序放在一起,在表单编辑器的属性面板中遵循其后续顺序。 在配置器中

2.4.2。 每个事件都必须有自己的处理程序。 如果在表单的不同元素中发生事件时应执行相同的操作:

  • 创建一个执行必要操作的单独过程(函数)

  • 对于每个表单元素,使用默认名称创建单独的处理程序

  • 从每个处理程序调用所需的过程(函数)。

例如,错误:

&OnClient Procedure for ExecutionApplication(Element)Selection Parameters = New Compliance(); 选项选择。粘贴(“按作者”,按作者); 选项选择。粘贴(“执行”,执行); 设置列表选择(列表,选择选项); KonetsProtsedury &On客户程序通过更改(元素)更改(元素)到执行更改(未定义); KonetsProtsedury

正确:

&OnClient过程到PerformIndicator(Item)SetSelection(); 结束过程和在客户端过程按作者更改(元素)安装选择(); EndProcedures和OnServer过程SetSelection()选择参数=新的合规性(); 选项选择。粘贴(“按作者”,按作者); 选项选择。粘贴(“执行”,执行); 设置列表选择(列表,选择选项); KonetsProtsedury

此要求是由于事件处理程序过程的逻辑不打算在模块代码中使用,而是由平台直接调用。 在一个过程中混合这两个场景不必要地使其逻辑复杂化并降低其稳健性(而不是一个设想的调用场景 - 在来自平台的事件时 - 过程代码必须依赖于来自代码的其他直接调用)。

2.5。 对象模块和对象管理器的事件处理程序在导出后放置,但在实用程序和模块功能之前。

有条理的推荐(有用的建议)

建议在嵌入式语言的描述中放置处理程序,遵循其后续顺序。

2.6。 实用程序和模块函数不是事件处理程序,而是构成模块的内部实现,它们放在事件处理程序旁边的模块中。

如果公共模块是包含多个元数据对象的功能子系统的一部分,则此部分还可以包含服务导出过程和仅用于从该子系统的其他对象调用的函数。

建议将按性质或工作逻辑相互关联的程序和功能放在一起。 不建议在没有上下文的情况下将模块的过程和功能明确地分组到服务器,客户端和功能中,因为这种“技术”排序使得对模块逻辑的理解变得复杂,将开发人员的注意力转移到其实现的细节上。

2.7。 初始化部分包含初始化模块或对象(表单)变量的语句。 例如:

支持地址=“[email protected]”; //联系技术支持的地址执行初始化();

关于这个主题的其他材料:
更新数据库 事件处理程序 软件界面 处理器 程序 模板 程序结束 功能 接口 描述 剪贴板 复制 部分 交换 形状 一个对象 元素 配置 组态 文件

部分材料: 1C:编写代码时的企业8.2 /开发人员/协议

关于这个主题的其他材料:

程序和功能的描述

所选对象的缩放功能

将1C:Enterprise 8.2平台上的配置传输到1C:Enterprise 8.3平台,而不使用版本8.2的兼容模式

程序和职能的名称

使用特权模式


我们发现: 模块1c结构是服务程序和功能 ,模块,管理器模块调用程序1c 8 2,如何从另一个模块1c调用程序,英语模块头,1c从处理表调用模块程序,1c 8 2从管理器模块调用程序,1


1C:企业8