Показать сообщение отдельно
Старый 03.11.2017, 16:13   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Что то похожее делал, но другая аналитика:
X++:
    [DataEventHandler(tableStr(SalesTable), DataEventType::Inserting)]
    public static void mtsSalesTable_onInserting(Common sender, DataEventArgs e)
    {
        SalesTable                          salesTable          = sender as SalesTable;

        if (salesTable.MTSBusinessUnit)
        {
            salesTable.DefaultDimension = LedgerDimensionDefaultFacade::serviceReplaceAttributeValue(
                salesTable.DefaultDimension,
                MTSBusinessUnitDialogClass::getDimensionDefaultFromBusinessUnit(salesTable.MTSBusinessUnit),
                MTSBusinessUnitDialogClass::getDimensionAttributeOfBusinessUnit().RecId);
        }
    }

class MTSBusinessUnitDialogClass extends RunBase
{
    static DimensionDefault getDimensionDefaultFromBusinessUnit(MTSBusinessUnitDialog _businessUnit)
    {
        DimensionDefault                    defaultDimensionLocal;
        DimensionAttribute                  dimensionAttribute   = MTSBusinessUnitDialogClass::getDimensionAttributeOfBusinessUnit();
        DimensionAttributeValue             dimensionAttributeValueLocal;
        DimensionAttributeValueSetStorage   valueSetStorageLocal = new DimensionAttributeValueSetStorage();

        dimensionAttributeValueLocal = dimensionAttributeValue::findByDimensionAttributeAndValue(
                dimensionAttribute,
                _businessUnit,
                false,
                true);

        valueSetStorageLocal.addItem(dimensionAttributeValueLocal);

        defaultDimensionLocal = valueSetStorageLocal.save();

        return defaultDimensionLocal;
    }

    static DimensionAttribute getDimensionAttributeOfBusinessUnit()
    {
        DimensionAttribute                  dimensionAttribute;

        select firstonly dimensionAttribute
            where dimensionAttribute.Type == DimensionAttributeType::ExistingList
            &&    dimensionAttribute.BackingEntityType == tableNum(DimAttributeOMBusinessUnit);
        
        return dimensionAttribute;
    }

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