|
v7: 1cpp, запрос, ВТ, синтаксис | ☑ | ||
---|---|---|---|---|
0
Eeakie
02.10.19
✎
13:15
|
Добрый день.
Какой-то косяк с соединением в последнем джоине. Не врубаюсь. Ткните пальцем что не так. |select | Заявка.iddoc as [Заявка $Документ.Заявка], | isnull(Бухгалтерия.РезервТовараОстаток, 0) as Бухгалтерия, | isnull(Склад.КоличествоОстаток, 0) as Склад, | isnull(Шайба.ОстатокТовараОстаток, 0) as Шайба, | isnull(Развоз.КоличествоОстаток, 0) as Развоз |from $Документ.Заявка as Заявка |left join _1sjourn as Журнал on Журнал.iddoc = Заявка.iddoc |left join $РегистрОстатки.Заявки() as Бухгалтерия on Бухгалтерия.ПоСчету = Заявка.iddoc |left join $РегистрОстатки.Ожидания() as Склад on Склад.Заявка = $ВидДокумента36.Заявка + Заявка.iddoc |left join $РегистрОстатки.ОстаткиТоваровОбщ() as Шайба on Шайба.Заявка = Заявка.iddoc |left join $РегистрОстатки.Развоз(, | inner join $Документ.НакладнаяВнПерем as НВП on НВП.iddoc = ДокументДвижения and $НВП.Заявка = Заявка.iddoc) as Развоз |
|||
1
Admin_Net_1C
02.10.19
✎
13:17
|
(0) :ДокументДвижения - если я правильно помню, как описываются параметры в запросе на 1С++
|
|||
2
Eeakie
02.10.19
✎
13:20
|
(1) ДокументДвижения это измерение в регистре Развоз.
|
|||
3
Eeakie
02.10.19
✎
13:22
|
(0) Забыл написать. Ругается так: Неправильный синтаксис около конструкции "Развоз". Без последнего джойна всё прекрасно работает.
|
|||
4
Admin_Net_1C
02.10.19
✎
13:24
|
т.е. ты в виртуальной таблице остатков накладываешь ограничение с помощью запроса (inner join $Документ.НакладнаяВнПерем), я правильно понял?
А так можно вообще? (я подзабыл уже 1cpp) |
|||
5
Ёпрст
02.10.19
✎
13:27
|
(3) не видно on после Развоз, он там есть ?
(4) можно |
|||
6
Eeakie
02.10.19
✎
13:28
|
(4) Всё верно :) Пример ниже отрабатывает без проблем.
select Развоз.ДокументДвижения from $РегистрОстатки.Развоз(, inner join $Документ.НакладнаяВнПерем as НВП on НВП.iddoc = ДокументДвижения and $НВП.Заявка in (select val from #Заявки)) as Развоз |
|||
7
leshikkam
02.10.19
✎
13:29
|
Дык таблицы с алиасом
НакладнаяВнПерем нет же в запросе. Для внутреннего соединения внутри ВТ в последнем джоине. |
|||
8
Ёпрст
02.10.19
✎
13:29
|
||||
9
Ёпрст
02.10.19
✎
13:31
|
После as Развоз .. где ON ?
|
|||
10
Eeakie
02.10.19
✎
13:32
|
(9) Пытаюсь сообразить что можно после ON написать.
|
|||
11
Ёпрст
02.10.19
✎
13:33
|
(10) Т.е его нет ? Нафига тогда inner join с этой табличкой остатков ?
|
|||
12
Ёпрст
02.10.19
✎
13:33
|
по каким полям иннер то будет, их и перечисляй в on
|
|||
13
Admin_Net_1C
02.10.19
✎
13:34
|
(10) попробуй после on 1=1 (аналог True)
|
|||
14
Eeakie
02.10.19
✎
13:39
|
(12) Возможно я занимаюсь какой-то херней. В 3 регистрах есть измерение "Заявка", по которому без проблем забираются данные из ВТ. В четвертом регистре нет измерения "Заявка", но есть измерение "ДокументДвижения", у которого есть реквизит "Заявка", по которому мне и нужно их связать. Похоже, я что-то не так делаю.
(13) Не работает. |
|||
15
Eeakie
02.10.19
✎
13:41
|
+(12) То есть должно быть что-то типа:
left join $РегистрОстатки.Развоз() as Развоз on Развоз.ДокументДвижения.Заявка = Заявка.iddoc Но такое, к сожалению, не работает :) |
|||
16
Eeakie
02.10.19
✎
13:54
|
Походу придётся делать через union.
|
|||
17
Eeakie
02.10.19
✎
14:09
|
Решилось следующим образом:
select Бухгалтерия.ПоСчету as [Заявка $Документ.Заявка], isnull(Бухгалтерия.РезервТовараОстаток, 0) as Бухгалтерия, 0 as Склад, 0 as Шайба, 0 as Развоз from $РегистрОстатки.Заявки() as Бухгалтерия union all select Заявка.iddoc as [Заявка $Документ.Заявка], 0 as Бухгалтерия, isnull(Склад.КоличествоОстаток, 0) as Склад, 0 as Шайба, 0 as Развоз from $РегистрОстатки.Ожидания() as Склад inner join $Документ.Заявка as Заявка on $ВидДокумента36.Заявка + Заявка.iddoc = Склад.Заявка union all select Шайба.Заявка as [Заявка $Документ.Заявка], 0 as Бухгалтерия, 0 as Склад, isnull(Шайба.ОстатокТовараОстаток, 0) as Шайба, 0 as Развоз from $РегистрОстатки.ОстаткиТоваровОбщ() as Шайба union all select $НВП.Заявка as [Заявка $Документ.Заявка], 0 as Бухгалтерия, 0 as Склад, 0 as Шайба, isnull(Развоз.КоличествоОстаток, 0) as Развоз from $РегистрОстатки.Развоз() as Развоз inner join $Документ.НакладнаяВнПерем as НВП on НВП.iddoc = Развоз.ДокументДвижения Похоже, не самое оптимальное решение, но рабочее. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |