и еще вдогонку. Штатная проверка пустых аналитик действует сразу на все таблицы по всем аналитикам. Поэтому ее неудобно устанавливать. Я сделал аналог штатной проверки - для этого мне пришлось добавить всего одно поле DenyEmptyDimension в таблицу DimensionSetRuleTable (плюс вывести галку в нижний грид формы правил набора аналитик) и написать буквально 5 строчек кода в \Classes\DimensionSetValidation\checkDimension:
X++:
public boolean checkDimension(Common _caller,
fieldId _dimensionFieldId,
boolean _checkWriteValidation,
boolean _silent = false)
{
........
if (validateDimension != emptyDimension)
{
if (_silent)
{
isValid = isValid && this.isValidCombination(setId, hierarchyId, validateDimension, prefixDimension);
}
else
{
isValid = isValid && this.checkCombination(setId, hierarchyId, validateDimension, prefixDimension);
}
}
//Проверка на пустую аналитику -->
else
{
if (_checkWriteValidation && dimensionSetRuleSearch.dimensionSetRuleTable().DenyEmptyDimension)
{
isValid = checkFailed("@SYS79468");
}
}
// Проверка на пустую аналитику <--
........
}
Добавление таким образом галки позволило мне применить правило к целому набору (но не всему массиву) на уровне конкретной таблицы (а не всех таблиц)