You should be able to accomplish that using the Validate by calculation for the field in question. If the calculation is complex you would be best to construct the validation criteria within a Let() calc.
i would start with the security settings and work my way out.
Create a custom privilege set and look at the options for Custom Record Privileges>Edit/Delete/View>limited.
You can put a calc in there that restricts down to the record level.
If you want field level security then validation calc is an option or building an on object validate script trigger is an option
Thanks will look into that.
Thanks for your input. Do I understand that correctly.
I make a custom set of Privileges which I can apply to every user? is that right?
If that is right how do you apply it to every user?
One really simple way is to set a script trigger on exit
if billed = yes
Then you can add it to any field you don't want changed.
revert field - is an excellent solution, thanks a lot.