Идея нормальная. Мы сейчас пришли к такому: супердоговор - объединяет субы, не содержит модулей услуг; субдоговор - разбиение по точкам подключения
и услугам. Т.е. услуги телефонии в точке подключеня - один субдоговор (модули Phone, NPay), интернет - другой, впн - третий. Счёт выставляем общий по супердоговору. Если нужно отдельный счёт по субдоговору - делаем суб с независимым балансом. Но такое редко нужно - в основном для агентской телефонии. По каким договорам выставлять счета рулится группой договора "выставление счетов" - висит только на супердоговорах и на независимых субах. Удобно тем, что можно легко отключить/приостановить конкретную услугу в точке. Неудобно некоторым клиентам, которые в детализации счёта не видят удобной группировки по точкам.
1. А где именно получать данные с супердоговора? Скриптами всё можно. В карточках - сомневаюсь. Там xml формируется, можно проверить, что в ней есть. Для автозаполнения есть какая-то фича, чтобы при создании суба копировались параметры с супердоговора.
2. Уже написал выше про услуги. Счёт выставляется только на договор (или суб). Кроме того, "услуга" - это такая абстрактная штука, которой в биллинге нет. Модуль - не услуга, т.к. как правило услуги размазаны по 2-3 модулям. Как минимум - модуль трафика (Inet/IPN/Dialup) или звонков (Phone/VoiceIP) + абонплаты (NPay). Кроме того, управление "услугой" - это не только выставление счетов. Но и, например, приостановление, отключение, переезд, вот это всё...
У нас осталась куча договоров, оформленных "по точкам подключения" - когда все услуги в одной точке висят на одном субдоговоре. Потом приходит заявка "приостановить клиенту услугу телефонии в точке А, интернет оставить". Если бы телефония была на отдельном субе, то мы бы поставили статус "приостановлен" и всё. А так - приходится закрывать датой каждую абонплату, связанную с телефонией, закрывать шлюз Phone и т.п. Потом так же открывать. Ужас.
3. см выше