Проблема отсутствия искомой цены не может быть надуманной, ибо для того и нужна система, чтоб получать нужные данные.
Тут ещё нужно понять, о каком кэше идёт речь. Дело в том, что класс PriceDisc_Price для поиска цен использует класс PriceDisc, который найденные значения добавляет в глобальный кэш
SysGlobalObjectCache. Так что вряд ли эта проблема связана с кешированием таблицы. Что такое "кеширование класса", я, честно говоря, не знаю.
В классе PriceDisc в двух местах есть баги, которые "теряют" найденную цену. Вкратце, они в цикле присваивают ссылку на буферную переменную.
X++:
// Begin: Alexey Voytsekhovskiy Not to lose the buffer!
actualDiscTable = priceDiscTable.data();
//actualDiscTable = priceDiscTable;
// End: Alexey Voytsekhovskiy
Подробнее
тут.
Думаю, есть смысл сообщить
куда следует.