Я не скажу, что первый "универсальный" метод настолько уж сложен.
Из SysQueryForm нужно выдрать не так уж много методов, обеспечивающих нужный функционал.
Правда, если в искомой таблице будут контейнерные поля (фин. аналитики), то все равно придется лезть в стандартную форму DimensionsLookup, т.к. иначе фильтроваться при lookup аналитики не будут соответственно своему номеру, но это мелочи.
Тем более, если есть возможность ограничить создаваемую функциональность "заточив" её на работу только с определенной таблицей (как в этом случае - только "Поставщики").
Не вижу также проблем при изменении запроса при использовании SysQueryForm. Сложнее, если там начнут использоваться extended query ranges. Но, думаю, налагающий такой критерий человек, знает, что делает.
Пишу, т.к. мои консультанты очень любят настраиваемые разного рода критерии, так что эту собаку ел уже неоднократно.
Сложнее бывает, когда где-то в настройках есть преднастроенный запрос, и требуется "наложить " его на текущий в форме с сохранением текущих ranges и прицепленных datasources. Но это уже совсем другая история. Что должно получиться при этом надо подробно описывать в постановке. Приходилось писать и такое.