Показать сообщение отдельно
Старый 21.01.2022, 22:36   #1  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
268 / 829 (28) +++++++
Регистрация: 23.10.2012
DMT Ax 2009 и мина замедленного действия
Всем привет.
Искал функцию по конвертации наименования (или идентификатора) таблицы Аксапты в наименование таблицы в СУБД и заметил особенность в реализации DMTTableUtils.getSQLName:
X++:
public static DMTName getSQLName(int tableId, DMTName _name)
{
    SqlDictionary   sqlDictionary;
    ;
    select firstOnly name from sqlDictionary
        where sqlDictionary.TabId == tableId && sqlDictionary.Name == _name;

    return SqlDictionary.name;

}
Получается, что "вошло", то и "вышло".
При этом, если наименование поля или таблицы превышает 30 символов, то в СУБД в названии будет присутствовать идентификатор.
Очевидно:
- DMT отработает некорректно;
- Просится возврат поля SqlName.