![]() |
#6 |
Участник
|
Я в свое время столкнулся с тем, что buffer.TableId для таблиц, использующих наследование, зачастую возвращает идентификатор не совсем той таблицы, к которой относится буфер. Вместо этого обычно возвращается идентификатор одной из родительских таблиц, явно фигурирующих в коде во время компиляции - см. также А что такого принципиального в 2012? По моему хороший разработчик без труда в ней разберется
![]() X++: // возвращает tableId таблицы либо, если таблица поддерживает наследование, то tableId конкретного "наследника" // safe тут относится к генерации кода CIL, которая валится на простом обращении к Common.RelationType public static TableId getTableIdOrReltaionTypeSafe(Common _record) { TableNameShort tableName = _record.getInstanceRelationType(); TableId ret = tableName2id(tableName); ; if (!ret) { ret = _record.TableId; } return ret; } |
|
|
За это сообщение автора поблагодарили: AlGol (3), raz (10), sukhanchik (8), Logger (8). |