|
v7: прямые запросы 1с++. Неизвестное метаимя или алиас | ☑ | ||
---|---|---|---|---|
0
patapum
18.06.15
✎
16:45
|
Продолжаю ковырять прямые запросы. Пишу следующий запрос, глядя на примеры в интернете, кажется, что все должно работать. Выдает ошибку. Подскажите, в чем не прав?
Запрос: СкриптSQL = "SELECT |$ПеревозчикиСальдо.КредДокумент as [КредДокумент $Документ.Перевозка], |$ПеревозчикиСальдо.СуммаОстаток as СальдоПеревозчика |FROM $РегистрОстатки.Перевозчики(,,, (КредДокумент), (Сумма) ) as ПеревозчикиСальдо |"; Ошибка: Meta name parser error: неизвестное метаимя или алиас "$ПеревозчикиСальдо" |
|||
1
akaBrr
18.06.15
✎
16:55
|
$ не надо
|
|||
2
Serginio1
18.06.15
✎
16:55
|
Пользуйся консолью.
Убери $ ПеревозчикиСальдо.СуммаОстаток |
|||
3
patapum
18.06.15
✎
16:57
|
(1), (2) спасибо! и правда, в примерах без $, не заметил. убрал, все норм.
да, $ вообще пора отменить!!! :))) |
|||
4
Serginio1
18.06.15
✎
17:03
|
(3) http://www.1cpp.ru/forum/YaBB.pl?num=1332077808/4#4
Вообще есть конструктор запросов. Есть консоль запросов http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/ |
|||
5
Эльниньо
26.06.15
✎
12:13
|
Памажите, плз
ТекстЗапроса = " |SELECT |right(Рег.ПозицияДокумента,9) as [Док $Документ], |Рег.ВидДокумента as Док_вид, |Рег.Товар as [Товар $Справочник.Номенклатура], |Рег.СуммаПродажиОборот СуммаП, |FROM $РегистрОбороты.Продажи(:НачДата,:КонДата~, Документ) as Рег Как вытянуть из Док реквизит? Чую, что джойн там чего-то, но нуб |
|||
6
Ёпрст
26.06.15
✎
12:18
|
(5) лефт джоин $документ.вася as вася он вася.iddoc = right(Рег.ПозицияДокумента,9)
|
|||
7
Ёпрст
26.06.15
✎
12:18
|
ну и в селекте $вася.реквизит as реквизит
|
|||
8
Ёпрст
26.06.15
✎
12:20
|
если доков много, то либо джойнить со всеми и в селекте писать
select coalesce ($Вася.Реквизит,$Федя.Реквизит,....,$Наташа.Реквизит) как Реквизит или соединение с подзапросом, в котором через юнион объединить нужные виды доков |
|||
9
ЧеловекДуши
26.06.15
✎
12:35
|
(0) >>> $ПеревозчикиСальдо
С каких это пор 1С++ может так работать?... Хотя мне никогда не нравилось такая самодеятельность от разработчиков 1С++, Решал проблему нормального писания запроса, без использования "оптимизаторов" кода от 1С++ :) |
|||
10
Эльниньо
26.06.15
✎
12:38
|
|LEFT JOIN $Документ.Фирма as Фирма (nolock) on Фирма.IDdoc = right(Рег.ПозицияДокумента,9)
Meta name parser error: объект не найден "$Документ.Фирма" |
|||
11
Абыр
26.06.15
✎
12:41
|
(10) "Фирма" - идентификатор документа или идентификатор реквизита документа?
|
|||
12
Mikeware
26.06.15
✎
12:42
|
(10) Фирма - в журнале, а не в докумете
Журнал.$ОбщийРеквизит.Фирма |
|||
13
ЧеловекДуши
26.06.15
✎
12:43
|
(10) Если Фирма общий реквизит, то это еще нечего не значит, что он доступен в общем журнале, как реквизит :)
|
|||
14
ЧеловекДуши
26.06.15
✎
12:43
|
(12) Не для всех :)
|
|||
15
Mikeware
26.06.15
✎
12:45
|
(14) не для всех.
Но скорее всего для него именно так. Хотя с учетом LEFT JOIN $Документ.Фирма.... |
|||
16
Абыр
26.06.15
✎
12:48
|
(10), если "Фирма" - это общий реквизит с флажком "Отбор" в пофигураторе, то джойни рег с журналом.
Если просто реквизит или общий без отбора, то (6), (7), (8) |
|||
17
Эльниньо
26.06.15
✎
12:55
|
Фирма - общий реквизит
Хрен с ней фирмой. Её полюбасу в измерение добавить надо. Та же ошибка с реквизитом шапки |LEFT JOIN $Документ.ПризнакНакладной as Признак (nolock) on Признак.IDdoc = right(Рег.ПозицияДокумента,9) ПризнакНакладной - перечисление |
|||
18
Serginio1
26.06.15
✎
12:55
|
(5) Case When Рег.ВидДокумента=$ВидДокумента.ТвойДокумент
Либо Джойны но что бы лишний раз не лезть в поис с условием ОN (Рег.ВидДокумента=$ВидДокумента.ТвойДокумент) And ( вася.iddoc = right(Рег.ПозицияДокумента,9)) |
|||
19
Mikeware
26.06.15
✎
12:58
|
(17) |LEFT JOIN $Документ.Накладная
|
|||
20
Serginio1
26.06.15
✎
13:00
|
18+ Select ЧтоТоТам From $Документ.ПризнакНакладной as Признак (nolock) on Признак.IDdoc = right(Рег.ПозицияДокумента,9)
|
|||
21
Mikeware
26.06.15
✎
13:01
|
(20) лучше $Документ.ПРИЗРАК_НАКЛАДНОЙ!
|
|||
22
Абыр
26.06.15
✎
13:56
|
(17)
SELECT ...все, что надо из регистров..., $Ипполит.ПризнакНакладной FROM $РегистрОбороты.Продажи(:НачДата,:КонДата~, Документ) as Рег LEFT JOIN $Документ.ИдентификаторДокументаКРеквизитуКоторогоХочешьОбратиться as Ипполит ON Ипполит.IDDOC = right(Рег.ПозицияДокумента,9) |
|||
23
Эльниньо
26.06.15
✎
14:38
|
(22) В запросе будет 2 вида дока с реквизитом ПризнакНакладной
|
|||
24
Ёпрст
26.06.15
✎
14:44
|
(23) от ты ленивый
select ...все, что надо из регистров..., coalesce($Вася.ПризнакНакладной,$Федя.ПризнакНакладной,$Наташа.ПризнакНакладной) ПризнакНакладной FROM $РегистрОбороты.Продажи(:НачДата,:КонДата~, Документ) as Рег left join $Документ.Вася as Вася (nolock) on Вася.iddoc = right(Рег.ПозицияДокумента,9)left join left join $Документ.Федя as Федя (nolock) on Федя .iddoc = right(Рег.ПозицияДокумента,9)left join left join $Документ.Наташа as Наташа (nolock) on Наташа .iddoc = right(Рег.ПозицияДокумента,9) |
|||
25
Ёпрст
26.06.15
✎
14:45
|
ну там, синтаксис поправь (копипасте же)
|
|||
26
Эльниньо
26.06.15
✎
15:22
|
|Рег.КолвоБазОборот Количество,
|$ПоследнееЗначение.Номенклатура.МатрицаНов(Рег.Товар,:КонДата) Матр, |$ПоследнееЗначение.Номенклатура.МатрицаМаг(Рег.Товар,:КонДата) Фокус, |coalesce($Вася.ПризнакНакладной,$Федя.ПризнакНакладной) ПризнакНакладной |FROM $РегистрОбороты.Продажи(:НачДата,:КонДата~, Документ) as Рег |LEFT JOIN $Справочник.Номенклатура Номенклатура (nolock) on Номенклатура.id = Рег.Товар |LEFT JOIN $Документ.РасходнаяНакладная as Вася (nolock) on Вася.iddoc = right(Рег.ПозицияДокумента,9) |LEFT JOIN $Документ.РасходнаяНакладнаяБ as Федя (nolock) on Федя.iddoc = right(Рег.ПозицияДокумента,9) |WHERE (ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа) and (1=1) and (2=2) and (3=3) and (4=4)"; Invalid column name 'ПризнакНакладной' |
|||
27
Ёпрст
26.06.15
✎
15:25
|
(26)
//|WHERE (ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа) and (1=1) and (2=2) and (3=3) and (4=4)"; |WHERE (coalesce($Вася.ПризнакНакладной,$Федя.ПризнакНакладной) = :ВыбПризнак) and (1=1) and (2=2) and (3=3) and (4=4)"; |
|||
28
Ёпрст
26.06.15
✎
15:26
|
Запрос.УстановитьТекстовыйпараметр("ВыбПризнак",Перечисление.ПризнРасхНакл.Продажа);
|
|||
29
Ёпрст
26.06.15
✎
15:28
|
или так
|WHERE (coalesce($Вася.ПризнакНакладной,$Федя.ПризнакНакладной) = $Перечисление.ПризнРасхНакл.Продажа) and (1=1) and (2=2) and (3=3) and (4=4)"; |
|||
30
Ёпрст
26.06.15
✎
15:28
|
подзабывать я стал синтаксис ужо
|
|||
31
Mikeware
26.06.15
✎
15:35
|
(29) так
|
|||
32
Эльниньо
26.06.15
✎
15:40
|
Домучил!
Всем Спасибо! Ёпрсту слава! |
|||
33
trad
26.06.15
✎
15:41
|
(9) в 1с++ есть оптимизатор кода?
просвети, плиз |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |