Цитата:
Сообщение от
mazzy
Я правильно понимаю, что сейчас есть таблица, устроенная подобно InventDim, в которой каждое значение аналитики находится в своей колонке. а в GeneralJournalAccountEntry указывается идентификатор, подобный InventDim?
ага. на-ка вот, насладись красотой!
открываешь такой это чудо-юдо в бровзере, а там - хоба-на!
круче, чем у копперфильда, разрезающего амаяка акопяна!
а поиск идёт по имени столбца
X++:
/// <summary>
/// Gets the Value fieldId of the <c>DimensionAttributeValueCombination</c> table for a <c>DimensionAttribute</c> name.
/// </summary>
/// <param name = "_dimensionAttributeName">The name of the <c>DimensionAttribute</c>.</param>
/// <returns>The Id of the Value field.</returns>
public static FieldId getDimensionValueFieldId(Name _dimensionAttributeName)
{
container cachedResult = DimensionCache::getValue(DimensionCacheScope::DimensionKeyValueColumn, [DimensionMetadataConstants::DimensionCombinationValueColumn, _dimensionAttributeName]);
if (cachedResult == conNull())
{
DimensionAttribute dimensionAttribute = DimensionAttribute::findByName(_dimensionAttributeName);
if (!dimensionAttribute)
{
throw error(Error::wrongUseOfFunction(funcName()));
}
if (dimensionAttribute.getStatus() == DimensionAttributeStatus::Inactive)
{
throw error("@Dimension:DimensionAttributeInactive");
}
cachedResult = [fieldName2id(tableNum(DimensionAttributeValueCombination), dimensionAttribute.DimensionValueColumnName)];
DimensionCache::insertValue(DimensionCacheScope::DimensionKeyValueColumn, [DimensionMetadataConstants::DimensionCombinationValueColumn, _dimensionAttributeName], cachedResult);
}
FieldId dimensionAttributeFieldId = conpeek(cachedResult, 1);
return dimensionAttributeFieldId;
}