Есть работающий запрос, но проблема в том, что когда не выбраны ВыбТовар и ВыбТоварСписок (т.е. запрос по всем товарам) в запрос не попадают товары первого уровня, лежащие вне групп, а нужно чтобы попадали....
По идее нужно добавить (Спр.PARENTID =' 0 '), вопрос как и куда
РС = СоздатьОбъект("ODBCRecordSet");
ТекстЗапроса = "
|SELECT
| Спр.Code as Код,
| ТовРодитель.Code as КодРод,
| ТовРодитель.Descr as ИмяРод,
| Рег.Номенклатура as [Товар $Справочник.Номенклатура],
| Рег.МестоХранения as [Склад $Справочник.МестаХранения],
| Рег.Фирма as [Фирма $Справочник.Фирмы],
| $СпрЦ.Цена as Цена,
| Рег.КоличествоОстаток as КонОст
|FROM
| о)) as Рег
| INNER JOIN
| $Справочник.Номенклатура as Спр ON Спр.ID = Рег.Номенклатура
| INNER JOIN
| $Справочник.МестаХранения as Скл ON Скл.ID = Рег.МестоХранения
| INNER JOIN
| $Справочник.Фирмы as Фрм ON Фрм.ID = Рег.Фирма
|LEFT JOIN
| $Справочник.Цены as СпрЦ ON СпрЦ.ParentExt = Спр.ID AND
| $СпрЦ.КатегорияЦен = :ТипЦен
| INNER JOIN
| $Справочник.Номенклатура as ТовРодитель ON ТовРодитель.ID = Спр.ParentID
|WHERE
| 1=1
|";
Если ВыбТоварСписок.РазмерСписка()<>0 Тогда
ТекстЗапроса = ТекстЗапроса + " AND
| Спр.ID IN (SELECT Val FROM #ГруппаТ)";
ИначеЕсли ВыбТовар.Выбран()=1 Тогда
ТекстЗапроса = ТекстЗапроса + " AND
| Спр.ID IN (SELECT Val FROM #ВыбТовар)";
КонецЕсли;
Если ВыбФирмаСписок.РазмерСписка()<>0 Тогда
ТекстЗапроса = ТекстЗапроса + " AND
| Фрм.ID IN (SELECT Val FROM #ГруппаФ)";
ИначеЕсли ВыбФирма.Выбран()=1 Тогда
ТекстЗапроса = ТекстЗапроса + " AND
| Фрм.ID IN (SELECT Val FROM #ВыбФирма)";
КонецЕсли;
Если ВыбСкладСписок.РазмерСписка()<>0 Тогда
ТекстЗапроса = ТекстЗапроса + " AND
| Скл.ID IN (SELECT Val FROM #ГруппаС)";
ИначеЕсли ВыбСклад.Выбран()=1 Тогда
ТекстЗапроса = ТекстЗапроса + " AND
| Скл.ID IN (SELECT Val FROM #ВыбСклад)";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|ORDER BY
| Спр.Code, Спр.Descr
|";
РС.УстановитьТекстовыйПараметр("КонДата", ДатаОтчета);
РС.УстановитьТекстовыйПараметр("ТипЦен", глПользователь.ОсновнойТипЦенПродажи);
РС.УложитьСписокОбъектов(ВыбТовар,"#ВыбТовар","Номенклатура" );
РС.УложитьСписокОбъектов(ВыбТоварСписок, "#ГруппаТ", "Номенклатура");
РС.УложитьСписокОбъектов(ВыбСклад,"#ВыбСклад","МестаХранения" );
РС.УложитьСписокОбъектов(ВыбСкладСписок, "#ГруппаС", "МестаХранения");
РС.УложитьСписокОбъектов(ВыбФирма,"#ВыбФирма","Фирмы" );
РС.УложитьСписокОбъектов(ВыбФирмаСписок, "#ГруппаФ", "Фирмы");
ТЗ = РС.ВыполнитьИнструкцию(ТекстЗапроса);