Да уж.... Пришлось покопаться.
dataSource у Grid, как выяснилось, возвращает id DataSource в форме. Таким образом появляется две задачи: получить форму, а потом найти в ней DataSource.
Форму можно получить так:
PHP код:
FormGridControl source;
Object sourceElement;
// ...
sourceElement = source;
do {
sourceElement = sourceElement.owner();
} while (!SysDictClass::isEqualOrSuperclass(classIdGet(sourceElement), classNum(FormRun)) && sourceElement);
Чтобы получить DataSource с нужным id, придется перебрать все DataSource в форме и сравнить их id со значением свойства dataSource у Grid:
PHP код:
formDataSource = sourceElement.dataSource(1);
for (i = 2; i <= sourceElement.dataSourceCount() && formDataSource.id() != source.dataSource(); i++)
formDataSource = sourceElement.dataSource(i);
Дальше, как говорится, дело техники