12.03.2021, 16:23 | #1 |
Участник
|
как экспортировать таблицу со всеми extendeddataType
Добрый день,
подскажите кто сталкивался в Аксапте 2009, необходимо перенести Таблицу с кучей полей и связей из 1 Аксапты в другую. Допустим таблица имеет 30 extendetDataType, чтобы выгрузить и их скопом. |
|
12.03.2021, 16:39 | #2 |
Участник
|
Наверное не сложно сделать скрипт, который обойдёт в цикле все поля таблицы, найдёт все интересующие EDT и добавит их в проект.
Вот здесь можете посмотреть как программно работать с элементами проекта Собрать проект из перекрестных ссылок |
|
13.03.2021, 10:53 | #3 |
Участник
|
|
|
13.03.2021, 16:43 | #4 |
Участник
|
Цитата:
Таблицу с кучей полей и связей
Последний раз редактировалось Raven Melancholic; 13.03.2021 в 16:45. |
|
14.03.2021, 23:12 | #5 |
Участник
|
Было, 10 лет назад.
Где же это поле?! (Form digger) |
|
15.03.2021, 09:28 | #6 |
Участник
|
Цитата:
Согласен с Dudnik Anton, что надо создавать проект. Но не согласен с тем, что проект должен автоматически наполняться. Ровно потому что в общем случае "скопом"... Что же надо делать: Автор модификации должен создать проект. Цитата:
Проект в Аксапте - это ссылки на объекты АОТ, которые можно сгруппировать в рамках проекта произвольным образом
в разных командах существуют разные подходы и внутренние стандарты как именовать проекты (как правило, в имени будет номер задачи) и как группировать объекты внутри проекта. технически, объекты в проект можно: * создавать руками, * переносить мышкой из AOT * создавать группы с фильтром (в проект попадут все объекты АОТ подходящие под фильтр) * создавать стандартным инструментом Advanced ProjectFilter * создавать самописными инструментами типа того, что привел Dudnik Anton фильтры в свойствах группы могут содержать специальные символы. Значения символов описаны в хелпе к встроенной функии match https://docs.microsoft.com/en-us/dyn...time-functions лично я предпочитаю, когда автор: * продумывает названия объектов так, чтобы объекты было легко добавить в проект фильтрами (namespace для бедных) * создает семантические группы с фильтрами * продумывает какие объекты включить в проект, чтобы было одним движением переносить между аксаптами (как правило, из дев в тест, а затем в прод) Последний раз редактировалось mazzy; 15.03.2021 в 09:32. |
|
15.03.2021, 12:40 | #7 |
Боец
|
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 <-- } 3. Выделяем все поля и из контекстного меню открываем всем EDT 4. Все открывшиеся EDT перетягиваем в свой проект и экспортируем. * Как верно подметили, талица может ссылаться не только на EDT, а также на многое другое: другие таблицы, классы, enums, maps. Те, в свою очередь, могут аналогично ссылаться на что-то ещё. Поэтому задача рекурсивная. Если ее решить в лоб, то с большой степенью вероятности, на выходе вы получите почти все элементы слоя (модели), поэтому проще выгрузить весь слой. Но на практики таких задач не возникает. Но иногда, что решается лишними +15..+30 минтуми времени. Т.е. волшебной кнопки не существует. |
|
|
За это сообщение автора поблагодарили: trud (10). |
15.03.2021, 12:42 | #8 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
Сразу возникает вопрос не только про EDT.
|
|
15.03.2021, 12:44 | #9 |
Участник
|
Да Mazzy, ваши рекомендации отличные но
Проект изначально написан другими людьми которые не позаботились о том чтобы все собрать как проект и дать названия объектам соответствующее.. |
|
15.03.2021, 15:18 | #10 |
Участник
|
Значит теперь это ваша задача. Как минимум собрать проект.
|
|
16.03.2021, 10:14 | #11 |
Участник
|
Цитата:
Сообщение от DSPIC
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 <-- } 3. Выделяем все поля и из контекстного меню открываем всем EDT Вложение 13140 4. Все открывшиеся EDT перетягиваем в свой проект и экспортируем. * Как верно подметили, талица может ссылаться не только на EDT, а также на многое другое: другие таблицы, классы, enums, maps. Те, в свою очередь, могут аналогично ссылаться на что-то ещё. Поэтому задача рекурсивная. Если ее решить в лоб, то с большой степенью вероятности, на выходе вы получите почти все элементы слоя (модели), поэтому проще выгрузить весь слой. Но на практики таких задач не возникает. Но иногда, что решается лишними +15..+30 минтуми времени. Т.е. волшебной кнопки не существует. |
|
Теги |
axapta 2009, экспорт данных |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|