Hi,
By controlling object, I mean those of AVC ledger. The structure in your case is like this (correct me if I'm wrong): several company codes -> CO area -> FM area. Now, AVC ledgers are assigned to FM area (not to company code). If you want to keep same FM objects, i.e. fund centres, commitment items, etc., for your FM area, you don't have the option to use, say, FMDERIVE, deriving different FM assignment based on company code. Otherwise, it would have been easier solution.
However, if you keep the same FM assignments, you can still find a workaround. Choose an available FM assignment, which you don't use, say, functional area. Populate this assignment with 'company code'. Then, build several AVC ledgers, based on number of company codes, which have different budget control levels. Build a strategy of deriving AVC control object, based on the values you have in that FM assignment, which mean actually company codes. This way you will have different AVC control object based on company code. However, keep in mind that this setting is quite tricky and might require AVC BADIs implementation for more flexibility, as I imagine you would have some exceptions or data correlation.
Regards,
Eli