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

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

(5) Это платформа могла бы и не лету сделать, без записи, через виртуальную таблицу. Остатки и обороты может развернуть на каждую дату, а срез не может. Где логика?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший