В процессе работы выяснилось, что строки
X++:
for(k=1;k<=restrictDS.rangeCount();k++)
{
r = SysQuery::findOrCreateRange(childDs, restrictDS.range(k).field());
r.value(restrictDS.range(k).value());
r.status(RangeStatus::Hidden);
}
лучше заменить на
X++:
for(k=1;k<=restrictDS.rangeCount();k++)
{
r = childDs.addRange(restrictDS.range(k).field());
r.value(restrictDS.range(k).value());
r.status(RangeStatus::Hidden);
}