|
v7: Прямой запрос. Поиск контрагента по ИНН | ☑ | ||
---|---|---|---|---|
0
Oblako486
09.07.14
✎
15:17
|
|ВЫБРАТЬ
| СпрКонтр.id КАК [впКонтрагент $Справочник.Контрагенты] |ИЗ | $Справочник.Контрагенты КАК СпрКонтр |ГДЕ ((СпрКонтр.IsFolder=2) |И ($СпрКонтр.ЮрФизЛица.ИНН = :впИННКПП)) |"; ошибка: Meta name parser error: неизвестное метаимя или алиас "$SC172" |
|||
1
acsent
09.07.14
✎
15:18
|
через 2 точки нельзя
|
|||
2
Oblako486
09.07.14
✎
15:31
|
(1)
SELECT СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], ЮрФизЛица.ИНН As ИНН FROM $Справочник.Контрагенты As СпрКонтрагенты RIGHT JOIN (SELECT $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, $СпрЮрЛица.ИНН As ИНН FROM $Справочник.ЮрЛица As СпрЮрЛица ГДЕ ($СпрЮрЛица.ИНН = :впИННКПП) UNION SELECT $ВидСправочника36.ФизЛица +СпрФизЛица.ID, $СпрФизЛица.ИНН FROM $Справочник.ФизЛица As СпрФизЛица) As ЮрФизЛица ГДЕ ($СпрФизЛица.ИНН = :впИННКПП) ON ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо, Число БезПодготовки=0) Таже ошибка: Meta name parser error: неизвестное метаимя или алиас "$SC172" |
|||
3
Oblako486
09.07.14
✎
15:34
|
(2) вернее так
|SELECT | СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], | ЮрФизЛица.ИНН As ИНН |FROM | $Справочник.Контрагенты As СпрКонтрагенты |RIGHT JOIN | (SELECT | $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, | $СпрЮрЛица.ИНН As ИНН | FROM | $Справочник.ЮрЛица As СпрЮрЛица | ГДЕ ($СпрЮрЛица.ИНН = :впИННКПП) | UNION | | SELECT | $ВидСправочника36.ФизЛица +СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица As СпрФизЛица) As ЮрФизЛица | ГДЕ ($СпрФизЛица.ИНН = :впИННКПП) |ON | ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо"; ошибка: Meta name parser error: неизвестное метаимя или алиас "$SC172" |
|||
4
mehfk
09.07.14
✎
15:38
|
так делай
| $ВидСправочника36.ФизЛица +СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица As СпрФизЛица |ГДЕ ($СпрФизЛица.ИНН = :впИННКПП) |) As ЮрФизЛица | |
|||
5
Oblako486
09.07.14
✎
15:55
|
(4) Такая же ошибка
|SELECT | СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], | ЮрФизЛица.ИНН As ИНН |FROM | $Справочник.Контрагенты As СпрКонтрагенты |RIGHT JOIN | (SELECT | $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, | $СпрЮрЛица.ИНН As ИНН | FROM | $Справочник.ЮрЛица As СпрЮрЛица | ГДЕ ($СпрЮрЛица.ИНН = :впИННКПП) | UNION | | SELECT | $ВидСправочника36.ФизЛица +СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица As СпрФизЛица | ГДЕ ($СпрФизЛица.ИНН = :впИННКПП) | ) As ЮрФизЛица |ON | ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо"; |
|||
6
Ёпрст
09.07.14
✎
16:03
|
|SELECT
| СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], | ЮрФизЛица.ИНН As ИНН |FROM | $Справочник.Контрагенты As СпрКонтрагенты (nolock) |inner JOIN | (SELECT | $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, | $СпрЮрЛица.ИНН As ИНН | FROM | $Справочник.ЮрЛица As СпрЮрЛица (nolock) | where $СпрЮрЛица.ИНН = :впИННКПП | UNION all | SELECT | $ВидСправочника36.ФизЛица +СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица As СпрФизЛица (nolock) | where $СпрФизЛица.ИНН = :впИННКПП | ) As ЮрФизЛица ON ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо"; |
|||
7
Oblako486
09.07.14
✎
16:08
|
(6) Тоже самое: Meta name parser error: неизвестное метаимя или алиас "$SC172"
а как понять в какой строчке ошибка? |
|||
8
Ёпрст
09.07.14
✎
16:09
|
Запрос.Отладка(1) покажи
|
|||
9
Oblako486
09.07.14
✎
16:19
|
(8) Ошибка: Поле агрегатного объекта не обнаружено (Отладка)
пПрямойЗапрос = СоздатьОбъект("ПрямойЗапрос"); |SELECT | СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], | ЮрФизЛица.ИНН As ИНН |FROM | $Справочник.Контрагенты As СпрКонтрагенты (nolock) |inner JOIN | (SELECT | $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, | $СпрЮрЛица.ИНН As ИНН | FROM | $Справочник.ЮрЛица As СпрЮрЛица (nolock) | where $СпрЮрЛица.ИНН = :впИННКПП | UNION all | SELECT | $ВидСправочника36.ФизЛица +СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица As СпрФизЛица (nolock) | where $СпрФизЛица.ИНН = :впИННКПП | ) As ЮрФизЛица ON ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо"; пПрямойЗапрос.Отладка(1); пПрямойЗапрос.УстановитьТекстовыйПараметр("впИННКПП",впИННКПП); ПрямойЗапрос.УстановитьТекстовыйПараметр(); РезультатКонтрагент = пПрямойЗапрос.Выполнить("ИндексированнаяТаблица",ТекстЗапроса); |
|||
10
Ёпрст
09.07.14
✎
16:25
|
пилять.. я хз, где в этом классе включить отладку - читай доку, мне лень, я им не пользуюсь
|
|||
11
Dolly_EV
09.07.14
✎
16:36
|
(9)
пПрямойЗапрос.РежимОтладки=1 |
|||
12
Chai Nic
09.07.14
✎
16:40
|
Я вообще не понял.. запрос пишется для ODBCRecordSet, а используется класс ПрямойЗапрос. Это по идее разные вещи..
|
|||
13
Dolly_EV
09.07.14
✎
16:43
|
(12) да нормально)) что не распарсилось - как есть передается :-))
пПрямойЗапрос = СоздатьОбъект("ПрямойЗапрос"); |ВЫБРАТЬ | СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], | ЮрФизЛица.ИНН As ИНН |ИЗ | $Справочник.Контрагенты As СпрКонтрагенты (nolock) |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ | :ВидСправочника.ЮрЛица||СпрЮрЛица.ID As Ссылка, | $СпрЮрЛица.ИНН As ИНН | ИЗ | $Справочник.ЮрЛица As СпрЮрЛица (nolock) | ГДЕ $СпрЮрЛица.ИНН = :впИННКПП | ОБЪЕДИНИТЬ | ВЫБРАТЬ | :ВидСправочника.ФизЛица||СпрФизЛица.ID, | $СпрФизЛица.ИНН | ИЗ | $Справочник.ФизЛица As СпрФизЛица (nolock) | ГДЕ $СпрФизЛица.ИНН = :впИННКПП | ) КАК ЮрФизЛица ПО ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо"; пПрямойЗапрос.Отладка(1); пПрямойЗапрос.УстановитьТекстовыйПараметр("впИННКПП",впИННКПП); ПрямойЗапрос.УстановитьТекстовыйПараметр(); РезультатКонтрагент = пПрямойЗапрос.Выполнить(,ТекстЗапроса); |
|||
14
Dolly_EV
09.07.14
✎
16:43
|
пПрямойЗапрос.РежимОтладки=1
|
|||
15
Oblako486
09.07.14
✎
16:49
|
(14)
РежимОтладки: 1 ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения= ВЫБРАТЬ СпрКонтрагенты.ID As [впКонтрагент $Справочник.Контрагенты], ЮрФизЛица.ИНН As ИНН FROM $Справочник.Контрагенты As СпрКонтрагенты (nolock) inner JOIN (SELECT $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, $СпрЮрЛица.ИНН As ИНН FROM $Справочник.ЮрЛица As СпрЮрЛица (nolock) where $СпрЮрЛица.ИНН = :впИННКПП UNION all SELECT $ВидСправочника36.ФизЛица +СпрФизЛица.ID, $СпрФизЛица.ИНН FROM $Справочник.ФизЛица As СпрФизЛица (nolock) where $СпрФизЛица.ИНН = :впИННКПП ) As ЮрФизЛица ON ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо, Число БезПодготовки=0) : Meta name parser error: неизвестное метаимя или алиас "$SC172" ЗапросODBC.ВыполнитьИнструкцию(ТекстЗапроса,ПолучательЗапроса,1); {D:\1с\компания\Classes\ПрямыеЗапросы\ПрямойЗапрос.ert(13485) } |
|||
16
Oblako486
09.07.14
✎
16:51
|
(12) Я тоже не пойму. Но внутри ПрямойЗапрос.ert подключается ODBCRecordSet
|
|||
17
Ёпрст
09.07.14
✎
16:52
|
(15) Эт че ?
|
|||
18
Ёпрст
09.07.14
✎
16:53
|
Ладно, наводящий вопрос, база в дбф ?
в скуле ? |
|||
19
Dolly_EV
09.07.14
✎
16:54
|
(16) так конечно подключается, т.к. ПрямойЗапрос.ert - это класс-обертка, реальный запрос на СКЛе делает ОДБЦ, на ДБФе - СКЛайт
Поменяй на: | :ВидСправочника.ЮрЛица||СпрЮрЛица.ID As Ссылка, | :ВидСправочника.ФизЛица||СпрФизЛица.ID, |
|||
20
Oblako486
09.07.14
✎
17:00
|
(19) таже ошибка
ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения= ВЫБРАТЬ | СпрКонтрагенты.ID As [впКонтрагент |$Справочник.Контрагенты], | ЮрФизЛица.ИНН As ИНН |FROM | $Справочник.Контрагенты As СпрКонтрагенты (nolock) |inner JOIN | (SELECT | :ВидСправочника.ЮрЛица||СпрЮрЛица.ID As Ссылка | $СпрЮрЛица.ИНН As ИНН | FROM | $Справочник.ЮрЛица As СпрЮрЛица (nolock) | where $СпрЮрЛица.ИНН = :впИННКПП | UNION all | SELECT | :ВидСправочника.ФизЛица||СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица As СпрФизЛица (nolock) | where $СпрФизЛица.ИНН = :впИННКПП | ) As ЮрФизЛица ON ЮрФизЛица.Ссылка = |$СпрКонтрагенты.ЮрФизЛицо, Число БезПодготовки=0) : Meta name parser error: неизвестное метаимя или алиас "$SC172" ЗапросODBC.ВыполнитьИнструкцию(ТекстЗапроса,ПолучательЗапроса,1); |
|||
21
Oblako486
09.07.14
✎
17:00
|
(18) SQL
|
|||
22
Ёпрст
09.07.14
✎
17:04
|
(20) ясен пень, левый синтаксис от sqlite
|
|||
23
Ёпрст
09.07.14
✎
17:09
|
(21) теперь делаем так:
Процедура Сформировать() Запрос = СоздатьОбъект("ODBCRecordSet"); ТекстЗапроса=" |SELECT | СпрКонтрагенты.ID [впКонтрагент $Справочник.Контрагенты], | ЮрФизЛица.ИНН ИНН |FROM | $Справочник.Контрагенты СпрКонтрагенты (nolock) |inner JOIN | (SELECT | $ВидСправочника36.ЮрЛица +СпрЮрЛица.ID As Ссылка, | $СпрЮрЛица.ИНН ИНН | FROM | $Справочник.ЮрЛица СпрЮрЛица (nolock) | where $СпрЮрЛица.ИНН = :впИННКПП | UNION all | SELECT | $ВидСправочника36.ФизЛица +СпрФизЛица.ID, | $СпрФизЛица.ИНН | FROM | $Справочник.ФизЛица СпрФизЛица (nolock) | where $СпрФизЛица.ИНН = :впИННКПП | ) As ЮрФизЛица ON ЮрФизЛица.Ссылка = $СпрКонтрагенты.ЮрФизЛицо"; Запрос.УстановитьТекстовыйПараметр("впИННКПП",впИННКПП); Запрос.ВыполнитьИнструкцию(ТекстЗапроса).ВыбратьСтроку(); КонецПроцедуры результаты в студию |
|||
24
Ёпрст
09.07.14
✎
17:09
|
верхнюю | только удали еще
|
|||
25
Dolly_EV
09.07.14
✎
17:23
|
Блин $ лишний... даже специально проверил на ТиСе. Вот так взлетит:
пПрямойЗапрос = СоздатьОбъект("ПрямойЗапрос"); ТекстЗапроса=" |ВЫБРАТЬ | $СпрКонтрагенты.ТекущийЭлемент КАК [впКонтрагент $Справочник.Контрагенты] | ,ЮрФизЛица.ИНН КАК ИНН |ИЗ | Справочник.Контрагенты КАК СпрКонтрагенты $nolock |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ | :ВидСправочника.ЮрЛица||СпрЮрЛица.ID КАК ТекЭлем | ,$СпрЮрЛица.ИНН КАК ИНН | ИЗ | Справочник.ЮрЛица КАК СпрЮрЛица $nolock | ГДЕ $СпрЮрЛица.ИНН = :впИННКПП | ОБЪЕДИНИТЬ | ВЫБРАТЬ | :ВидСправочника.ФизЛица||СпрФизЛица.ID | ,$СпрФизЛица.ИНН | ИЗ | Справочник.ФизЛица КАК СпрФизЛица $nolock | ГДЕ $СпрФизЛица.ИНН = :впИННКПП | ) КАК ЮрФизЛица ПО ЮрФизЛица.ТекЭлем = $СпрКонтрагенты.ЮрФизЛицо"; пПрямойЗапрос.РежимОтладки=1; пПрямойЗапрос.УстановитьТекстовыйПараметр("впИННКПП",СокрП(впИННКПП)); РезультатКонтрагент = пПрямойЗапрос.Выполнить(,ТекстЗапроса); |
|||
26
Dolly_EV
09.07.14
✎
17:37
|
+(25) готовый пример:
http://www.webfile.ru/ea54ac6027e5781f25310e41f4d9f03d |
|||
27
Ёпрст
09.07.14
✎
17:43
|
(25) врят ли это будет работать в sql
|
|||
28
Dolly_EV
09.07.14
✎
17:47
|
(27) нету ТиСа в СКЛе, но на ДБФ (26) работает
|
|||
29
Oblako486
10.07.14
✎
11:17
|
(25) взлетело
(26) пример пригодился (27) запускаю в ТиСе на SQL-ой базе (23) не пробовал |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |