(5) А если заказ пустой? Можно "повесить" затраты на контрагента не имея заказа.
Можно тип заказ изменить и пихать туда контрагента (в отчете, правда будет не слишком понятно).
(6)Гадать можно долго. Придумывать регистр без контекста используемых задач и нужных отчетов бесперспективно.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший