![]() |
![]() |
![]() |
|
Остаток на не константную дату (из реквизита справочника, значение РС и т.п.) Ø (piter3 10.09.2019 10:02) |
☑ | ||
---|---|---|---|---|
0
Bro2
10.09.19
✎
09:41
|
Продолжаю изучать 1С, смотрю виртуальные таблицы остатков, пытаюсь сделать запрос:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Товар.МояДата КАК МояДата, | Товар.Цена КАК Цена, | ДвиженияОстатков.ЧислоОстаток КАК Число |ИЗ | Справочник.Товар КАК Тов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияОстатков.Остатки(Тов.МояДата) КАК ДвиженияОстатков | ПО ДвиженияОстатков.Товар = Тов.Ссылка" ; РезультатЗапроса = Запрос.Выполнить(); Говорит Неверные параметры (с константой все ОК). В принципе ожидаемо в table-inlined функциях в SQL та же ситуация (можно только константы передавать). Но в SQL есть workaround'ы вместо JOIN (СОЕДИНЕНИЕ) можно использовать APPLY, и тогда там можно использовать колонки таблиц (с оговорками, но все же, собственно в этом все отличие APPLY от JOIN). Понятно что 1С важно именно константное значение чтобы использовать промежуточные итоги (со значениями колонок непонятно как это делать). Но вопрос какой workaround в такой ситуации? PS: пожалуйста без холиваров, интересует именно конкретный вопрос. |
|||
1
ДенисЧ
10.09.19
✎
09:46
|
Потому что apply есть только в МС. В оракле, дби и посгрессе - это выглядит по-другому.
|
|||
2
sqr4
10.09.19
✎
09:47
|
Получаешь таблицу дат грузишь в ВТ, Затем получаешь остатки по датам через виртуальную таблицу остатки и обороты с периодичностью день. Соединяешь со своей таблицей товар
|
|||
3
Bro2
10.09.19
✎
09:47
|
(1) И в Oracle и в PostgreSQL есть LATERAL JOIN'ы, что тоже самое что APPLY. Плюс оракл поддерживает и APPLY синтаксис. DB2 уверен тоже.
|
|||
4
sqr4
10.09.19
✎
09:48
|
Хотя тебе можно сразу связаться с таблицей остатков и оборотов с переодичностью день. Т.к в 1с ты профан
|
|||
5
ДенисЧ
10.09.19
✎
09:51
|
(3) Они _разные_ в каждом случае. Такое слово понятно?
|
|||
6
Bro2
10.09.19
✎
09:53
|
(2) Затем получаешь остатки по датам через виртуальную таблицу остатки и обороты с периодичностью день.
А вот тут можно подробнее? Какое начало и окончание периода брать? И она же на все даты в этом диапазоне рассчитает. И что делать если остатки на время надо? |
|||
7
sqr4
10.09.19
✎
09:53
|
(5) нет ему не понятно, ему нужно почитать статью, что такое регистры накопления.
|
|||
8
Bro2
10.09.19
✎
09:55
|
(5) Так в этом же и смысл APPLY. Что они разные. Понятно что если остатки нужны на одну дату, то и проблем нет.
|
|||
9
sqr4
10.09.19
✎
09:56
|
(6) ты и сам понял, что дальше делать.
МОжешь также вот с этим ознакомиться, я в тебя верю http://catalog.mista.ru/public/201526/ |
|||
10
sqr4
10.09.19
✎
09:57
|
(6) В любом случае просто, это не делается как в Фузине, можешь смело ляпать в следующую статейку.
|
|||
11
sqr4
10.09.19
✎
10:01
|
и призываю H A D G E H O G s чтобы он заблочил еще одни вброс
|
|||
12
Bro2
10.09.19
✎
10:01
|
(9) Это тут причем. То что вы кинули оконными функциями гораздо быстрее и проще делается. А я сейчас про APPLY спрашивал.
В любом случае, ок, спасибо. Тему можно закрывать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |