....при этом каждый аналог из этого списка имеет все те же аналоги любой номенклатуры из этого списка...
Откуда такой вывод? С чего Вы взяли? Зачем "изобретать" то, чего нет? Следуя условию задачи, у каждого товара список аналогов индивидуальный и должен формироваться вручную для каждого товара. Если товары А и Б являются аналогами товара В, то это совсем не значит, что товар А является аналогом товара Б. Этого в условии задачи нет. Зачем все усложнять?
...В общем, для решения пишется сложный запрос, почти такой же как для решения задачи 1.4 сборника.
А в чем сложность запроса в задаче 1.4? По-моему, все решается достаточно простым запросом (см. ниже):
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТЧ
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЧ.Номенклатура КАК Номенклатура,
| ТЧ.Количество КАК КоличествоВДокументе,
| ТЧ.Сумма КАК СуммаВДокументе,
| ТЧ.Номенклатура.Представление КАК НоменклатураПредставление,
| ОстаткиНоменклатурыОстатки.Партия КАК Партия,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СтоимостьОстаток, 0) КАК СуммаОстаток,
| ВЫБОР
| КОГДА ОстаткиНоменклатурыОстатки.Партия = &Партия
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ КАК Порядок
|ИЗ
| ТЧ КАК ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК ОстаткиНоменклатурыОстатки
| ПО ТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Порядок,
| ОстаткиНоменклатурыОстатки.Партия.МоментВремени" + СтрокаСортировки + "
|ИТОГИ
| МАКСИМУМ(КоличествоВДокументе),
| МИНИМУМ(СуммаВДокументе),
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Партия", Партия);
Запрос.УстановитьПараметр("Ссылка", Ссылка);