Dilan, the answer to your question is that if there is only ever one image associated with your receipt, then using a specialization of System.Images is the easiest way to go. If you might want multiple images, then you would need a separate linked image entity. So, for your situation, you probably do not need a separate entity to store images.
Also note that you have overcomplicated your domain model. You have set up inheritance as System.Images >> Your.Images>> Your.Receipt. You do not need the intermediate entity and can just inherit directly from System.Images, like
System.Images >> Your.Receipt.
The actual images are stored in the server file system (by default in the data/files directory), not in the database. Your receipt record contains a pointer to the uploaded file. A record is created in the System.Images entity for every record you create in the Receipts entity, but logically they are the same single record. Any action you take on the Receipts entity, like update or delete, also applies to the part of the record stored in the Images entity.
You should add a dataview with the object Expense_Receipt inside the dataview Expenses. When creating a new object you have to make sure you create the Expense_Receipt object also and set the reference, or create a button where the new receipt object can be created. Then the upload image will work.
Regards,
Ronald