Показать сообщение отдельно
Старый 25.09.2014, 01:39   #25  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
В порядке страдания ерундой
1. Создаем EDT DimDescription (массив той же размерности, что и Dimension).
2. Делаем временную таблицу TmpDimDescription с единственным полем DimDescription (EDT из п.1), входящим в единственную группу DimDescription.
3. Добавляем примерно такой метод на эту таблицу:
X++:
void initFromCommon(Common _common)
{
    int                 idx;
    FieldId             dimFieldId;
    ;
    for (idx = 1; idx <= dimof(this.dimDescription); idx++)
    {
        dimFieldId = fieldId2Ext (fieldname2id (_common.TableId, "Dimension"), idx);
        this.DimDescription[idx] = Dimensions::find (Dimensions::arrayIdx2Code (idx), _common.(dimFieldId)).Description;
    }
}
4. Добавляем эту таблицу в желаемую(ые) форму(ы), вытаскиваем в нужное место группу DimDescription.
5. На "главном" датасорсе (в котором собственно хранятся аналитики), перекрываем метод active():
X++:
public int active()
{
    int ret;
    ;
    ret = super();

    TmpDimDescription.initFromCommon(this.cursor());
    TmpDimDescription_ds.executeQuery();

    return ret;
}
6. Перестаем страдать ерундой (С)
__________________
За это сообщение автора поблагодарили: S.Kuskov (1).