Показать сообщение отдельно
Старый 02.09.2020, 09:00   #1  
oleggy is offline
oleggy
Участник
 
256 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
DAX2009: работа changeCompany(currComp) в цикле
Подскажите, имеется вот такой job, не могу понять почему changeCompany переключает только на первую компанию в цикле по контейнеру conCompany.
А на следующие компании не переключает.

X++:
VendTrans vendTrans;
Counter conIdx, _count;
str company;
VendAccount vendAccount = 'CONTR_';
SysDim dimOldContragent = 'CONTR';
SysDim dimNewContragent = VendAccount;

Counter numDim = Dimensions::code2ArrayIdx(SysDimension::Contragent);
container conCompany = ['AAA', 'BBB', 'CCC'];

str getMsg(str comp, str name, int64 recId, SysDim dim)
{
	return strFmt("[%1] %2: recId - %3, contragent - %4", comp, name, recId, dim);
}
;

for (conIdx = 1; conIdx <= conLen(conCompany); conIdx++)
{
	company = conPeek(conCompany, conIdx);

	changeCompany (company)
	{
		_count = 0;

		ttsbegin;

		while select forupdate vendTrans
			where vendTrans.AccountNum == vendAccount
			&& vendTrans.Dimension[numDim] == dimOldContragent
		{
			info(getMsg(company, "vendTrans", vendTrans.RecId, vendTrans.Dimension[numDim]));
			vendTrans.Dimension[numDim] = dimNewContragent;
			vendTrans.update();
			_count++;
		}
		ttscommit;
	}
}