Цитата:
Сообщение от
Vadik
Зачем сразу "ужас". Это не ужас. Это идея, причем здравая - INVENTDIM при использовании палет или серийных номеров и есть настоящий монстр, постоянно join-ящийся к проводочным таблицам. И на нем как раз монстроидальный составной индекс DimIdx.
Вполне вероятно, что показывать (и, возможно, фильтровать) номенклатурные аналитики требуется чаще, чем аналитики хранения (по крайней мере - в пользовательском интерфейсе). Если бы малой кровью удалось переписать INVENTDIMxxx макросы (в идеале - с удалением из запроса неиспользуемых таблиц), эффект на мой взгляд мог бы быть
Дык, они и так разными запросами join'ятся.
См. например, \Classes\InventSumFinancial\setValueQty
Цитата:
Сообщение от
Vadik
P.S. Ты посмотри на \Data Dictionary\Tables\InventSum\Methods\queryAddHint, \Data Dictionary\Tables\InventSum\Methods\queryAddHintFromCaller
Вот где ужас-то

P.P.S. Хотя одними макросами тут конечно не обойдется..
И сюда тоже ГТД вписать надо

Вообще говоря, ты привел методы, которые используют метод
\Data Dictionary\Tables\InventDimParm\Methods\isFlagSelective
посмотри чем он используется при помощи перекрестных ссылок. Этот метод определяет поля, поиск по которым дает очень селективную выборку. В зависимости от этого метода в Аксапте работает очень много кода для "оптимизации".
Попробуй сделать минимальную правку - добавь ГТД в метод isFlagSelective. Обрати внимание насколько изменилось поведение системы
А вообще говоря, согласен с тем, что сам InventDim - это результат программистского подхода: щас мы наваяем универсальный механизм, а пользователи его будут настраивать. Но перенести этот универсальный механизм в array - это не выход. Это тот же самый программистский подход - вид сбоку
Надо перерабатывать саму идеологию.
По крайней мере есть различие между номенклатурными аналитиками (комбинаций таких аналитик много, индексы селективные) и аналитиками хранения (комбинаций таких относительно немного).