{*
 Шаблон вычисления "Привязать как подтаблицу"
*}

$par_table_id = sql_fetch_row(sql_select_field(TABLES_TABLE, 'id', "name_table = '", $line['{$name_table1}'], "'"))[0];
$link_table_id = sql_fetch_row(sql_select_field(TABLES_TABLE, 'id', "name_table = '", $line['{$name_table2}'], "'"))[0];
if ($par_table_id && $link_table_id) {
    // добавляем поле связи с родительской таблицей
    $par_field_id = sql_fetch_row(sql_select_field(FIELDS_TABLE, 'id', 'table_id = ', $par_table_id, ' AND type_field = 10'))[0];
    $field_num = sql_fetch_row(sql_select_field(FIELDS_TABLE, 'field_num', 'table_id = ', $link_table_id, ' ORDER BY field_num DESC LIMIT 1'))[0] + 1;
    $link_field_id = sql_insert(FIELDS_TABLE, [
        'table_id' => $link_table_id,
        'field_num' => $field_num,
        'name_field' => $lang['Link_with'] . ' "' . $line['{$name_table1}'] . '"',
        'type_field' => 5,
        'type_value' => $par_table_id . '|' . $par_field_id . '|0|0|0'
    ]);
    set_access(ACC_FIELDS_TABLE, [
        'table_id' => $link_table_id,
        'field_id' => $link_field_id,
        'view_tb' => 1,
        'view_add' => 1,
        'view_edit' => 1,
        'view_sub' => 1,
        'view' => 1,
        'read_acc' => 1,
        'write_acc' => 1
    ]);
    sql_query('ALTER TABLE ' . DATA_TABLE . $link_table_id . ' ADD f' . $link_field_id . ' INTEGER DEFAULT 0');
    // добавляем подтаблицу
    $subtable_id = sql_insert(SUBTABLES_TABLE, [
        'table_id' => $par_table_id,
        'name' => $line['{$name_table2}'],
        'link_table_id' => $link_table_id,
        'link_field_id' => $link_field_id,
        'owner_id' => $user['group_id'],
        'num' => sql_fetch_row(sql_select_field(SUBTABLES_TABLE, 'num', 'table_id = ', $par_table_id, ' ORDER BY num DESC LIMIT 1'))[0] + 1,
    ]);
    sql_insert(ACC_SUBTABLES_TABLE, [
        'table_id' => $par_table_id,
        'subtable_id' => $subtable_id,
        'group_id' => 1,
        'read_acc' => 1,
        'add_acc' => 1,
        'del_acc' => 1,
        'jump_acc' => 1,
    ]);
    $result = sql_select(GROUPS_TABLE);
    while ($group = sql_fetch_assoc($result)) {
        sql_insert(ACC_SUBTABLE_RULES_TABLE, [
            'group_id' => $group['id'],
            'subtable_id' => $subtable_id,
            'field_id' => $link_field_id,
            'access' => 0
        ]);
    }
    sql_update(TABLES_TABLE, ['subtable' => 1], 'id = ', $link_table_id);
{if $link_field}
    // ищем поле связи с текущей таблицей
    $link_field_id = sql_fetch_row(sql_select_field(FIELDS_TABLE, 'id', 'table_id = ', $link_table_id, " AND type_field = 5 AND type_value LIKE '$table_id|%'"))[0];
    if (!$link_field_id) { // поля еще нет, добавляем
        $field_id = sql_fetch_row(sql_select_field(FIELDS_TABLE, 'id', 'table_id = ', $table_id, ' AND type_field = 10'))[0];
        $field_num = sql_fetch_row(sql_select_field(FIELDS_TABLE, 'field_num', 'table_id = ', $link_table_id, ' ORDER BY field_num DESC LIMIT 1'))[0] + 1;
        $link_field_id = sql_insert(FIELDS_TABLE, [
            'table_id' => $link_table_id,
            'field_num' => $field_num,
            'name_field' => $lang['Link_with'] . ' "' . $table['name_table'] . '"',
            'type_field' => 5,
            'type_value' => $table_id . '|' . $field_id . '|0|0|0',
            'default_value' => $ID,
        ]);
        set_access(ACC_FIELDS_TABLE, [
            'table_id' => $link_table_id,
            'field_id' => $link_field_id,
            'view_tb' => 1,
            'view_add' => 1,
            'view_edit' => 1,
            'view_sub' => 1,
            'view' => 1,
            'read_acc' => 1,
            'write_acc' => 1
        ]);
        sql_query('ALTER TABLE ' . DATA_TABLE . $link_table_id . ' ADD f' . $link_field_id . ' INTEGER DEFAULT 0');
        // включаем права на экспорт для поля ID текущей таблицы
        set_access(ACC_FIELDS_TABLE, ['table_id' => $table_id, 'field_id' => $field_id, 'read_acc' => 1]);
    } else { // поле есть, меняем умолчание
        sql_update(FIELDS_TABLE, ['default_value' => $ID], 'id = ', $link_field_id);
    }
{/if}
}