|
Срез последних на каждую дату в СКД и в запросе | ☑ | ||
---|---|---|---|---|
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) Вау! Даже в книгу знаний внесли!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |