Прошло... 8 лет. Пересчет единиц переписан заново, преимуществ для клиентов в результате переписывания = 0. Как и раньше, разные конфигурации товара (о партиях и не говорим) не могут иметь разный вес, разный объем. Натыкаюсь на это на каждом втором проекте: дискретное, процессное производство... Результат: невозможность использовать конфигуратор продукции для конфигурации длины и ширины.
Переписать, как и 8 лет назад, не представляется возможным: несмотря на кошерный RecId в таблице пересчета, RecId этот ссылается на продукт, а не на DistinctVariant. Все вызовы обросли преобразованием ItemId в ProductRecId, чтобы свести на нет, так сказать, выгоды в производетельности:
X++:
qty = UnitOfMeasureConverter::convert(qty,
UnitOfMeasure::unitOfMeasureIdBySymbol(inventUnitId),
UnitOfMeasure::unitOfMeasureIdBySymbol(salesLine.SalesUnit),
NoYes::Yes,
InventTable::itemProduct(salesLine.ItemId));
Найти бы этого лентяя, который "улучшал", и ткнуть бы носом в запросы клиентов в производственном секторе.