Предлагаемые решения лежат в области стандартной функциональности. Можно заставить немного поработать программистов и реализовать схему "подтаскивания" номенклатуры из договора. В договора добавить состав с указанием количества и цены (или без оных).
Добавить функцию создания строк закупки или заказа из договора. При этом пользователь проставляет только нужное количество в строках (по умолчанию количество равно нулю). После подтверждения в закупку или заказ копируются только строки с количеством, отличным от нуля. В такой реализации Вы сможете контроллировать не только суммарный оборот по договору, но и оборот по каждой позиции. Контракт, в принципе, тоже подходит для этой реализации за исключением одного но: в состав документа копируется все, а не те позиции, которые нужны. Выбирайте любой подход, а можете реализовать свою схему. Свой бизнес - свои заморочки