Показать сообщение отдельно
Старый 31.12.2010, 12:50   #16  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Источник: http://blogs.msdn.com/aeremenk/archi...14/825247.aspx
==============
Параметр должен быть указан в поле Advanced конфигурационной утилиты:
-internal=CROSSCOMPANY
Параметр позволяет добавлять вручную поле DATAAREAID в индекс, соответственно, можно самому определять порядок. Параметр не влияет на прочие индексы.


Источник: http://blogs.msdn.com/aeremenk/archi...14/825247.aspx
Похоже в 2009-й Аксапте этот параметр включен по умолчанию.
Причем это очень полезная фича когда используется запрос по многим компаниям, например тут
\Classes\LedgerJournalCheckPost\interCompanyTransferToCustPayment
генерится такой запрос

X++:
        select firstonly forceplaceholders crossCompany vendSettlement
               where vendSettlement.OffsetTransVoucher == ledgerJournalTrans.Voucher
                  && vendSettlement.OffsetCompany      == ledgerJournalTrans.Company
        join vendTrans
             where vendTrans.RecId      == vendSettlement.TransRecId
             &&    vendTrans.AccountNum == vendSettlement.AccountNum
             &&    vendTrans.Invoice;
а индекс
\Data Dictionary\Tables\VendSettlement\Indexes\OffsetVoucherIdx
с полями по dataareaId, OffsetTransVoucher - неоптимален. Причем чем больше компаний в базе тем сильнее эффект.
Достаточно запихнуть dataareaId в конец и все в порядке.