Я щас глупость спрошу. Но весь мозг сломал в размышлениях "зачем?"
AX2012 R3.
Класс RetailCDXChannelSpecificData, метод trackChannelDBAssignment()
вот очищенный от лишнего код:
X++:
public void trackChannelDBAssignment()
{
container channelDB;
int i;
RefRecId channelDBRecId;
while select RefRecId
from ref1
where // условия
{
channelDB += ref1.RefRecID;
}
for (i = 1; i <= conLen(channelDB); ++i)
{
channelDBRecId = conPeek(channelDB, i);
// некие действия
}
}
ВОПРОС:
нафига разработчики Майкрософт сначала собирают контейнер, а затем делают цикл по контейнеру?
контейнер - внутренняя переменная, никуда не возвращается, никаких побочных эффектов он не дает. никаких действий со счетчиком не выполняется. счетчик не возвращается. break'ов из циклов тоже не бывает.
ЗАЧЕМ?
Почему не сразу один цикл?
X++:
public void trackChannelDBAssignment()
{
RefRecId channelDBRecId;
while select RefRecId
from ref1
where // условия
{
channelDBRecId = ref1.RefRecID;
// некие действия
}
}