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

Запрос с получением курсов из регистра сведений на дату каждого документа?

Запрос с получением курсов из регистра сведений на дату каждого документа?
Я
   pvase
 
03.06.19 - 10:35
Суть задачи, получить в запросе курсы из регистра сведений на дату документа. Что-то типа такого запроса:
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    РеализацияТоваровУслуг.Дата КАК Дата,
    РеализацияТоваровУслуг.Контрагент КАК Контрагент,
    РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокумента,
    КурсыВалютСрезПоследних.Курс КАК Курс,
    КурсыВалютСрезПоследних.Кратность КАК Кратность
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(РеализацияТоваровУслуг.Дата, РеализацияТоваровУслуг.Валюта) КАК КурсыВалютСрезПоследних
        ПО РеализацияТоваровУслуг.Дата <= КурсыВалютСрезПоследних.Период

Подскажите пожалуйста, Как это лучше сделать средствами запроса 1С?
 
 
   Жан Пердежон
 
1 - 03.06.19 - 10:38
шо? опять?
   HardBall
 
2 - 03.06.19 - 10:39
Ага, OUTER APPLY.
   Жан Пердежон
 
3 - 03.06.19 - 10:39
   pvase
 
4 - 03.06.19 - 11:09
(2) О если бы такое поддерживал 1С :).
(3) Спасибо, думал, может есть более гуманный подход, чем 20 лет назад, но похоже что нет :). Придется использовать старый проверенный код. Осталось только разобраться с системой компановки и связанными запросами, может 1С сама как-то оптимизирует такую связь. Посмотрим.
   ptiz
 
5 - 03.06.19 - 11:24
(4) Если записать курс на каждую дату, то можно работать тупым соединением, без среза последних.
   mistеr
 
6 - 03.06.19 - 13:29
(4) В случае с 1С проверять, не появилось ли чего нового в запросах, нужно раз в 50 лет, не чаще.

(5) Это платформа могла бы и не лету сделать, без записи, через виртуальную таблицу. Остатки и обороты может развернуть на каждую дату, а срез не может. Где логика?

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