Показать сообщение отдельно
Старый 12.09.2018, 19:31   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Связь - это всегда взгляд подчиненного на начальника. Это подчиненному важно мнения начальника, а не наоборот

Поэтому связь всегда настраивается из DataSource подчиненной таблицы. Если же идти со стороны "начальника", то к моменту инициализации DataSource главной таблицы DataSource подчиненной может быть еще не инициализирована

Если я правильно понял и у Вас

TSRTechItemTreeTable - главная
TSRTechItemImportance - подчиненная

То связь настраивается в init для источника данных TSRTechItemImportance. Подчиненной таблицы

X++:
public void init()
{

  super();

  this.query().dataSourceTable(tablenum(TSRTechItemImportance)).addLink(
      fieldnum(TSRTechItemTreeTable, TechItemId),     // поле главной таблицы
      fieldnum(TSRTechItemImportance, TechItemId),   // поле текущей таблицы
      TSRTechItemTreeTableTS_ds.name());                 // имя DS главной таблицы
}

Справка по методу addLink указывает распределение параметров так

thisDataSource.addLink(parentField, thisField [, parentDatasourceName])

Имя DataSource главной таблицы (3 параметр) обычно не указывают. Это имеет смысл только в случае, если источников данных с этой таблицей несколько и надо уточнить, о каком именно источнике идет речь

---------------------------------

С другой стороны, а зачем Вы вообще программированием занимаетесь? В смысле, написанием кода. Это имеет смысл только в том случае, если настроенные на таблицах Relation отличаются от той связи, которая Вам нужна на конкретной форме. Ну, или вообще не указана

Если же настроенные Relation на подчиненной таблице к главной и так те, какие Вам нужны, то просто сделайте настройку в DataSource для указания типа связи

В свойствах DataSource подчиненной таблицы TSRTechItemImportance указать

JoinSource = TSRTechItemTreeTable
LinkType = OuterJoin

И никакого программирования не нужно
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...