1. Вносим правку в стандартный метод \Classes\SysOpenNewWindowApplObject\runsysContextMenu
X++:
void runsysContextMenu(SysContextMenu _sysContextMenu)
{
TreeNode aNode = _sysContextMenu.first();
TreeNode treeNodeToOpen;
// Open multi fix, 15/03/2021, EVGA -->
List treeNodelList = new List(Types::Class);
ListEnumerator le;
// Open multi fix, 15/03/2021, EVGA -->
while (aNode) // only single....?!
{
treeNodeToOpen = this.usingTreeNode(aNode);
if (treeNodeToOpen)
{
// Open multi fix, 15/03/2021, EVGA -->
/*
treeNodeToOpen.AOTnewWindow();
*/
treeNodelList.addEnd(treeNodeToOpen);
// Open multi fix, 15/03/2021, EVGA <--
}
aNode = _sysContextMenu.next();
}
// Open multi fix, 15/03/2021, EVGA -->
le = treeNodelList.getEnumerator();
while(le.moveNext())
{
treeNodeToOpen = le.current();
if (treeNodeToOpen)
{
treeNodeToOpen.AOTnewWindow();
}
}
// Open multi fix, 15/03/2021, EVGA <--
}
2. Создаем проект, добавляем туда таблицу
3. Выделяем все поля и из контекстного меню открываем всем EDT
4. Все открывшиеся EDT перетягиваем в свой проект и экспортируем.
* Как верно подметили, талица может ссылаться не только на EDT, а также на многое другое: другие таблицы, классы, enums, maps. Те, в свою очередь, могут аналогично ссылаться на что-то ещё. Поэтому задача рекурсивная. Если ее решить в лоб, то с большой степенью вероятности, на выходе вы получите почти все элементы слоя (модели), поэтому проще выгрузить весь слой.
Но на практики таких задач не возникает. Но иногда, что решается лишними +15..+30 минтуми времени. Т.е. волшебной кнопки не существует.