30.03.2015, 14:02 | #1 |
Участник
|
Экспорт с конкретного слоя
Как сделать программно экспорт объекта AOT с конкретного слоя?
С текущего слоя получилось. Со всех слоев получилось. Стандартный экспорт это делает в ядре, а как самому это сделать? |
|
30.03.2015, 15:41 | #3 |
Участник
|
|
|
30.03.2015, 15:49 | #4 |
Сенбернар
|
Цитата:
- вы можете экспортировать только те слои, на которые можете войти (в Аксу, в смысле). То есть только те слои, на которые у вас права есть. - если бы было не так - ничто не мешало бы, экспортировав, например, SYS, внести некие изменения прямо в XPO и залить измененный слой обратно. Что не есть правильно. Вот как-то так
__________________
Best Regards, Roman |
|
30.03.2015, 16:09 | #5 |
Британский учённый
|
Если устраивает запуск из клиента, сделайте через саму форму.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
30.03.2015, 16:11 | #6 |
Гость
|
А так?
#AOT #AOTExport TreeNode rootNode = TreeNode::findNode("Data Dictionary\\Tables\\*ЧЧЧ*"); ; //rootNode.treeNodeExport(@'c:\fullaot.xpo', #expKeepIds | #expLables | #expLayer); rootNode = rootNode.getNodeInLayer(UtilEntryLevel::sys); rootNode.treeNodeExport(@'c:\fullaot.xpo', #export); info("s"); PS и уже после нашел обсуждение Программынй экспорт из определенного слоя Последний раз редактировалось axm2013; 30.03.2015 в 16:17. |
|
30.03.2015, 16:14 | #7 |
Британский учённый
|
Цитата:
Сообщение от RVS
ИМХО оно так специально сделано :
- вы можете экспортировать только те слои, на которые можете войти (в Аксу, в смысле). То есть только те слои, на которые у вас права есть. - если бы было не так - ничто не мешало бы, экспортировав, например, SYS, внести некие изменения прямо в XPO и залить измененный слой обратно. Что не есть правильно. Вот как-то так
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
30.03.2015, 16:27 | #8 |
Участник
|
Но стандартным экспортом можно выгрузить любой слой. И просмотреть в АОТе можно содержимое любого слоя.
|
|
30.03.2015, 16:35 | #9 |
NavAx
|
|
|
|
За это сообщение автора поблагодарили: RVS (2). |
30.03.2015, 16:40 | #10 |
Участник
|
Я сейчас штатными средствами могу выгрузить SYS и залить на свой слой.
В чем хак, если используются штатные средства? |
|
30.03.2015, 17:13 | #11 |
Британский учённый
|
На примере кода ниже можно убедиться, что из кода можно экспортировать с нижнего слоя, но экспортируется текущий и предыдущий слой. Т.е. можно экспортировать например только слой sys, но слой syp будет содержать весь код видимый на syp и т.п.
X++: #AOTExport UtilEntryLevel layer = UtilEntryLevel::syp; TreeNode treeNode; treeNode = TreeNode::findNode('\\Data Dictionary\\Tables\\AccountingDistribution'); if (SysTreeNode::existsInLayer(treeNode, layer)) { treeNode = SysTreeNode::nodeInLayer(treeNode, layer, true, false); treeNode.treeNodeExport(strFmt('c:\\%1.xpo', layer), #export); }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: kia (1). |
30.03.2015, 17:50 | #12 |
NavAx
|
|
|
31.03.2015, 10:17 | #13 |
Участник
|
Цитата:
Но, у меня задача сложней: сравнить слой с old версией слоя. А для old-слоя нижние слои не видны. |
|
31.03.2015, 10:53 | #14 |
Британский учённый
|
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
31.03.2015, 10:55 | #15 |
Участник
|
|
|
31.03.2015, 13:03 | #16 |
Сенбернар
|
Цитата:
Если опишете задачу - проще будет подсказать что-нить..
__________________
Best Regards, Roman |
|
31.03.2015, 14:15 | #17 |
Участник
|
Нужно программно вывести список объектов, реально измененных в обновлении (в VAR слое).
Хочется сравнить только VAR слой с его OLD версией. Слой VAR чужой, пароля на него нет. |
|
31.03.2015, 14:31 | #18 |
Сенбернар
|
Цитата:
\\Classes\SysCompareCreateProject, он же Утилита сравнения слоев. Наследуйте от него, запускайте с уже заданными параметрами, вывод вместо проекта перенаправьте в Infolog или там в файл, куда хотите.. Все прочее он уже умеет )))
__________________
Best Regards, Roman |
|
31.03.2015, 15:08 | #19 |
Участник
|
|
|
31.03.2015, 15:23 | #20 |
Сенбернар
|
Цитата:
В 2009-й - оно тоже есть и работает.. Сервис - Средства разработки - Обновить код - Сравнение слоев. Все работает.. Вот как-то так.. PS : Мне почудилось, или раньше картинку сюда можно было прямо с компа вставить? Потому как теперь оно требует URL, а выгружать картинки куда-то - мне лениво )) PPS : Вот оно ))
__________________
Best Regards, Roman Последний раз редактировалось RVS; 31.03.2015 в 15:28. |
|
|
За это сообщение автора поблагодарили: kia (1). |