(4) Можно.
Колонку ТП "Контрагент" делаешь невидимой. Добавляешь колонку с типом строка. В обработчике ТП "ПриВыводеСтроки" заполняешь эту колонку кодом контрагента. В обработчике элемента управления "НачалоВыбора" - "СтандартнаяОбработка = Ложь" и открытие формы выбора, обработка выбора и заполнение контрагента.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший