Имя: Пароль:
1C
1С v8
Как в СКД указать регистру период выборки, если даты периода из другого запроса?
0 lenkavovka
 
26.06.19
11:18
Всем привет!

В СКД есть несколько запросов, упрощу для примера:

ВЫБРАТЬ
    ПересчетТоваров.Дата КАК ДатаДокумента
ПОМЕСТИТЬ втНачальныйПересчёт
ИЗ
    Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
    ПересчетТоваров.Ссылка = &ПересчётНачальный
;
ВЫБРАТЬ
    ПересчетТоваров.Дата КАК ДатаДокумента
ПОМЕСТИТЬ втКонечныйПересчёт
ИЗ
    Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
    ПересчетТоваров.Ссылка = &ПересчётКонечный

Далее нужно выбрать остатки на складах:

ВЫБРАТЬ
    СвободныеОстаткиИОбороты.ВНаличииНачальныйОстаток КАК НачальныйОстаток,
    СвободныеОстаткиИОбороты.ВНаличииКонечныйОстаток КАК КонечныйОстаток,
ИЗ
    РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(
        &ДатаНачальногоПересчёта,
        &ДатаКонечногоПересчёта,
        Авто,,) КАК СвободныеОстаткиИОбороты

В качестве периода в этот регистр вместо &ДатаНачальногоПересчёта и &ДатаКонечногоПересчёта нужно передать поля ДатаДокумента из первых двух запросов.
Пробовали СОЕДИНЕНИЕ с втНачальныйПересчёт и втКонечныйПересчёт + конструкцию:

ГДЕ СвободныеОстаткиИОбороты.Период МЕЖДУ .........

, но, увы, в регистре СвободныеОстаткиИОбороты нет поля Период - в конструкторе запроса слева показывает, а выбирать не даёт, при попытке использовать сообщает об отсутствии поля.

Подскажите, пожалуйста, как быть?
1 DrWatson
 
26.06.19
11:38
(0) Думаю, оптимальнее всего будет получить даты отдельным запросом вне СКД и поместить их в параметры перед выполнением.
2 catena
 
26.06.19
12:07
(0)Если это единичные даты(т.е. не портянка дат, на которые нужно получить остатки), то можно через параметр связать.

https://its.1c.ru/db/metod8dev/content/4303/hdoc

С портянкой дат тоже можно, но нужно смотреть производительность.
3 yavasya
 
26.06.19
12:43
РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(
        &ДатаНачальногоПересчёта,
        &ДатаКонечногоПересчёта,
        Авто,,) КАК СвободныеОстаткиИОбороты  параметры виртуальной таблицы и есть твое условие. Нафейхуа тебе нужно условие?
4 yavasya
 
26.06.19
13:43
(0) ладно уж. прикомпановкерезультата &ДатаНачальногоПересчёта = Получитьпараметр(ПересчётНачальный ).Дата
5 catena
 
26.06.19
13:44
(4)"В СКД есть несколько запросов, упрощу для примера:"

Все может быть далеко не так просто
6 yavasya
 
26.06.19
13:44
(4) короче читаешь параметр при компановке результата , затем подсовываешь в другой
7 yavasya
 
26.06.19
13:45
(5) совсем новичок, он имел ввиду нескольок временных таблиц
8 lenkavovka
 
28.06.19
09:18
Спасибо всем за помощь!
В "ПриКомпоновкеРезультата" заработало.