Тема: про ОС...
Показать сообщение отдельно
Старый 04.08.2010, 18:41   #8  
raniel is offline
raniel
Участник
Аватар для raniel
 
241 / 11 (1) +
Регистрация: 20.10.2006
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
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 из модели ОС". О полной замене аналитики из журнала речи нет - есть речь о дополнении. Эта штука работает, если между моментом формирования строк журнала ОС и разноской журнала некий подлый юзер дополнил некую аналитику в модели учета, которой нет в журнале. Если на этом уровне в журнале есть аналитика - хоть заменяйся ее в модели, но в проводку ос пойдет из журнала.
Вот код мз класса LedgerJournalTransUpdateAsset_ru. тут происходит заполнение данными таблицы RAssetTrans:
Цитата:
public void updateNow(LedgerVoucher _ledgerVoucher,
LedgerPostingType _posting,
LedgerJournalTrans _ledgerJournalTrans)
{
LedgerPostingType ledgerPostingType = LedgerPostingType::None;
RAssetStandards assetStandards = this.assetStandards(_ledgerJournalTrans);
LedgerVoucherTransObject ledgerVoucherTransObject;
RAssetPost assetPost;
;

if (this.check(_ledgerJournalTrans))
{
_ledgerJournalTrans.RAssetStandardId = assetStandards.AssetStandardId;

if (_ledgerJournalTrans.AssetCanDisposal_RU || ! _ledgerJournalTrans.AssetToFromRecId_RU)
{
assetPost = RAssetPost::construct(_ledgerJournalTrans,
_ledgerVoucher,
assetStandards.AssetStandardId);
assetPost.run();
}
а именно на строчку:
Цитата:
if (_ledgerJournalTrans.AssetCanDisposal_RU || ! _ledgerJournalTrans.AssetToFromRecId_RU)
Так вот у амортизации _ledgerJournalTrans.AssetToFromRecId_RU равно 0 и _ledgerJournalTrans.AssetCanDisposal_RU = True в отличии от объекта.
И соответственно внутрь никогда не попадёт, а именно там вычисляется и прописывается Dimensions. И Это стандартный функционал.
Ну повторите ради интереса пример. Создайте ОС , сделайте приём укажите амортизацию. Создайте Журнал ОС, пропишите разную аналитику у ОС и его амортизации, разнесите и гляньте в RAssetTrans аналитика будет одинаковой что у амортизации что у ОС.