|
v7: 1sqlite. Помогите получить документы движения из регистра | ☑ | ||
---|---|---|---|---|
0
palpetrovich
02.04.15
✎
11:16
|
продолжаю мучить склайт :)
текст=" |Select | Рег.Товар [Товар :Справочник.Номенклатура] | ,Рег.iddoc [iddoc :Документ] | ,SUM(Рег.Приход) [Приход :Число.19.5] | ,SUM(Рег.Расход) [Расход :Число.19.5] |From | ( | SELECT | Движения2.Товар Товар | ,Движения2.iddoc iddoc | ,Движения2.ОстатокТовара * (1 - Движения2.Debkred) Приход | ,Движения2.ОстатокТовара * Движения2.Debkred Расход | FROM | [Регистр.ПартииТоваров] Движения2 | INNER Join [Журнал] Жур2 ON Жур2.iddoc = Движения2.iddoc | AND Жур2.date BETWEEN :Дата1ПриходРасход And :Дата2ПриходРасход | WHERE Движения2.Товар in (select val from ВыбрТовар) | |) Рег | |Group by Рег.Товар, Рег.iddoc |"; табличка есть, циферки верные, в колонке iddoc - пусто :( |
|||
1
palpetrovich
02.04.15
✎
11:24
|
а вот так:
текст=" | SELECT | Движения2.Товар Товар | ,Движения2.iddoc iddoc | ,Движения2.ОстатокТовара * (1 - Движения2.Debkred) Приход | ,Движения2.ОстатокТовара * Движения2.Debkred Расход | FROM | [Регистр.ПартииТоваров] Движения2 | INNER Join [Журнал] Жур2 ON Жур2.iddoc = Движения2.iddoc | AND Жур2.date BETWEEN :Дата1ПриходРасход And :Дата2ПриходРасход | WHERE Движения2.Товар in (select val from ВыбрТовар) | |Group by Движения2.Товар, Движения2.iddoc |"; iddoc - непустые, правда выглядят так примерно "1UEZ", да и товар тоже не лучше - "71P" :) |
|||
2
palpetrovich
02.04.15
✎
11:27
|
+(1) о, если сделать в первом запросе так:
//| ,Рег.iddoc [iddoc :Документ] | ,Рег.iddoc [iddoc :Строка.9] то эти "1UEZ" - получаю ...но как-то хотелось совсем другого :) |
|||
3
Ёпрст
02.04.15
✎
11:30
|
по-уму, нужно либо воткнуть галку быстрая обработка движений, или воткнуть отбор на одном из измерений. Чтоб не было соединения с журналом в тексте запроса.
На счет документа - либо добавить iddocdef в селект как Док_вид , либо прибавлять iddocdef к iddoc и типизировать как Документ |
|||
4
palpetrovich
02.04.15
✎
11:32
|
(3) т.е. проблема в том, что Док неопеределенного вида?
тогда почему это работает: | ,Рег.ПрихДокумент [ПрихДокумент :Документ] |
|||
5
palpetrovich
02.04.15
✎
11:36
|
странно как-то ваще-т, вытащить ТекущийДокумент при запросе в регистру - это-ж... как-бы всем надо, неужели все так сложно?
|
|||
6
Ёпрст
02.04.15
✎
11:40
|
(4) основы бы почмтал, что ле.
>>>тогда почему это работает: >>> | ,Рег.ПрихДокумент [ПрихДокумент :Документ] Это работает, потому, что ПрихДокумент - реквизит с типом <Документ>, хранится как char 13, первые 4 символа - вид документа, т.е это iddocdef(4)+iddoc(9) - тут типизация до <Документ> будет работать. У тебя же - есть только iddoc, типизировать можно, если или добавить доп поля для конкретизации типизации iddocdef, либо прибавить iddocdef к iddoc, либо сразу типизировать iddoc к нужному виду, например select iddoc [Док :Документ.Реализация], если к примеру, стоит фильтр на вид документа в запросе. |
|||
7
palpetrovich
02.04.15
✎
11:50
|
(6) основы это конечно хорошо, но лень... :)
"прибавить iddocdef к iddoc" - как именно, примерчик можно? |
|||
8
palpetrovich
02.04.15
✎
11:51
|
и select iddoc [Док :Документ.Реализация] - саловато будет, доки то там - всякие-разные
|
|||
9
palpetrovich
02.04.15
✎
11:55
|
мля, ваще ничего не понимаю, сделал для прикола:
| ,Рег.iddoc [iddoc :Документ.РасходнаяРозничная] в результат вывалились ВСЕ доки, правда первая таки была РасходнаяРозничная |
|||
10
palpetrovich
02.04.15
✎
12:26
|
+(9) ниччего не понимаю, так
| ,Рег.iddoc [iddoc :Документ.Взаимозачет] тоже вываливает все документы ...шаманство какое-то |
|||
11
Ёпрст
02.04.15
✎
12:38
|
(7)
да ё.. либо так 1. select iddoc [Док :Документ] ,iddocdef Док_вид 2.либо так (нет лишней колонки) select iddocdef||iddoc [Док :Документ] |
|||
12
palpetrovich
02.04.15
✎
13:40
|
(11) при всем уважении: " no such column: iddocdef"
|
|||
13
palpetrovich
02.04.15
✎
13:46
|
+(12) хм, так что-ли?
текст=" |Select | Рег.Товар [Товар :Справочник.Номенклатура] | ,iddocdef||Рег.iddoc [Док :Документ] | ,SUM(Рег.Приход) [Приход :Число.19.5] | ,SUM(Рег.Расход) [Расход :Число.19.5] |From | ( | SELECT | Движения2.Товар Товар | ,Движения2.iddoc iddoc | ,Жур2.iddocdef iddocdef | ,Движения2.ОстатокТовара * (1 - Движения2.Debkred) Приход | ,Движения2.ОстатокТовара * Движения2.Debkred Расход | FROM | [Регистр.ПартииТоваров] Движения2 | INNER Join [Журнал] Жур2 ON Жур2.iddoc = Движения2.iddoc | AND Жур2.date BETWEEN :Дата1ПриходРасход And :Дата2ПриходРасход | WHERE Движения2.Товар in (select val from ВыбрТовар) | |) Рег | |Group by Рег.Товар, Рег.iddoc |"; вроде работает |
|||
14
palpetrovich
02.04.15
✎
14:10
|
забавненько,
| ,'1234'||Рег.iddoc [Док :Документ] вместо | ,iddocdef||Рег.iddoc [Док :Документ] тоже дает как-бы верный результат, вот только "провалиться" в выбранный документ результирующей таблицы - не получается :) на "Если Док.НайтиДокумент(ТекЗнач) = 1 Тогда" говорит: Недопустимая операция, хотя в отладчике я разницы "ТекЗнач" для обоих вариантов - не заметил |
|||
15
palpetrovich
02.04.15
✎
14:16
|
+(14) для варианта | ,'1234'||Рег.iddoc [Док :Документ]
если не искать докумет, а сразу ТекЗнач = тз.ПолучитьЗначение(стр, "Док"); ОткрытьФорму(ТекЗнач); предлагается выбрать ВидДока, если выбрать верный - открывается форма |
|||
16
palpetrovich
02.04.15
✎
14:26
|
лан, Ёпрст - спасибо за помощь, остальным - спасибо за внимание :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |