Цитата:
Сообщение от
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 аналитика будет одинаковой что у амортизации что у ОС.