остаток - это свойство SVOB_OZHIDAEMYY_OSTATOK ? или все же остаток в торговом каталоге?
Если в торговом каталоге
\Bitrix\Main\Loader::includeModule('catalog');
$iblockIds = [65, 66];
$elements = \Bitrix\Catalog\ProductTable::getList([
'select' => ['ELEMENT_ID' => 'IBLOCK_ELEMENT.ID', 'ELEMENT_NAME' => 'IBLOCK_ELEMENT.NAME', 'QUANTITY'],
'filter' => ['IBLOCK_ELEMENT.IBLOCK_ID' => $iblockIds, '>QUANTITY' => 0]
])->fetchAll();
print_r($elements);
Если свойство
$elements = [];
$iblockIds = [65, 66];
$iterator = \CIBlockElement::GetList(['ID' => 'ASC'], ['IBLOCK_ID' => $iblockIds, '>PROPERTY_SVOB_OZHIDAEMYY_OSTATOK' => 0], false, false, ['ID', 'NAME', 'PROPERTY_SVOB_OZHIDAEMYY_OSTATOK']);
while($row = $iterator->Fetch()) {
$elements[] = $row;
}
print_r($elements);
Весь код предыдущий закомментируй, он не нужен
<?
//...................
// это не надо
/*
CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");
CModule::IncludeModule("sale");
*/
\Bitrix\Main\Loader::includeModule('catalog');
$iblockIds = [65, 66];
$elements = \Bitrix\Catalog\ProductTable::getList([
'select' => ['ELEMENT_ID' => 'IBLOCK_ELEMENT.ID', 'ELEMENT_NAME' => 'IBLOCK_ELEMENT.NAME', 'QUANTITY'],
'filter' => ['IBLOCK_ELEMENT.IBLOCK_ID' => $iblockIds, '>QUANTITY' => 0]
])->fetchAll();
// дальше все комментируешь до своей таблицы
?>
<?if($elements):?>
<table border="1" cellpadding="1" cellspacing="1" style="width: 850px">
<tbody>
<?foreach($elements as $element):?>
<tr>
<td style="width: 100px;"><?=$element['ELEMENT_ID'];?></td>
<td><?=$element['ELEMENT_NAME'];?></td>
<td style="width: 80px;"><?=$element['QUANTITY'];?></td>
</tr>
<?endforeach;?>
</tbody>
</table>
<?endif;?>
если надо в переменную записать таблицу, тогда надо буферизацию добавить
<?ob_start();?>
<?if($elements):?>
.................................................
<?endif;?>
<?$MESSAGE = ob_get_clean();?>
P.S.
не надо uppercase в переменных использовать ($MESSAGE), всегда должен быть camelcase