The Vt-てある
construction describes the way something is intentionally left in the resulting state of an earlier action upon it. When a sentence focuses on the resulting state, the object of the action usually takes the subject’s slot followed by が.
テーブルの上に本が置いてある。
A book is left on the table.
The object marker を seems to put focus more on the action than its resulting state, and the agent of the action may be specified with が in this case.
(彼が)昼ごはんを作ってある。
He has lunch prepared (for someone).
If you omit the object, you end up with a sentence like the following.
彼が作ってある。
He has it prepared (for someone).
The object or the agent may be topicalized or singled out for contrast with は.
昼ごはんは作ってある。[object]
彼は作ってある。[agent]
[EDIT]
Let me give you a pair of examples in which a person is the object of a verb in one and the agent of the same verb in the other.
- 中村さんを[任命]{にんめい}してあります。
We have Nakamura-san assigned (for some purpose).
- 中村さんが任命してあります。
Nakamura-san has someone assigned (for some purpose).
It’s hard to interpret the second sentence in the same way as the first (i.e. to see 中村さん as the object) because a person is not usually described with ある. The first sentence doesn’t describe Nakamura-san’s state as much as it does the fact that someone has assigned him/her.
It could become more ambiguous if it were about a robot. ロボットが置いてある could go either way.