Если использовать $ПоследнееЗначение, то эффект тот же, как от УПОРЯДОЧИТЬ из постов выше, причем, абсолютно одинаковый результат (на выходе другой набор данных). Я подозреваю, что у меня что-то не так, но что именно не могу понять.
рс = СоздатьОбъект("ПрямойЗапрос");
СписокИзделий = СоздатьОбъект("СписокЗначений");
Блюда.Выгрузить(СписокИзделий,,,"Блюдо");
рс.ВыполнитьЗапрос("СОЗДАТЬ ТАБЛИЦА #ТаблицаПродукты(Продукт VARCHAR(9))");
ТекстЗапроса = "
|ВСТАВИТЬ ВНУТРЬ #ТаблицаПродукты
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| $СпрНП.Продукт КАК Продукт
|ИЗ Справочник.НаборПродуктов КАК СпрНП $nolock
|ГДЕ $СпрНП.Владелец В (ВЫБРАТЬ val ИЗ #СписокИзделий)
| И $СпрНП.ПометкаУдаления = 0
|";
рс.УложитьСписокОбъектов(СписокИзделий, "#СписокИзделий", "Номенклатура");
рс.ВыполнитьЗапрос(ТекстЗапроса);
ТекстЗапроса = "
|ВЫБРАТЬ
| Ост.Субконто1 [Товар $Субконто],
| Ост.Субконто1_вид Товар_вид,
| Ост.КоличествоОстаток КАК Количество,
| $Журнал.ДатаДокумента КАК [ДатаДок $Дата],
| $ПоследнееЗначение.Номенклатура.Масса($СпрНом.ТекущийЭлемент, :ДатаДок) КАК Фасовка
|ИЗ $БИОстатки.Основной(
| :ДатаДок~,
| #Счет,
| ,
| Количество,
| (Субконто1 В #ТаблицаПродукты) И (Субконто2 = :Склад),
|) КАК Ост
|СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНом $nolock ПО ЛЕВО(Ост.Субконто1, 9) = $СпрНом.ТекущийЭлемент
|СОЕДИНЕНИЕ ЖурналДокументов as Журнал $nolock on ПРАВО(Ост.Субконто3, 9) = Журнал.iddoc
|ГДЕ ОКРУГЛИТЬ(Ост.КоличествоОстаток, 5) > 0
| И Ост.Субконто3 != :ПустойИД13
|";
рс.БухгалтерскийУчет = 1;
рс.УстановитьТекстовыйПараметр("ДатаДок", ДатаДок);
рс.УстановитьТекстовыйПараметр("Склад", Склад);
рс.УложитьСписокОбъектов(СчетПоКоду("41.2"), "#Счет");
тз = рс.Выполнить("ТаблицаЗначений", ТекстЗапроса);
тз.Сортировать("Товар, ДатаДок");
тз.Выгрузить(тОст);
тОст.ВидимостьКолонки("Товар_вид", 0);
ТекстЗапроса = "
|ВЫБРАТЬ
| $СпрНП.Владелец [Изделие $Справочник.Номенклатура],
| $СпрНП.Продукт [Товар $Справочник.Номенклатура],
| $СпрНП.Количество КАК Количество,
| $СпрНП.ФКоробка КАК Коробка,
| ВЫБОР КОГДА $СпрНом.Весовой = 0 ТОГДА 100 ИНАЧЕ 10 КОНЕЦ КАК Весовой
//| $ПоследнееЗначение.НаборПродкутов.ФНеИсп($СпрНП.ТекущийЭлемент, :ДатаДок) КАК НеИсп
|ИЗ Справочник.НаборПродуктов КАК СпрНП $nolock
|СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНом $nolock ПО $СпрНП.Владелец = $СпрНом.ТекущийЭлемент
|ГДЕ $СпрНП.Владелец В (ВЫБРАТЬ val ИЗ #СписокИзделий)
| И $СпрНП.ПометкаУдаления = 0
|";
рс.БухгалтерскийУчет = 0;
тз = рс.Выполнить("ТаблицаЗначений", ТекстЗапроса);
тз.Выгрузить(тТов);
тТов.Сортировать("Изделие, Товар");
п.с. Нашел еще несколько непонятных вещей, но пока грузить не буду. C левым соединением пробовал, не влияет.