Its an additional programming for a standard or Z program.
Check the thread User Exit / BADI
Know more about badi and user exit, please search in SCN and read.
The coding/programming done via an ABAPer.
Its about a development..
I have just tested the scenario in MIGO with SHD0..
It can't be done.
Because in MB1B, the receiving batch will fetch automatically, but in MIGO, you have to enter the receiving batch manually. So if you hide or suppress the receiving batch field, you can't post the transfer posting.
You have to go for development with this logic.
If the field CHARG value not equal to UMCHA value, then system will give you an error.
If both are same then system will allow that...
Write a FS and share your thinking with ABAPer.
He can write the logic as per your requirement.