![]() |
|
v7: Прямые запросы: Не удалось вызвать методы для char | ☑ | ||
---|---|---|---|---|
0
OnePrg
10.12.20
✎
12:20
|
"SELECT
| ЗаказыКво.Фирма as [Фирма $Справочник.Фирмы], | ЗаказыКво.Товар as [Товар $Справочник.Товар], | ЗаказыКво.Контрагент as [Контрагент $Справочник.Контрагенты], | ЗаказыКво.Док as [Док $Документ], | ЗаказыКво.КвоОстаток as Кво |FROM | $РегистрОстатки.ЗаказыКво(:КП~,, | Фирма = :ВыбФирма AND Товар IN (SELECT VaL From #ВыбТовары) AND Док <> $ПустойИД13 "+Условие+", | (Фирма,Товар,Контрагент,Док), (Кво)) AS ЗаказыКво |LEFT JOIN | $Справочник.МестаХранения as МестаХранения ON МестаХранения.ID = ЗаказыКво.Док.МестоХранения |WHERE | МестаХранения.ID = :ВыбМестоХранения"; Ругается "Не удалось вызвать методы для char" на вот это место "ON МестаХранения.ID = ЗаказыКво.Док.МестоХранения", если пишу "МестаХранения.ID = ЗаказыКво.Док" запрос выполняется без ошибки, но результат конечно не тот. |
|||
1
OnePrg
10.12.20
✎
12:21
|
Док - не типизированный документ
|
|||
2
runoff_runoff
10.12.20
✎
12:46
|
через две точки нельзя
|
|||
3
OnePrg
10.12.20
✎
16:57
|
Ладно.
Решил пока через костылик RS.ВыполнитьИнструкцию(ТекстЗапроса,тбРезервы,1); тбРезервы.ВыбратьСтроки(); Пока тбРезервы.ПолучитьСтроку() = 1 Цикл Если тбРезервы.Док.МестоХранения <> Конт.МестоХранения Тогда тбРезервы.Кво = 0; КонецЕсли; КонецЦикла; |
|||
4
Sserj
10.12.20
✎
17:17
|
Тебе будет гораздо легче если перестанешь думать в парадигме ООП. Ну давай хоть к примеру псевдонимы table1, table2 и т.д. :)
:) ЗаказыКво.Док.МестоХранения - это чистое ООП, в SQL нет таких понятий все что видит SQL от такой записи это Таблица.Поле.АЭтоЧто! В данном случае МестоХранения тебе нужно достать из другой таблицы в которой видимо хранятся данные шапки твоего документа. Ну а так как у тебя Док это данные из регистра то тебе нужно связывать как то так: |FROM | $РегистрОстатки.ЗаказыКво(:КП~,, | Фирма = :ВыбФирма AND Товар IN (SELECT VaL From #ВыбТовары) AND Док <> $ПустойИД13 "+Условие+", | (Фирма,Товар,Контрагент,Док), (Кво)) AS ЗаказыКво |LEFT JOIN $Документ.НужныйВидДокумента as докШапка with (nolock) |ON докШапка.iddoc = ЗаказыКво.Док |LEFT JOIN | $Справочник.МестаХранения as МестаХранения ON МестаХранения.ID = $докШапка.МестоХранения |
|||
5
Sserj
10.12.20
✎
17:20
|
+(4) Ну и так как тебе МестоХранения нужно только ради фильтра то справочник тут будет лишним.
Достаточно: |FROM | $РегистрОстатки.ЗаказыКво(:КП~,, | Фирма = :ВыбФирма AND Товар IN (SELECT VaL From #ВыбТовары) AND Док <> $ПустойИД13 "+Условие+", | (Фирма,Товар,Контрагент,Док), (Кво)) AS ЗаказыКво |JOIN $Документ.НужныйВидДокумента as докШапка with (nolock) |ON докШапка.iddoc = ЗаказыКво.Док |WHERE | $докШапка.МестаХранения = :ВыбМестоХранения |
|||
6
Дык ё
10.12.20
✎
17:29
|
(5) ON докШапка.iddoc = ЗаказыКво.Док - к iddoc надо вид документа добавить для приведения типов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |