Кстати, не так уж много таблиц в системе, задействованных в большом количестве форм. Чтобы примерно оценить, стоит ли игра свеч, можно воспользоваться таким джобом (как пользоваться - см. комментарии):
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));
}
На кастомизированной DAX2009 "Топ" выглядит примерно так (см. вложение):