|
Остаток на не константную дату (из реквизита справочника, значение РС и т.п.) Ø (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 спрашивал.
В любом случае, ок, спасибо. Тему можно закрывать.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший