Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как в СКД указать регистру период выборки, если даты периода из другого запроса?

Как в СКД указать регистру период выборки, если даты периода из другого запроса?
Я
   lenkavovka
 
26.06.19 - 11:18
Всем привет!

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

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

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

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

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

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует