资讯动态

物料编码规则从0到1:结构设计、生成与落地避坑指南

发布时间:2026/10/17 11:09:20 来源:尧图企业网站定制
简介这份物料编码规则文档专为制造企业及ERP/BOM管理人员设计旨在通过统一料号规则解决物料种类繁多、查询不便与交叉核对困难等问题。文档完整给出十位字母数字组合的编码体系逐位说明代表种类、封装形式、尺寸、材料、功率/容量、误差及包装形式等含义并针对电阻、电容、电感、半导体、晶振、显示器件、五金件、塑胶件、PCB板、线材、包装及辅助材料等类别分别制定编码明细还给出贴片碳膜电阻等具体编码示例如RS1CB103JM5便于直接套用和扩展。资源为单个docx文件体积仅67KB内容含目的、适用范围、申请料号流程及详细编号规则说明可为企业建立物料电子台账和编制BOM清单提供可落地模板。已有3093人学习浏览适合需要规范物料编码体系或优化ERP物料管理的工程师参考。1. 一块“物料编码规则.docx”卡住上线的这一个月进 ERP 或者 MES 项目时我最怕听见的一句话不是“需求又改了”而是“物料编码规则还没定”。这听起来是小事但经常是整个主数据项目的断头路一边是技术人员在系统里模拟编码一边是仓库、采购、财务拿着 Excel 对来对去谁也说服不了谁。最后通常是某个老师傅拍板“按老套路分区号加流水”结果一个月后新物料涌进来编码格式乱成一锅粥有的带横杠、有的带小数点、有的干脆把规格型号塞进编码里。物料编码规则.docx 这个标题对得起“坑王”两个字。这篇文章就是把我做过的编码规则梳理方案摊开讲从规则骨架怎么搭、分类和流水怎么定到系统里怎么落下去、哪些条款写进文档会害死人最后再补上查重和反查的小技巧。若你正要写这份文档或者接了某套系统的物料主数据整理建议照着这个顺序过一遍少走几趟夜路。2. 动手写编码规则文档之前先把旧账翻明白2.1 两份数据清单和一张部门撕扯表物料编码规则文档写不下去八成不是文笔问题而是没人把老数据捋清楚。在我过手的模拟项目里第一步一定是把现存的物料资料全部拉出来库存台账、采购订单里的物料描述、技术部的图号清单、财务的成本科目。这四套数据通常互相打架。同一个螺丝库存叫“不锈钢螺丝 M3*8”采购订单里叫“螺钉 M3X8 304”图号叫“SC-304-M3-8”财务明细里只写“紧固件”。这时候谁提出“直接按图号编新码”谁就是在给下个月埋雷。我的做法是先做一份乱码台账每一行是一份旧物料描述附上来源部门、使用频次、出现在哪些单据里。然后拉上采购、仓管、工艺、财务四个角色各来一个人开一次两个小时的会会上只讨论一件事哪些描述其实是同一个物料。这个会议别指望当场拍板统一名称只要能把“同物异名”和“同名异物”两类清单签个字后面写规则就有依据了。没有这个动作就写出来的编码规则大概率是给自己和同事挖坑。2.2 编码规则的“宪法条款”宁可少写不要多管物料编码文档最容易犯的毛病是想把一切约束写全最后变成一部比刑法还厚的法典。比如有人在规则里规定“流水号必须体现供应商”“批次号必须带生产线”“颜色代码放在第六位”。这些条款看起来严谨实际上把编码从标识符变成了信息仓库。编码的本职是把物料唯一标识出来不是把物料的全部属性都塞进去。等到物料属性变了——供应商换了一家、生产线调整了——你还要去改编码这是灾难。我一般会把编码规则文档限定在四层内容编码的总体结构、分类段怎么取、流水段怎么补位、一物一码的强制约定。除了这四层其他内容比如描述命名规范、计量单位规范、品牌清单可以放独立章节不要和编码规则混在同一张表里。文档一旦超过十页实施的时候没人会逐条细读反而容易因为某条生僻条款卡住流程。少写几条规则就多几分存活的概率。2.3 旧数据清洗前先定“新老划断”边界物料编码规则要不要覆盖老物料这是我最常被问到的问题也是最容易在会议上吵翻的问题。常见的做法有三种全部重编码、老物料维持原码、老物料新码并行过渡。全部重编码的账算下来通常劝退几千条物料要在库存期初、采购在途、财务余额里同步换码中间漏一笔就对不上账。老物料维持原码又会导致同一个物料库里出现两套编码风格后续查重和报表会很痛苦。我支持的是折中方案新物料一律按新规则生成老物料如果没有重号错号就先保留原编码在文档里声明“存量物料编码在下次年度盘库时逐步切换”。这样做的好处是系统和业务能先跑起来编码规则文档不会被老数据拖垮坏处是过渡期你每天都会遇到新旧编码并存的视图需要有人专门做映射表。映射表字段就用三列老编码、新编码、物料描述每次切换一批核对一批不要一口气改完。3. 编码结构怎么搭把“分类段 流水段”用到极致3.1 分类段设计的两种稳定写法全数字位段 vs 大类字母 中类数字物料编码结构行业里最常见的是“分类段 流水段”的组合分类段解决物以类聚流水段解决一物一码。分类段有两种写法最经得起时间考验一种是全数字位段比如 01 代表原材料、02 代表外购件、03 代表自制件另一种是大类用一位字母、中类用两位数字比如 A01 代表电子元件-电阻、A02 代表电子元件-电容。我见过不少公司纠结要不要用字母其实字母和数字没有本质优劣真正要命的是分类层级的数量。如果只按用途大分类比如原料、辅料、成品、备件那么分类段的位数 2 位就够如果公司内部还喜欢按材质再分一层比如“钢材-板料”和“钢材-型材”那分类段至少 4 位。再多一个层级就要准备至少 6 位。我的建议是分类层级永远不超过三级因为编码是给人录入和识别的层级越多录错一位的概率越大。等系统里上了物料主数据自动分类又另说但写在文档里的规则还是要照顾人工输入场景。分完类之后紧接着要知道哪一类会被细分到最深。比如电子厂的编码规则里电子元件往往需要区分阻值、容值、封装这时候分类段如果顶到 5 位还嫌少。但我不建议在编码里表达“阻值”和“容值”这些内容本来就该放在物料描述字段里。编码里的分类段只回答“它属于哪一类”不回答“它是什么”——否则每一次物料型号迭代都要换编码这在全景 ERP 里会引发一连串单据关联错误。3.2 流水段补位规则从 0001 开始还是从 00001 开始流水段的长度和起始值是编码规则文档里最容易被轻视、却最常翻车的条款。流水段的作用只有一个在同一分类下区分不同物料。所以流水段的长度取决于某一分类下的物料数量预期而不是全公司的物料总量。我曾经见到一个方案写“流水段取 4 位”结果某个小分类一个月冲进来三千条物料4 位流水当即溢出。反过来说如果全公司一年新增物料不到 500 条流水段取 6 位看起来稳妥实际上会造成编码变得很长手输和抄录的出错率都上去了。流水位数怎么定我的习惯是去翻过去三年的物料新增记录按分类求最大值然后在这个最大值前面加一位余量。比如某分类历史最高年新增 1800 条那流水 4 位0001~9999其实够一年但考虑到偶尔的采购突发情况我会默认给足 5 位。流水段从 00001 开始还是 00001 开始都无所谓关键是文档里必须写明“流水号不回退、不跳跃、不补录”。有人觉得跳号难看甚至要求“删掉的物料流水号要留给新物料”这一条千万不要写进规则回填流水会让后续对账的人疯掉。另外流水段要不要按分类独立分段我的答案是“按分类独立分段”。因为分类段已经把人带到了某一类仓库流水如果全公司共用一套仓库里的人很难判断某个编码是不是录错了分类。独立分段还有一个隐性好处突然冒出某个分类的大量新增审计时可以快速定位到是哪类物料在涨不需要拉全量报表做分析。3.3 校验位、分隔符和建议参数表按需取舍校验位是个老话题。加了校验位的编码可以防手误但要付出录入与接口联调的代价。如果公司里的编码主要靠扫码枪、MES 接口从数据库生成几乎不会有人手工敲编码校验位就纯粹是负担。如果采购订单、入库单、领料单上会有人工抄码那求一个校验位写在文档里等于给录单的人兜底。我自己在方案里一般不加校验位而是用系统侧唯一约束 条码扫描来防错只有客户反复强调手输场景多时才考虑加。分隔符也是经常引发争吵的点用“-”、用“.”、用空格、什么都不用。额外加分隔符的优点是肉眼可读缺点是扫码和数据清洗时要去除分隔符Excel 里用 VLOOKUP 或者数据库 JOIN 时多一步处理。纯数字编码且固定位段的话不加分隔符在系统侧最省事但规则文档落到各个部门读的时候建议用“02-0001-001234”这种带横杠的写法作为展示格式存入数据库的保存格式可以去掉横杠两条规则分写在文档里即可。参数建议表参数项 | 建议取值 | 说明 分类段位数 | 4~6 | 不超过三级分类每级 2 位 流水段位数 | 4~5 | 按历史最大分类年增量 1 位冗余 是否跨分类共用流水 | 否 | 每个分类独立流水方便审计和识别 是否启用校验位 | 视手工录入频率而定 | 手输多则启用扫码为主则不用 分隔符 | 保存格式不带展示格式可带 | 避免接口和数据清洗时依赖分隔符4. 把规则文档落进系统生成、查重与批量导入的三段式实现4.1 编码生成的最小实现一个公式完成固定位段补零编码规则写完了如果只躺在 docx 里每个部门还是按自己的理解来生成编码那么实施一定走样。常见做法是在 Excel 里先跑一版生成模板省得系统还没配好就让业务部门干等。我这里给出一个分类段 2 位流水段 5 位的例子。假设分类代码放在 A 列当前分类下已有流水最大值放在 B 列那么新的编码可以在 C 列这样生成02-TEXT(B21,00000)用这个公式前需要先按分类建一张流水最大值表每新增一个物料就把 B 列的值手动更新一次。这种人工维护方式在物料频率低的公司够用但物料一多就容易撞号。所以更好的做法是直接用 Python 脚本读取历史编码表自动算出每个分类的下一个流水号再批量生成新编码的预览表。这里的核心思路是“展示格式”和“存储格式”。展示格式带横杠存储格式去掉横杠入库前统一用函数清洗。哪怕第一版没有数据库只靠 Excel也要把这个规则固化成公式。因为一旦规则文档规定“横杠可有可无”每个部门都会按自己舒服的方式生成最后清洗的人是你。4.2 查重脚本先查“同物多码”再查“编码重复”编码重复通常是规则没写清楚或者生成过程没加唯一约束导致的。我见过一个翻车案例同一条物料工艺部按分类段“03”生成仓库按“04”生成两条编码在系统里同时存在最后仓库发料时永远有两行库存。这就是典型的分段理解不一致。查重脚本要查两样东西编码是否重复、描述是否重复。import pandas as pd df pd.read_excel(物料清单.xlsx) dup_code df[df.duplicated(编码, keepFalse)] dup_desc df[df.duplicated(描述简写, keepFalse)] print(重复编码数量, len(dup_code)) print(疑似一物多码数量, len(dup_desc))keepFalse会把所有重复行都标记出来而不是只保留第一行。查重后人工二次确认确认时优先看两个字段分类段是否一致、规格型号描述是否一致。如果分类段不同但描述很像十有八九是分类口径没统一。这个脚本不用写得多复杂但一定要跑在正式切换之前并且把结果导出一份给各个部门群阅让他们自己认领清理。4.3 批量导入数据库的防重约束唯一索引是第一道闸门脚本查完总还有漏网之鱼。所以在数据库落地时一定要把编码字段设置为唯一索引。很多人觉得反正有脚本查重数据库就别多此一举了结果就是某一次手工补录时绕过了脚本直接把重复编码塞进库里。设定唯一索引的 SQL 很简单ALTER TABLE material ADD CONSTRAINT uk_material_code UNIQUE (code);code字段保存去掉横杠的存储格式。设置之后任何应用侧写入遇到重复编码都会直接报错而不是静默覆盖。这对 MES、WMS 多套系统同时往 ERP 写物料主数据时特别有用因为多系统并发时Excel 查重脚本根本扛不住。数据库约束是最后的防线。在这之前还要在业务单据填写页做编码预校验防止录入员到了保存步骤才报错、然后对着错误不知所措。实现方式是接口新增物料时先来一次编码号段判断如果输入的分类段不在规则范围内提前给出提示。这一步很多项目不做等到用户被数据库报错震住了反而会觉得系统不稳定。5. 物料编码规则落地避坑四条最值钱的血泪经验5.1 分好类再编流水仓库拿着老图号硬套新码现象编码规则文档发布后仓库和工艺部按自己的理解上编码结果同一种“不锈钢法兰 DN50”在库里出现了两种编码一种分类段是 02另一种是 05盘点时一笔糊涂账。原因规则文档只画了编码结构图没有给出“分类对照表”。部门之间对“管件属于哪一类”理解不一致又没有地方查统一口径最后各自为政。解决发布规则时必须附一张“分类对照表”把旧图号、旧描述、新分类三个字段一一对应。我一般在文档的最后附一个典型物料分类示例页比如列出法兰、三通、弯头、螺栓、电机、轴承各归哪类。这张表比正文任何章节都管用最好让供应商或老员工过一遍再定稿。5.2 流水段“按类别置零”结果一个分类超限现象某公司规定流水段每类从 0001 开始结果“外购件”这个大类下一年新增物料破了 1 万4 位流水直接溢出新一批物料的编码长度变成了 5 位格式瞬间混乱。原因流水位数是按总体物料涨幅估的不是按单一分类的峰值估的。大类不拆流水迟早不够用。解决统计过去三年单一分类的最大年增量在此基础上加一位冗余。再把分类拆细比如“外购件”拆成“外购-标准件”“外购-非标件”确保最大分类的峰值被控制住。5.3 编码变了但物料描述没跟着规范查码等于浪费时间现象新编码上线之后物料描述还是五花八门同一个“304 不锈钢板 2mm”在库里叫“不锈钢板”、“304板”、“SUS304 2.0”查询时只能靠记忆猜编码。原因编码规则文档没有配套“物料描述命名规范”。描述是编码之后第二重要的字段没有规范描述的人等于把编码唯一性建立在沙滩上。解决在文档里增加独立章节规定描述三要素材质规格标准号。比如“304不锈钢板 2mm GB/T 4237”。描述字段强制由工艺部审核不允许业务部门自行填写。5.4 规则文档只发电子版老员工从来不看现象编码规则文档在钉钉群里发了几遍新物料还是有人按自己的老编号习惯在录老员工嫌新编码太长非要在备注里写旧号。原因大多数人不会主动阅读一份纯文字规则文档。即使看了也没有形成肌肉记忆。解决把编码规则的核心结构做成一页速查表打印贴在仓库和工艺部的办公位在 ERP 录入界面把分类段做成下拉选项让编码从“自己拼”变成“选出来”。这是把规则文档落地的两个最有效的动作比反复催办有用得多。6. 把编码规则延伸到条码与追溯最后一个看家技巧物料编码规则文档定稿之后不要以为事情就结束了。编码真正的价值在于下游的条码和追溯场景。我的习惯是编码结构表里预留一列“是否印码”需要贴标的物料比如来料、成品在编码规则文档里写明条码内容物料编码批次号二维码或条码按 GS1 的规范生成不需要贴标的比如螺丝、包材则不强制关联批次避免仓库工作量爆炸。接着要做一张“编码→条码→追溯单号”的映射表让每个物料编码能关联到多张批次卡。这一步看起来是系统配置的活实际上非常考验编码规则是否稳定。如果规则文档里分类段写得合理那某批次的物料只需要扫物料编码段就能定位到对应的工序流转卡和供应商批次信息。反之编码规则本身一改追溯映射表也要全部返工所以我在编码规则里把“分类段不可变更、只可增补”这九个字加粗这是从项目上线之后真实翻车中得到的教训。你如果只想要一个实用习惯可以记这个编码规则文档的结尾一定要附上“编码变更申请单”模板里面包含申请人、申请原因、旧编码、新编码、影响单据范围五个字段。每一次编码规则的修订都得走这个流程而不是在群里发个通知就完事。我见过太多团队辛辛苦苦定好规则三个月后因为产品经理一句话改了分类段含义最后库存、采购、财务三边的账全乱了还没有任何人能说清楚是什么时候变的。有了变更申请单至少能翻旧账。做编码规则这件事真正的门槛不是想出一套结构而是让人人都在同一套语法下闭嘴执行。规则越短执行越狠回归越轻。希望这篇文章里的文档框架和避坑经验能帮你在下一个主数据项目里少熬几天夜。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑