Наверное давно не программировала, читаю и не могу понять суть вопроса...
Да и "улучшения" после изменения кода то же
Может быть поясните?
Пока я вижу, что если CustAgr."Gen. Bus. Posting Group" = '' (а при определенных условиях это очень даже реально), то VALIDATE не выполниться. То есть ошибка возникнет у пользователя не в момент выбора/перевыбора договора, а в момент учета заказа, когда ее исправить конечному пользователю сложнее.....
И потом, кто Вам сказал, что функционал предполагает два одинаковых договора у клиента? Если используется функционал договоров, то предполагается, что любое из полей может быть переопределено в карточке договора и уже в заказе берем поля из договора.
А может договора различных типов требуют разной учетной группы или за них отвечают разные менеджеры (самый простой пример, комиссонка и купля-продажа).
P.S. И еще, на мой взгляд, вопросы програмирования все-таки стоит обсуждать в соответствующей ветке. Это хоть и локальная функциональность, но совсем не демо-данные или методология внедрения.