Цитата:
Если я правильно понял вопрос:
Я создаю две таблицы в АОТ, далее мне необходимо создать между ними связь по полю (т.е. в зависимой делаем связь: Relation [в нем: Normal] и соединяем два поля) - все! Таблицы связаны. Так вот вопрос, как это сделать средствами X++? Создать таблицу я могу при помощи treeNode, а связать не могу, связь как таковую treeNode создает, а ее параметры задать нельзя...
Бывает
Мы тоже сталкивались с необходимостью динамически создать из кода всего чего угодно

Например при разработке конструктора отчётов. Не того который в Аксапте, в ГК, а
универсального и более мощного.
Вашу проблему можно решить двумя способами (лично я предпочитаю первый) :
1.) С помощью TreeNode.
Вы создали таблицу Table.
через treeNode можно выйти на Table\Relations
Здесь TreeNode.add.
Ну а потом пользуясь функцией TreeNode.setProperty и устанавливаете нужные свойства(Table, field и т.п.).
2.) С помощью экспорта-импорта.
Можете воспользоваться функциями:
PHP код:
//Описание: Установка свойства объекта репозитария
//
//Параметры: _tn - изменяемый объект TreeNode
// _sPropertyName - название свойства
// _sPropertyValue - новое значение свойства
static void setTreeNodeProperty(TreeNode _tn, str _sPropertyName, str _sPropertyValue)
{
str sValue;
str sProperties = _tn.AOTgetProperties();
int iPropertyBegin;
int iValueBegin;
int iValueEnd;
//начало свойства
iPropertyBegin = strscan(sProperties, _sPropertyName,1, strlen(sProperties) );
//начало значения свойства
iValueBegin = strscan(sProperties,"#",iPropertyBegin,strlen(sProperties) );
iValueEnd = strscan(sProperties,"\n",iValueBegin,strlen(sProperties));
sValue = substr(sProperties,1,iValueBegin);
sValue +=_sPropertyValue;
sValue += substr(sProperties,iValueEnd,strlen(sProperties));
_tn.AOTsetProperties(sValue);
}
PHP код:
//Описание: Получение свойства объекта репозитария
//
//Параметры: _tn - объект TreeNode
// _sPropertyName - название свойства
static str getTreeNodeProperty(TreeNode _tn, str _sPropertyName)
{
str sValue;
str sProperties = _tn.AOTgetProperties();
int iPropertyBegin;
int iValueBegin;
int iValueEnd;
//начало свойства
iPropertyBegin = strscan(sProperties, _sPropertyName,1, strlen(sProperties) );
//начало значения свойства
iValueBegin = strscan(sProperties,"#",iPropertyBegin,strlen(sProperties) );
iValueEnd = strscan(sProperties,"\n",iValueBegin,strlen(sProperties));
sValue = substr(sProperties,iValueBegin+1,iValueEnd-iValueBegin-1);
return sValue;
}