1. Используй
[code=e1cv8][/code] для кода - будет читабельней
2. В таком виде, как построен Запрос1, нужна еще одна выборка, поэтому я бы переделал текст запрос по-другому:
Запрос1.Текст =
"ВЫБРАТЬ
| СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура,
| СпецификацииНоменклатурыИсходныеКомплектующие.Количество
|ИЗ
| Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
|ГДЕ
| СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Владелец = &Владелец";
Ну и после этого обращался бы напрямую к полям:
Если Результат2.Номенклатура = Результат1.Номенклатура Тогда ...
3. Поле Валюта никак не использовано - спишем это на упрощение задачи для форума
4. А вообще эти запросы правильно объединить в один с использованием
ЛЕВОЕ СОЕДИНЕНИЕ и все вычисления провести в самом запросе. В простейшем случае (если в регистре ЦеныНоменклатуры только одно измерение - Номенклатура, и ресурс Цена) это выглядело бы так:
Запрос.Текст =
"ВЫБРАТЬ
| СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
| СпецификацииНоменклатурыИсходныеКомплектующие.Количество,
| СпецификацииНоменклатурыИсходныеКомплектующие.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Стоимость
|ИЗ
| Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
| ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура
|ГДЕ
| СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Владелец = &Владелец";
Добавлено через 1 минуту и 59 секунд:P.S. Запрос в п.4 не оптимизирован по скорости, но уж точно не будет медленней, чем алгоритм исходной задачи. Для оптимизации по скорости необходимо использовать временные таблицы (ПОМЕСТИТЬ) и срез цен делать с учетом только выбранной номенклатуры
Добавлено через 3 минуты и 19 секунд:P.P.S. "цену посчитать как среднюю за период" - недостаточно условий. Прочитай какое бывает
Среднее значение