блин, а как все сложно начиналось та
по идее нужно ограничение вида
prodId == 'prodNum1' || CollectRefProdId == 'prodNum1';
т.е.
X++:
str value = '((ProdId == %1)||(CollectRefProdId == %1))'
...
....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1'));
и ненужны лишние источники данных. одного хватит
ПС: могут быть опечатки и пр мелочи. но идея вроде та.