We don’t have a vending machine either, so we do it the same way you do. The receptionist has to get the items for the guests.
The only alternative I have seen that springs to mind is the old-fashioned Honor System. The guest takes what he wants and either writes it down on a piece of paper so he can pay later or he hands the money to the receptionist (or drops the money in a piggy bank or a box). It certainly isn’t an ideal system for every hostel or every guest. It probably works much better in smaller hostels where each guest is less anonymous, but in those cases the receptionists probably aren't as busy either.
Would something like that work for you in Sri Lanka?