Показать сообщение отдельно
Старый 02.11.2017, 15:17   #9  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
X++:
		journalTrans.initValue();
        journalTrans.JournalNum             = journalNum;
		...
        journalTrans.AccountType            = LedgerJournalACType::Project;
        journalTrans.LedgerDimension        = this.getLedgerDim(LedgerJournalACType::Project, curExt(), projId);
        journalTrans.AmountCurDebit         = costAmount; 
        journalTrans.DefaultDimension       = LedgerJournalEngine::initDefaultDimensionServer(journalTrans);
		...


	public RefRecId getLedgerDim(LedgerJournalACType _accountType,
                                        DataAreaId _dataAreaId,
                                        DimensionValue _accountId)
    {
        RefRecId ledgerDimension;

        DictEnum dictEnum = new DictEnum(enumNum(LedgerJournalACType));
        DimensionDynamicAccountServiceProvider dimensionDynamicAccountServiceProvider;
        DimensionDynamicAccountContract dimensionDynamicAccountContract = new DimensionDynamicAccountContract();

        dimensionDynamicAccountContract.parmCompany(_dataAreaId);
        dimensionDynamicAccountContract.parmAccountType(_accountType);

        DimensionAttributeValueContract ledgerContract = DimensionAttributeValueContract::construct(dictEnum.value2Label(_accountType), _accountId);
        dimensionDynamicAccountContract.parmPrimaryDimensionAttributeValue(ledgerContract);

        dimensionDynamicAccountServiceProvider = DimensionDynamicAccountServiceProvider::newForDynamicAccountContract(dimensionDynamicAccountContract);
        DimensionStorageResult dimensionStorageResult = dimensionDynamicAccountServiceProvider.resolve();

        switch(dimensionStorageResult.parmStatus())
        {
            case DimensionStorageResultStatus::Valid:
                ledgerDimension = dimensionStorageResult.parmSavedRecId();
                break;

            default:
                error(strFmt("blah-blah-blah-blah-bla", dimensionStorageResult.parmStatus()));
                break;
        }

        return ledgerDimension;
    }
За это сообщение автора поблагодарили: Aquarius (1).