|
v7: Проблема с прямым запросом | ☑ | ||
---|---|---|---|---|
0
Маркусс
10.06.16
✎
11:50
|
Добрый день
Что не так в запросе? Подскажите, плиз. Ошибка: {Документ.Реализация.Модуль Документа(219)}: State 42000, native 258, message [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot call methods on char. ТекстЗапроса = "select | Рег.Фирма [Фирма $Справочник.Фирмы], | Рег.Договор [Договор $Справочник.Договоры], | sum(Рег.СуммаВалОстаток) СуммаВал |from | $РегистрОстатки.Покупатели(:Позиция~) Рег |where | Рег.Фирма = :Фирма and Рег.Договор = :Договор and Рег.Договор.ParentExt.ЮрФизЛицо = :ЮрЛицо |group by | Рег.Фирма, Рег.Договор | "; Спасибо |
|||
1
Маркусс
10.06.16
✎
11:51
|
Цель - получить список договоров с задолженностями по ЮрЛицу Контрагента
|
|||
2
Зая Бусечка
10.06.16
✎
11:52
|
Я бы сказала .Отладка(1), взяла бы текст запроса и его в EM.
И там уже смотреть |
|||
3
Mikeware
10.06.16
✎
11:56
|
Перечислять измерения и ресурсы будет тот, у кого день рожденья в понедельник был?
|
|||
4
Маркусс
10.06.16
✎
12:07
|
(3) так перечислены же
я понял, что ругается на ".ParentExt.ЮрФизЛицо" Как это правильно описать? |
|||
5
Зая Бусечка
10.06.16
✎
12:10
|
(4) ParentExt - это строка длиной 9 символов. Что ты из неё через точку хочешь получить?
Делай лефт джойн |
|||
6
Ёпрст
10.06.16
✎
12:11
|
(0) косяк тут
$РегистрОстатки.Покупатели(:Позиция~) |
|||
7
Ёпрст
10.06.16
✎
12:13
|
ну и вот это
|where | Рег.Фирма = :Фирма and Рег.Договор = :Договор and Рег.Договор.ParentExt.ЮрФизЛицо = :ЮрЛицо можно запихать от сюда $РегистрОстатки.Покупатели(:Позиция~,<>,<>,) |
|||
8
Ёпрст
10.06.16
✎
12:13
|
ну и вот еще один косяк:
Рег.Договор.ParentExt.ЮрФизЛицо так не покатит, нужно соединение со справочниками юрЛицо и ФизЛицо |
|||
9
Ёпрст
10.06.16
✎
12:14
|
тьфу млин, со справочником договоры, чтоб посмотреть владельца
|
|||
10
Mikeware
10.06.16
✎
12:31
|
(9) да там и с договорами, и с контрагентами...
|
|||
11
Mikeware
10.06.16
✎
12:31
|
(4) где перечислены-то?
|
|||
12
Mikeware
10.06.16
✎
12:32
|
зы. продать тебе синтакс-помощник, чтоль?
|
|||
13
Mikeware
10.06.16
✎
12:39
|
кризис... только предложишь продать - все убегают...
|
|||
14
Маркусс
10.06.16
✎
13:59
|
Правильно понимаю, что конструкцию
|where | Рег.Фирма = :Фирма and Рег.Договор = :Договор надо впихнуть в | $РегистрОстатки.Покупатели(:Позиция~,,Рег.Фирма = :Фирма and Рег.Договор = :Договор) Рег ? |
|||
15
Ёпрст
10.06.16
✎
14:05
|
(14) можно и туда и переделать Рег.Договор.ParentExt.ЮрФизЛицо
и указать измерения и ресурсы в вт |
|||
16
Маркусс
10.06.16
✎
14:12
|
Почему ЮрЛицо в результате пустое?
ТЗ = "select | Рег.Фирма [Фирма $Справочник.Фирмы], | Рег.Договор [Договор $Справочник.Договоры], | СпрКонтры.ID [Контрагент $Справочник.Контрагенты], | СпрЮрЛица.ID [ЮрЛицо $Справочник], | sum(Рег.СуммаВалОстаток) СуммаВал |from | $РегистрОстатки.Покупатели(:Позиция~) Рег | | Left join | | $Справочник.Договоры as СпрДоги On СпрДоги.ID = Рег.Договор | | Left join | | $Справочник.Контрагенты as СпрКонтры On СпрКонтры.ID = СпрДоги.ParentExt | Left join | | $Справочник.ЮрЛица as СпрЮрЛица On СпрЮрЛица.ID = $СпрКонтры.ЮрФизЛицо | |where | Рег.Фирма = :Фирма and Рег.Договор = :Договор |group by | Рег.Фирма, Рег.Договор, СпрКонтры.ID, СпрЮрЛица.ID | "; |
|||
17
Ёпрст
10.06.16
✎
14:12
|
СпрЮрЛица.ID = $СпрКонтры.ЮрФизЛицо
Это не верно |
|||
18
Маркусс
10.06.16
✎
14:13
|
В данном случае Юрлицо это значение из справочника ЮрЛица, а не ФизЛица
|
|||
19
Маркусс
10.06.16
✎
14:13
|
(17) а что не так?
|
|||
20
Ёпрст
10.06.16
✎
14:14
|
ЮрФизЛицо - реквизит неопределенного вида, хранится как строка , 13. нужно либо вид справочника слева прибавить, либо rigt( ,9) справа.
ЗЫ: лучше вид добавить, для гарантии |
|||
21
Маркусс
10.06.16
✎
14:23
|
Так не помогло
| $Справочник.ЮрЛица as СпрЮрЛица On СпрЮрЛица.ID = right($СпрКонтры.ЮрФизЛицо,9) Так ошибка | $Справочник.ЮрЛица as СпрЮрЛица On $Справочник.ЮрЛица.ID = $СпрКонтры.ЮрФизЛицо |
|||
22
Маркусс
10.06.16
✎
14:53
|
Так отработало:
ТЗ = "select | Рег.Фирма [Фирма $Справочник.Фирмы], | Рег.Договор [Договор $Справочник.Договоры], | СпрКонтры.ID [Контрагент $Справочник.Контрагенты], | СпрЮрЛица.ID [ЮрЛицо $Справочник.ЮрЛица], | sum(Рег.СуммаВалОстаток) СуммаВал |from | $РегистрОстатки.Покупатели(:Позиция~) Рег | | Left join | | $Справочник.Договоры as СпрДоги On СпрДоги.ID = Рег.Договор | | Left join | | $Справочник.Контрагенты as СпрКонтры On СпрКонтры.ID = СпрДоги.ParentExt | Left join | | $Справочник.ЮрЛица as СпрЮрЛица On СпрЮрЛица.ID = right($СпрКонтры.ЮрФизЛицо,9) | |where | Рег.Фирма = :Фирма and Рег.Договор = :Договор |group by | Рег.Фирма, Рег.Договор, СпрКонтры.ID, СпрЮрЛица.ID | "; |
|||
23
Mikeware
10.06.16
✎
15:03
|
(22) так вроде это как в (21) вариант 1?
|
|||
24
Маркусс
10.06.16
✎
15:04
|
(23) вид справочника ещё добавил
СпрЮрЛица.ID [ЮрЛицо $Справочник.ЮрЛица], |
|||
25
Mikeware
10.06.16
✎
15:05
|
поставь конструктор заросов от Берездецкого - возможно, будет проще.
Хотя тут мнения расходятся - многие считают, что сначала нужно научится пейсать вручную... |
|||
26
Зая Бусечка
10.06.16
✎
15:08
|
(25) И потом продолжать писать так же. Не опускаясь до всяких мышевозительств
|
|||
27
Ёпрст
10.06.16
✎
15:09
|
$Справочник.ЮрЛица as СпрЮрЛица On СпрЮрЛица.ID = right($СпрКонтры.ЮрФизЛицо,9)
так писать не совсем верно, ибо есть вероятность, что в ЮрФизЛицо торчит Фид лицо, с тем же id, что и в ЮрЛицо лучше $ВидСправочника.ЮрЛица добавить слева (или $ВидСправочника36.ЮрЛица - это trad знает :))) ) |
|||
28
varelchik
10.06.16
✎
15:37
|
(14)Не Рег.Фирма = :Фирма and Рег.Договор = :Договор
а Фирма = :Фирма and Договор = :Договор |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |