在 SAP 里,创建发票时(VF01/VF04)出现的 Billing Type 列表(如截图里那一长串)并不是“主数据”,而是系统根据当前公司代码、销售范围、以及该 Billing Type 是否被标记为“与发票相关”动态拼出来的。
因此想“让它不显示”只能走配置屏蔽,而不是任何删除动作。下面给出 3 种最常用、最干净的做法,全部基于标准配置,无增强、无改代码,升级不受影。可按需选用。
给 Billing Type 打“停用”标记(最简、最推荐) 事务码:VOFA
路径:SPRO → Sales and Distribution → Billing → Billing Documents → Define Billing Types
步骤:
a) 选中要隐藏的 Billing Type(如 Cancel IB、Cancel Cash Sale …)。
b) 在详细视图里把字段“Blocked for billing”(有时翻译为“冻结开票”或“停用”)打勾。
c) 保存。
结果:
VF01/VF04 的 F4 帮助里不再出现该 Billing Type;
已存在的发票不受影响;
随时可取消勾选恢复可见。
用“用户参数”给特定账号做个人级屏蔽(只想自己看不见) 事务码:SU3(或 SU01 给其他人维护)
参数 ID:VF_BILTY(或老版本叫 BILTY)
值:放允许出现的 Billing Type,多个用逗号分隔,如 F2, G2, S1
结果:
仅对该用户生效;
其他人无影响;
如果留空,系统就按全局配置显示。
用权限对象做角色级屏蔽(大集团常用) 标准权限对象:V_VBRK_FKA
字段:FKART(Billing Type)
做法:
a) 在 PFCG 里把角色维护成“只包含需要用的 Billing Type”;
b) 把该角色赋给相关用户。
结果:
没权限的 Billing Type 在 F4 里直接消失;
即使手工输入也会被权限检查拦住。
常见疑问 Q:能不能直接改 F4 搜索帮助,把不用的行灰掉?
A:可以(SE11 改搜索帮助出口),但升级会被覆盖,且需要 ABAP 增强,不如 VOFA 打勾来得干净。
Q:我只想 VF04 里隐藏,VF01 要保留,可以吗?
A:标准配置没有这么细的区分,真要做只能写隐式增强,判断 SY-TCODE 后把 EXCLUDE 列表填进 F4IF_INT_TABLE_VALUE_REQUEST,属于二次开发。
一句话总结
进 VOFA,把不用的 Billing Type 勾上 “Blocked for billing”,保存即可——列表瞬间清爽,数据不删、升级不丢,随时可逆。