|
![]() |
#1 |
Участник
|
Цитата:
![]() Цитата:
![]() |
|
![]() |
#2 |
Дмитрий Ерин
|
Кстати, не так уж много таблиц в системе, задействованных в большом количестве форм. Чтобы примерно оценить, стоит ли игра свеч, можно воспользоваться таким джобом (как пользоваться - см. комментарии):
X++: static void ShowMostUsedTables(Args _args) { //////////////////////////////////////////////////////////////// // С заданными ниже параметрами Job работает около 5-7 секунд, меняйте с осторожностью:) #define.DSCountCriteria (10) // критерий попадания в "ТОП" (минимальное количество ссылающихся DS) #define.TableFilter ("*") // доп. фильтр, например: "Invent*", "Ledger*", "Vend*" //////////////////////////////////////////////////////////////// xRefReferences xref; xRefPaths forms, tables; RecordSortedList sortedList = new RecordSortedList(tablenum(xRefPaths)); ; sortedList.sortOrder(fieldnum(xRefPaths, ApplObjectPathRecId), fieldnum(xRefPaths, RecId)); // перебрать таблицы while select Path, RecId from tables group by tables.Path, RecId where tables.Path like "\\\\Data Dictionary\\\\Tables\\\\" + #TableFilter && !(tables.Path like "*\\\\Tables\\\\?*\\\\*") // исключить все подузлы // подсчитать ссылки "Чем используется" join count (RecId) from xref where xref.referencePathRecId == tables.RecId && xref.line == 0 // исключить ссылки из X++ кода // наложить фильтр на ссылки exists join forms where forms.RecId == xref.xRefPathRecId && forms.Path like "\\\\Forms\\\\?*\\\\Data Sources\\\\*" // интересуют DS форм && !(forms.Path like "*\\\\Fields\\\\*") // не интересуют поля и прочее && !(forms.Path like "*\\\\Ranges\\\\*") && !(forms.Path like "*\\\\Sorting\\\\*") { if (xref.RecId >= #DSCountCriteria) { tables.ApplObjectPathRecId = -xref.RecId; // минус - для убывающей сортировки sortedList.ins(tables); } } setprefix(strfmt("Найдено %1 таблиц (по фильтру %2) с количеством ссылающихся FormDS >= %3", sortedList.len(), #TableFilter, #DSCountCriteria)); info("Сount of FormDS; TableName"); sortedList.first(tables); do{ info(strfmt("%1; %2", -tables.ApplObjectPathRecId, tables.pathName())); } while (sortedList.next(tables)); }
__________________
![]() |
|
![]() |
#3 |
сибиряк
|
Сюда вряд ли попадут автоматически присоединяемые datasource Dir* и т.п...
__________________
С уважением, Вячеслав. |
|
![]() |
#4 |
Мрачный тип
|
Вот за все и за всех говорить - точно не надо.
По крайней мере одна фундаментальная доработка в виде расширения RLS по доступности редактирования/удаления видимых записей (записей целиком, а не отдельных полей, как у топикстартера) является востребованной и не раз запрашивалась здесь на форуме. Цитата:
Цитата:
Дык чего ждать от низкорожденного IT-чандалы, не понимающего местами необъятного широкомыслия разработческих брахманов из MBS, воплотивших в системе божественную безупречность и логичность ![]()
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: slava (1). |
Теги |
field, код, свойства |
|
|