Здравствуйте, есть внешняя обработка.
там параметры такие:

```1c
    Запрос.УстановитьПараметр("Склад",Склад);
    Запрос.УстановитьПараметр("Валюта",Валюта);
    Запрос.УстановитьПараметр("КонДата", (КонецМесяца(КонДата-(60*60*24*365))));
    Запрос.УстановитьПараметр("НачДата", (НачалоМесяца(НачДата-(60*60*24*365))));
```

Таким образом получаю продажи за ПРЕДЫДУ́ЩИЙ год за тот же период(Например, за февраль 2022 года).
В таблице значении есть колонка "Остатки". В эту колонку надо получить актуальные остатки.

Не понимаю как реализовать эту идею.

Сделала так:

```1c
    Если ВыборкаДетальныеЗаписи.Следующий()=ВыборкаДетальныеЗаписи.КонечныйОстаток

    И ВыборкаДетальныеЗаписи.КонечныйОстаток > 0 Тогда

    Запрос.Параметры=КонДата;
    Запрос.Параметры=НачДата;
    Товар.Остатки=ВыборкаДетальныеЗаписи.КонечныйОстаток;

    Иначе

    Продолжить;

    КонецЕсли;
```

Не работает((

Только эту колонку нужно заполнить актуальными данными, а остальные колонки надо заполнить прошлогодними данными.

Спасибо всем.
---
как-то так:

```1c
    "ВЫБРАТЬ
    | ОстаткиОстаткиИОбороты.Товар КАК Товар,
    | ОстаткиОстаткиИОбороты.Склад КАК Склад,
    | ОстаткиОстаткиИОбороты.Валюта КАК Валюта,
    | ОстаткиОстаткиИОбороты.СониРасход КАК СониРасход,
    | ТоварНархлариСрезПоследних.Нарх КАК Нарх,
    | ТоварНархлариСрезПоследних.ПриходНархи КАК ПриходНархи
    |ПОМЕСТИТЬ ВТ_Товары
    |ИЗ
    | РегистрНакопления.Остатки.ОстаткиИОбороты (&БошлангичСана,&ОхиргиСана, , , Склад = &Склад И Валюта = &Валюта) КАК ОстаткиОстаткиИОбороты
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТоварНархлари.СрезПоследних КАК ТоварНархлариСрезПоследних
    | ПО ОстаткиОстаткиИОбороты.Товар = ТоварНархлариСрезПоследних.Товар
    | И ТоварНархлариСрезПоследних.ПриходНархи > 0 И ТоварНархлариСрезПоследних.Нарх > 30 И ОстаткиОстаткиИОбороты.СониРасход>0
    |
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_Товары.Склад КАК Склад,
    | ВТ_Товары.Товар КАК Товар,
    | ВТ_Товары.Валюта КАК Валюта,
    | ВТ_Товары.СониРасход КАК СониРасход,
    | ВТ_Товары.Нарх КАК Нарх,
    | ВТ_Товары.ПриходНархи КАК ПриходНархи,
    | Остатки.СониКонечныйОстаток КАК СониКонечныйОстаток
    |ИЗ
    | РегистрНакопления.Остатки.Остатки( , Склад = &Склад И Валюта = &Валюта И Товар В (ВЫБРАТЬ ВТ.Товар ИЗ ВТ_Товары КАК ВТ)) КАК Остатки
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Товары КАК ВТ_Товары
    | ПО Остатки.Склад = ВТ_Товары.Склад
    | И Остатки.Товар = ВТ_Товары.Товар
    |ГДЕ
    | Остатки.СониКонечныйОстаток > 0
    |";
```

Делал на коленке, так что могут быть опечатки.
---
пытаетесь установить параметры запроса уже при обходе результата запроса? Это так не работает. В результате запроса уже данные выполненного запроса. Соответственно устанавливать параметры запроса уже поздно. Нужно сразу в запросе получать нужные данные и устанавливать параметры до выполнения запроса.
---
"Лошадь кушает овёс и сено." А.П. Чехов.
---
и это у меня не получается(((
---
```1c
    Запрос.УстановитьПараметр(НачДата);
    Запрос.УстановитьПараметр(КонДата);
```

Так тоже пробовала, пока результата нет, подскажите что и где править, спасибо.
---
Что надо? Какие начальные условия?
---
Надо чтобы заполнить все колонки данными из предыдущего года, кроме колонки "Остатки". Эту колонку надо заполнить актуальными данными.
---
Сейчас получаю "Остатки" тоже на предыдущий год, а мне надо получить на сегодня например.
---
```1c
    Запрос.УстановитьПараметр("Склад",Склад);
    Запрос.УстановитьПараметр("Валюта",Валюта);
    Запрос.УстановитьПараметр("КонДата", (КонецМесяца(КонДата-(60*60*24*365))));
    Запрос.УстановитьПараметр("НачДата", (НачалоМесяца(НачДата-(60*60*24*365))));
```

С этими параметрами все работает и получаю данные за прошлый год.
---
В уже выполненном запросе невозможно ничего поменять. Надо или выполнить еще раз с другими параметрами, или дописать запрос. чтобы сразу возвращал все, что нужно.

Вот здесь видно, что автор кода как-то глобально не понимает, как устроена программа. То есть совсем. Может, ему посоветовать сходить на какие-нибудь курсы программирования?

```1c
    Если ВыборкаДетальныеЗаписи.Следующий()=ВыборкаДетальныеЗаписи.КонечныйОстаток

    И ВыборкаДетальныеЗаписи.КонечныйОстаток > 0 Тогда

    Запрос.Параметры=КонДата;
    Запрос.Параметры=НачДата;
    Товар.Остатки=ВыборкаДетальныеЗаписи.КонечныйОстаток;
```
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ОстаткиОстаткиИОбороты.Товар КАК Товар,
    | ОстаткиОстаткиИОбороты.Склад КАК Склад,
    | ОстаткиОстаткиИОбороты.Валюта КАК Валюта,
    | ОстаткиОстаткиИОбороты.СониКонечныйОстаток КАК СониКонечныйОстаток,
    | ОстаткиОстаткиИОбороты.СониРасход КАК СониРасход,
    | ТоварНархлариСрезПоследних.Нарх КАК Нарх,
    | ТоварНархлариСрезПоследних.ПриходНархи КАК ПриходНархи
    |
    |ИЗ
    | РегистрНакопления.Остатки.ОстаткиИОбороты (&БошлангичСана,&ОхиргиСана) КАК ОстаткиОстаткиИОбороты
    | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварНархлари.СрезПоследних КАК ТоварНархлариСрезПоследних
    | ПО ОстаткиОстаткиИОбороты.Товар.Ссылка = ТоварНархлариСрезПоследних.Товар.Ссылка
    |
    |ГДЕ
    | ОстаткиОстаткиИОбороты.Склад = &Склад
    | И ОстаткиОстаткиИОбороты.Валюта = &Валюта
    | И ОстаткиОстаткиИОбороты.СониКонечныйОстаток > 0
    | И ТоварНархлариСрезПоследних.ПриходНархи > 0
    | И ТоварНархлариСрезПоследних.Нарх > 30
    | И ОстаткиОстаткиИОбороты.СониРасход>0
    ////////////////////////////////////////////////////////////­///////////////////////////////////////
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ОстаткиОстаткиИОбороты1.Товар КАК Товар1,
    | ОстаткиОстаткиИОбороты1.Склад КАК Склад1,
    | ОстаткиОстаткиИОбороты1.Валюта КАК Валюта1,
    | ОстаткиОстаткиИОбороты1.СониКонечныйОстаток КАК СониКонечныйОстаток1,
    | ОстаткиОстаткиИОбороты1.СониРасход КАК СониРасход1,
    | ТоварНархлариСрезПоследних1.Нарх КАК Нарх1,
    | ТоварНархлариСрезПоследних1.ПриходНархи КАК ПриходНархи1
    |
    |ИЗ
    | РегистрНакопления.Остатки.ОстаткиИОбороты КАК ОстаткиОстаткиИОбороты1
    | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварНархлари.СрезПоследних КАК ТоварНархлариСрезПоследних1
    | ПО ОстаткиОстаткиИОбороты1.Товар.Ссылка = ТоварНархлариСрезПоследних1.Товар.Ссылка
    |
    |ГДЕ
    | ОстаткиОстаткиИОбороты1.Склад = &Склад
    | И ОстаткиОстаткиИОбороты1.Валюта = &Валюта
    | И ОстаткиОстаткиИОбороты1.СониКонечныйОстаток > 0
    | И ТоварНархлариСрезПоследних1.ПриходНархи > 0
    | И ТоварНархлариСрезПоследних1.Нарх > 30
    | И ОстаткиОстаткиИОбороты1.СониРасход>0";
```

Не могу присвоит данные из этой строки
```1c
    ОстаткиОстаткиИОбороты1.СониКонечныйОстаток КАК СониКонечныйОстаток1
```
 в колонку "Товар.Остатки", пишет параметр не найден.
С этой строкой все работает.

```1c
    ОстаткиОстаткиИОбороты.СониКонечныйОстаток КАК СониКонечныйОстаток
```
---
если не рассматривать весь запрос, то ошибка кроится в том, что в имена полей в подзапросах объединения устанавливаются только в первом. В остальных подзапросах поля будут соответствовать именам первого, по порядку их расположения.
---
Исправила как Вы написали:

```1c
    "ВЫБРАТЬ
    | ОстаткиОстаткиИОбороты.Товар КАК Товар,
    | ОстаткиОстаткиИОбороты.Склад КАК Склад,
    | ОстаткиОстаткиИОбороты.Валюта КАК Валюта,
    | ОстаткиОстаткиИОбороты.СониКонечныйОстаток КАК СониКонечныйОстаток,
    | ОстаткиОстаткиИОбороты.СониРасход КАК СониРасход,
    | ТоварНархлариСрезПоследних.Нарх КАК Нарх,
    | ТоварНархлариСрезПоследних.ПриходНархи КАК ПриходНархи
    |
    |ИЗ
    | РегистрНакопления.Остатки.ОстаткиИОбороты (&БошлангичСана,&ОхиргиСана) КАК ОстаткиОстаткиИОбороты
    | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварНархлари.СрезПоследних КАК ТоварНархлариСрезПоследних
    | ПО ОстаткиОстаткиИОбороты.Товар.Ссылка = ТоварНархлариСрезПоследних.Товар.Ссылка
    |
    |ГДЕ
    | ОстаткиОстаткиИОбороты.Склад = &Склад
    | И ОстаткиОстаткиИОбороты.Валюта = &Валюта
    | И ОстаткиОстаткиИОбороты.СониКонечныйОстаток > 0
    | И ТоварНархлариСрезПоследних.ПриходНархи > 0
    | И ТоварНархлариСрезПоследних.Нарх > 30
    | И ОстаткиОстаткиИОбороты.СониРасход>0
    ////////////////////////////////////////////////////////////­/////////////////////////////////////////////
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ОстаткиОстаткиИОбороты1.Товар,
    | ОстаткиОстаткиИОбороты1.Склад,
    | ОстаткиОстаткиИОбороты1.Валюта,
    | ОстаткиОстаткиИОбороты1.СониКонечныйОстаток,
    | ОстаткиОстаткиИОбороты1.СониРасход,
    | ТоварНархлариСрезПоследних1.Нарх,
    | ТоварНархлариСрезПоследних1.ПриходНархи
    |
    |ИЗ
    | РегистрНакопления.Остатки.ОстаткиИОбороты (&БошлангичСана,&ОхиргиСана) КАК ОстаткиОстаткиИОбороты1
    | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварНархлари.СрезПоследних КАК ТоварНархлариСрезПоследних1
    | ПО ОстаткиОстаткиИОбороты1.Товар.Ссылка = ТоварНархлариСрезПоследних1.Товар.Ссылка";

    |ГДЕ
    | ОстаткиОстаткиИОбороты1.Склад = &Склад
    | И ОстаткиОстаткиИОбороты1.Валюта = &Валюта
    | И ОстаткиОстаткиИОбороты1.СониКонечныйОстаток > 0
    | И ТоварНархлариСрезПоследних1.ПриходНархи > 0
    | И ТоварНархлариСрезПоследних1.Нарх > 30
    | И ОстаткиОстаткиИОбороты1.СониРасход>0";
```

Скажите пожалуйста, теперь как получить остатки на сегодня а другие данные за предыдущий год. Спасибо.
---
как-то так:

```1c
    "ВЫБРАТЬ
    | ОстаткиОстаткиИОбороты.Товар КАК Товар,
    | ОстаткиОстаткиИОбороты.Склад КАК Склад,
    | ОстаткиОстаткиИОбороты.Валюта КАК Валюта,
    | ОстаткиОстаткиИОбороты.СониРасход КАК СониРасход,
    | ТоварНархлариСрезПоследних.Нарх КАК Нарх,
    | ТоварНархлариСрезПоследних.ПриходНархи КАК ПриходНархи
    |ПОМЕСТИТЬ ВТ_Товары
    |ИЗ
    | РегистрНакопления.Остатки.ОстаткиИОбороты (&БошлангичСана,&ОхиргиСана, , , Склад = &Склад И Валюта = &Валюта) КАК ОстаткиОстаткиИОбороты
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТоварНархлари.СрезПоследних КАК ТоварНархлариСрезПоследних
    | ПО ОстаткиОстаткиИОбороты.Товар = ТоварНархлариСрезПоследних.Товар
    | И ТоварНархлариСрезПоследних.ПриходНархи > 0 И ТоварНархлариСрезПоследних.Нарх > 30 И ОстаткиОстаткиИОбороты.СониРасход>0
    |
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_Товары.Склад КАК Склад,
    | ВТ_Товары.Товар КАК Товар,
    | ВТ_Товары.Валюта КАК Валюта,
    | ВТ_Товары.СониРасход КАК СониРасход,
    | ВТ_Товары.Нарх КАК Нарх,
    | ВТ_Товары.ПриходНархи КАК ПриходНархи,
    | Остатки.СониКонечныйОстаток КАК СониКонечныйОстаток
    |ИЗ
    | РегистрНакопления.Остатки.Остатки( , Склад = &Склад И Валюта = &Валюта И Товар В (ВЫБРАТЬ ВТ.Товар ИЗ ВТ_Товары КАК ВТ)) КАК Остатки
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Товары КАК ВТ_Товары
    | ПО Остатки.Склад = ВТ_Товары.Склад
    | И Остатки.Товар = ВТ_Товары.Товар
    |ГДЕ
    | Остатки.СониКонечныйОстаток > 0
    |";
```

Делал на коленке, так что могут быть опечатки.
---
Все работает исправно. Спасибо большое.