Тема: про ОС...
Показать сообщение отдельно
Старый 04.08.2010, 14:57   #7  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от raniel Посмотреть сообщение
по методу формирования строк в таблице RAssetTrans аналитику подхватывает из RassetStandarts.
Нет, нет и еще раз нет ...
Trans'ы ОС'овские создаются наследниками класса RAssetPost, в данном случае - RAssetPost_CompanyReceipt. Вызывается метод этого класса createTrans, в котором дважды создается запись в RAssetTrans. В одном случае для инициализации RAssetTrans вызывается метод этого же класса initAcquisitionTrans() (для суммы стоимости) и initDepreciationTrans() (для износа). Что мы в них видим ? А в них обоих есть вызов родительского метода initFromLedgerJournalTrans(), в котором аналитика RAssetTrans инициализируется методом dimension() на этой же таблице (в качестве параметра передается туда аналитика строки журнала).
вот этот метод
X++:
public Dimension dimension(Dimension _dimension)
{
    Dimension assetDimension;
    int       x;
    ;

    assetDimension = this.assetStandards().Dimension;
    for (x = 1; x <= dimof(assetDimension); x++)
    {
        assetDimension[x] = _dimension[x] ? _dimension[x] : assetDimension[x];
    }

    return assetDimension;
}
Что мы здесь видим ?
Мы здесь видим соединение двух аналитик (переданной как параметр из строки журнала и текущей из модели учета) по принципу "Если журнальная аналитика на уровне X пуста - в проводку пойдет аналитика уровня X из модели ОС". О полной замене аналитики из журнала речи нет - есть речь о дополнении. Эта штука работает, если между моментом формирования строк журнала ОС и разноской журнала некий подлый юзер дополнил некую аналитику в модели учета, которой нет в журнале. Если на этом уровне в журнале есть аналитика - хоть заменяйся ее в модели, но в проводку ос пойдет из журнала.
__________________
Мы летаем, кружимся, нагоняем ужасы ...