Цитата:
Сообщение от
KiselevSA
На форме со строками операций ежедневного журнала ГК для полей с выбором счета написаны специальные методы loadAutoCompleteData. Т.е. все автоподстановщики написаны на форме. Для того, чтобы заполнение аналитик по умолчанию сработало в строках журнала ОС, надо, наверно, написать свой метод с вызовом его после записи строки журнала.
Нашел вот такой метод. Он должен подтягивать значение аналитик по умолчанию основного счета, для счета ГК 152.01.
У меня установлены 3 значения: Department, Клиент и Поставщик. Все имеют фиксированное значение.
Но, почему то, функция тянет только Department. Предположим, это значение 022.
Потом в настройках аналитик я изменил его на 023, но мой джоб все равно тянет 022. Кеши обновлял. Возник вопрос. Почему он тянет старое значение и как это исправить? И почему он не хочет тянуть значение Клиент и Поставщик?
X++:
DimensionAttributeValueCombination dimAttrValueComb;
DimensionStorage dimensionStorage;
DimensionStorageSegment segment;
int segmentCount, segmentIndex;
int hierarchyCount, hierarchyIndex;
str segmentName, segmentDescription;
SysDim segmentValue;
DimensionHierarchyLevel dimensionHierarchyLevel;
RefRecId recordvalue;
DimensionAttributeValueCombination dimCombination;
MainAccount mainAccount;
;
mainAccount = MainAccount::findByMainAccountId('152.01', false, LedgerChartOfAccounts::findByName(curext()).RecId);
recordvalue = DimensionHierarchy::getAccountStructure(mainAccount.RecId);
select recid from dimCombination where dimCombination.MainAccount == mainAccount.RecId
&& dimCombination.AccountStructure == recordvalue;
dimAttrValueComb = DimensionAttributeValueCombination::find(dimCombination.RecId);
setPrefix("Breakup for " + dimAttrValueComb.DisplayValue);
dimensionStorage = DimensionStorage::findById(dimAttrValueComb.RecId);
if (dimensionStorage == null)
{
throw error("No dimension Specified for the Main Account");
}
hierarchyCount = dimensionStorage.hierarchyCount();
for(hierarchyIndex = 1; hierarchyIndex <= hierarchyCount; hierarchyIndex++)
{
setPrefix(strFmt("Hierarchy: %1", DimensionHierarchy::find(dimensionStorage.getHierarchyId(hierarchyIndex)).Name));
segmentCount = dimensionStorage.segmentCountForHierarchy(hierarchyIndex);
//Loop through segments and display required values
for (segmentIndex = 1; segmentIndex <= segmentCount; segmentIndex++)
{
segment = dimensionStorage.getSegmentForHierarchy(hierarchyIndex, segmentIndex);
if (segment.parmDimensionAttributeValueId() != 0)
{
//Dimension Name
segmentName = DimensionAttribute::find(DimensionAttributeValue::find(segment.parmDimensionAttributeValueId()).DimensionAttribute).Name;
//segment value- Dimension Value
segmentValue = segment.parmDisplayValue();
//Description for dimension)
segmentDescription = segment.getName();
info(strFmt("DimensionName:%1: Value:%2,Description: %3", segmentName, segmentValue, segmentDescription));
}
}
}