Как-то вот так
Проверка на пустой товар не нужна, так как при этом условие не отрабатывает.
Таблицу соответственно переделать.
То как ты написал при выводе первой группировки во вторую запихнет ВСЁ из второй, попадающее под условия запроса. И так для каждой позиции.
ТекстЗапроса = "Период С НачДата по КонДата;
|Товар = Регистр.Продажи.ТМЦ, Регистр.ПартииНаличие.ТМЦ;
|Сум = Регистр.Продажи.ПродСтоимость;
|Кол = Регистр.Продажи.Количество;
|ПостКолво=Регистр.ПартииНаличие.Количество;
|ПостЦена=Регистр.ПартииНаличие.СуммаБух;
|Группировка Товар;
|Функция КолВоПрод = Сумма(Кол);
|Функция СумПрод = Сумма(Сум);
|Функция ПриходКол = Приход(ПостКолво);
|Функция ПриходСум = Приход(ПостЦена);
|Условие (Товар в ВыбНоменклатура);
|";
правда, то как я написал покажет тебе например товар, который поступил но не был продан.