| 
    
        
     
     | 
    
  | 
Срез последних на каждую дату в СКД и в запросе | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        alpha78    
     24.09.15 
            ✎
    13:31 
 | 
         
        добрый день, коллеги
 
        хочу создать отчет, в котором отображаются приходные накладные, суммы в инвалюте. Нужно в отчете добавить колонку с курсом валют и расчитать сумму в нац.валюте Особая сложность - курс валюты. Для каждого документа есть дата создания. Так вот для каждого документа нужно получить актуальный на дату создания документа курс валют с периодического регистра сведений - КурсыВалют Вот создал запрос, состоящий из 2 временных таблиц В результате в колонке "Курсы валют" ничего нет Помогите, пожалуйста, может что-то не то делаю Заранее спасибо. Удачи Вам в программированию. PS Делал путем создания двух наборов записей и их соединения - тот же эффект ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор КАК ПриходнаяНакладная, ПартииТоваровНаСкладахОстаткиИОбороты.Период КАК Дата, ПартииТоваровНаСкладахОстаткиИОбороты.СуммаПриход КАК СуммаUSD ПОМЕСТИТЬ втБезКурса ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Период, ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор, ПартииТоваровНаСкладахОстаткиИОбороты.СуммаПриход ИНДЕКСИРОВАТЬ ПО Дата, ПриходнаяНакладная, СуммаUSD ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втБезКурса.ПриходнаяНакладная КАК ПриходнаяНакладная, втБезКурса.Дата КАК Дата, МАКСИМУМ(КурсыВалютСрезПоследних.Период) КАК Период, втБезКурса.СуммаUSD КАК СуммаUSD ПОМЕСТИТЬ втМаксПериод ИЗ втБезКурса КАК втБезКурса ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних ПО втБезКурса.Дата = КурсыВалютСрезПоследних.Период СГРУППИРОВАТЬ ПО втБезКурса.Дата, втБезКурса.ПриходнаяНакладная, втБезКурса.СуммаUSD, КурсыВалютСрезПоследних.Период ИНДЕКСИРОВАТЬ ПО ПриходнаяНакладная, Период, Дата, СуммаUSD ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втМаксПериод.ПриходнаяНакладная КАК ПриходнаяНакладная, втМаксПериод.Дата, втМаксПериод.СуммаUSD, КурсыВалютСрезПоследних.Курс ИЗ втМаксПериод КАК втМаксПериод ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних ПО втМаксПериод.Период = КурсыВалютСрезПоследних.Период УПОРЯДОЧИТЬ ПО ПриходнаяНакладная  | 
|||
| 
    1
    
        zhig75    
     24.09.15 
            ✎
    13:33 
 | 
         
        Срез последних на каждую дату в запросе только через физические таблицы. В СКД два набора данных во второй передается параметром период.     
         | 
|||
| 
    2
    
        The_SpecialOne    
     24.09.15 
            ✎
    13:44 
 | 
         
        Была такая же задача.
 
        Не знаю насколько это оптимально, но вот так сделал: ВЫБРАТЬ ПоступлениеТоваровУслуг.Ссылка, ПоступлениеТоваровУслуг.Дата, ПоступлениеТоваровУслуг.ВалютаДокумента, КурсыВалют.Курс, КурсыВалют.Кратность ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО (КурсыВалют.Период В (ВЫБРАТЬ ПЕРВЫЕ 1 КурсыВалют.Период ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Валюта = ПоступлениеТоваровУслуг.ВалютаДокумента И КурсыВалют.Период <= ПоступлениеТоваровУслуг.Дата УПОРЯДОЧИТЬ ПО КурсыВалют.Период УБЫВ)) И (КурсыВалют.Валюта = ПоступлениеТоваровУслуг.ВалютаДокумента)  | 
|||
| 
    3
    
        Nuobu    
     24.09.15 
            ✎
    13:58 
 | 
||||
| 
    4
    
        bolobol    
     24.09.15 
            ✎
    14:03 
 | 
         
        (2) Вау! Даже в книгу знаний внесли!     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |