Борьба продолжается ) Погуглил на предмет аналогичных проблем, выяснилось что подобный инфолог в некоторых ситуациях так или иначе вылазил, но судя по всему по каким-то другим причинам - во-первых, происходило это не только из-за установки значения "Количество" в "Отборочная накладная", а во-вторых, лечилось простой чисткой таблицы SalesParmSubLine.
Пока что довольствуемся такой вот заглушкой:
X++:
while select forceplaceholders _salesParmTable
where _salesParmTable.ParmId == salesParmUpdate.ParmId
join forupdate _salesParmSubTable
where _salesParmSubTable.ParmId == _salesParmTable.ParmId &&
_salesParmSubTable.TableRefId == _salesParmTable.TableRefId
{
// bug fix -->
if (prevRecId && (prevRecId == _salesParmSubTable.RecId))
{
continue;
}
prevRecId = _salesParmSubTable.RecId;
// bug fix <--
// остальной код ...
Но понятное дело что это лечение следствия а не причины. Причина в чем-то другом.
Коллеги, неужели никто ни разу не сталкивался с таким поведением?