Имя: Пароль:
1C
1С v8
Ошибка в запросе
,
0 AnisaL
 
03.03.14
08:45
Доброе утро!
Ошибка в запросе: "Ожидается имя таблицы"
ЛЕВОЕ СОЕДИНЕНИЕ &Agapovka_contract_parameter_type_1 КАК Agapovka_contract_parameter_type_1
1 Wobland
 
03.03.14
08:46
утро доброе!
это просто отлично!
2 ДенисЧ
 
03.03.14
08:46
Это где же Вы, мэм, такую конструкцию вычитали?
Торжественно разрешаю подойти к оному и дать ему в морду лица, а потом плюнуть на труп....
3 dk
 
03.03.14
08:49
(0) делай не через параметры, а через текст запроса
ЛЕВОЕ СОЕДИНЕНИЕ " +Agapovka_contract_parameter_type_1 +" КАК "+Agapovka_contract_parameter_type_1+"
4 Wobland
 
03.03.14
08:49
а я тем временем немного поцитирую типовых

    Запрос.Текст = "
    |ВЫБРАТЬ Спр1.Ссылка КАК Ссылка,
    |Спр1." + ПолучитьЗначениеНастройки("Имя реквизита") + " КАК ЗначениеРеквизита
    |Из Справочник." + мВидОбрабатываемогоСправочника  + " КАК Спр1, Справочник." + мВидОбрабатываемогоСправочника  + " КАК Спр2
    |ГДЕ Спр1." + ПолучитьЗначениеНастройки("Имя реквизита") +  " = Спр2." + ПолучитьЗначениеНастройки("Имя реквизита") +  " И Спр1.Ссылка <> Спр2.Ссылка";
5 AnisaL
 
03.03.14
08:51
(4) я потом эту переменную заменяю через:
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "&contract_parameter_type_1", "ВнешнийИсточникДанных."+Строка(БазаДанных)+".Таблица.contract_parameter_type_1");
6 Wobland
 
03.03.14
08:52
(5) никак не заменяется, да?
7 AnisaL
 
03.03.14
08:53
(6) заменяется , только не (0) м случае, там сразу в конструкторе запроса ругается
8 Wobland
 
03.03.14
08:54
(7) это хорошо или плохо?
9 Starhan
 
03.03.14
08:54
(5) может и эту да не ту...
10 AnisaL
 
03.03.14
08:54
Вообщем решила проблему так:
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            Agapovka_contract_parameter_type_1.cid КАК cid,
        |            Agapovka_contract_parameter_type_1.val КАК val
        |        ИЗ
        |            ВнешнийИсточникДанных.Agapovka.Таблица.contract_parameter_type_1 КАК Agapovka_contract_parameter_type_1
        |        ГДЕ
        |            Agapovka_contract_parameter_type_1.pid = 12) КАК ВложенныйЗапрос1
        |        ПО Agapovka_contract_parameter_type_6.cid = ВложенныйЗапрос1.cid
11 AnisaL
 
03.03.14
08:58
(10) точнее так:
    Запрос.Текст =
        "ВЫБРАТЬ
        |    contract_parameter_type_6.cid,
        |    contract_parameter_type_6.val КАК датавыдачи,
        |    ВложенныйЗапрос1.val КАК номерпаспорта,
        |    ВложенныйЗапрос.val КАК кемвыдан
        |ИЗ
        |    &contract_parameter_type_6 КАК contract_parameter_type_6
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            contract_parameter_type_1.cid КАК cid,
        |            contract_parameter_type_1.val КАК val
        |        ИЗ
        |            &contract_parameter_type_1 КАК contract_parameter_type_1
        |        ГДЕ
        |            contract_parameter_type_1.pid = 12) КАК ВложенныйЗапрос1
        |        ПО contract_parameter_type_6.cid = ВложенныйЗапрос1.cid
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            contract_parameter_type_1.cid КАК cid,
        |            contract_parameter_type_1.val КАК val
        |        ИЗ
        |            &contract_parameter_type_1 КАК contract_parameter_type_1
        |        ГДЕ
        |            contract_parameter_type_1.pid = 14) КАК ВложенныйЗапрос
        |        ПО contract_parameter_type_6.cid = ВложенныйЗапрос.cid
        |ГДЕ
        |    contract_parameter_type_6.pid = 16";
12 Wobland
 
03.03.14
09:00
убери вложенные
13 AnisaL
 
03.03.14
09:00
(12) как?
14 Wobland
 
03.03.14
09:04
"ВЫБРАТЬ
|    contract_parameter_type_6.cid,
|    contract_parameter_type_6.val КАК датавыдачи,
|    ВложенныйЗапрос1.val КАК номерпаспорта,
|    ВложенныйЗапрос.val КАК кемвыдан
|ИЗ
|    &contract_parameter_type_6 КАК contract_parameter_type_6
|        ЛЕВОЕ СОЕДИНЕНИЕ &contract_parameter_type_1 КАК contract_parameter_type_1
|        ПО contract_parameter_type_6.cid = contract_parameter_type_1.cid
|            И contract_parameter_type_1.pid = 12
|        ЛЕВОЕ СОЕДИНЕНИЕ &contract_parameter_type_1 КАК contract_parameter_type_1
|        ПО contract_parameter_type_6.cid = ВложенныйЗапрос.cid
|           И contract_parameter_type_1.pid = 14
|ГДЕ
|    contract_parameter_type_6.pid = 16";
15 AnisaL
 
03.03.14
09:08
(14) {ВнешняяОбработка.КонсольЗапросов_82.МодульОбъекта(89)}: Ошибка при вызове метода контекста (НайтиПараметры): {(8, 26)}: Ожидается имя таблицы
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>&contract_parameter_type_1 КАК contract_parameter_type_1

Такая же ошибка как у меня была
16 AnisaL
 
03.03.14
09:08
(15) + так что без вложенного запроса никак
17 Wobland
 
03.03.14
09:09
всё правильно, так и должно быть при бездумном копировании чужого кода
18 AnisaL
 
03.03.14
09:11
(17) это ты себя упрекаешь?
19 1Сергей
 
03.03.14
09:12
(14) а нельзя было одним левым обойтись?

|        ПО contract_parameter_type_6.cid = contract_parameter_type_1.cid
|            И (contract_parameter_type_1.pid = 12
|            ИЛИ contract_parameter_type_1.pid = 14)
20 Wobland
 
03.03.14
09:13
(18) а вот и нет
(19) а как отличать кемвыдан от датывыдачи? может, и можно, я тут спинным мозгом думаю
21 Wobland
 
03.03.14
09:13
(20) *от номерапаспорта
22 AnisaL
 
03.03.14
09:14
(20) ты же "гуру 1с", я даже не сомневалась что ты можешь ошибиться
23 1Сергей
 
03.03.14
09:15
ну, да...
в (14) дофига ошибок, но в целом, мысля правильная
24 Wobland
 
03.03.14
09:15
(22) я каждый день ошибаюсь, это моя работа
25 1Сергей
 
03.03.14
09:15
(22) он намерено ошибся
26 МОРЖ
 
03.03.14
09:16
(21) Я тебя не понимаю, был вопрос, почему не работает схема А. Ты говоришь: "Ваша схема А гофно, и вообще, где вы... бла бла бла.." и через 10 постов предлагаешь туже схему... Она опять не работает и ты опять бла... бла... Ты зачем сюда пишешь, объясни?
27 Wobland
 
03.03.14
09:17
(25) ну, положим, от ненамеренное невнимательности ;)
28 Wobland
 
03.03.14
09:17
(26) я предлагаю избавиться от двух лишних запросов
29 МОРЖ
 
03.03.14
09:18
(22)попробуйте во временной таблице получить таблицу из переменной и уже в следующем пакете совершить соединение
30 AnisaL
 
03.03.14
09:23
(27) ладно, прощаем) с кем не бывает ;)
31 AnisaL
 
03.03.14
09:24
(29) а использование вложенных запросов не допускается?
32 1Сергей
 
03.03.14
09:25
Кстати, могу ошибаться, но вроде со внешними источниками напрямую нельзя соединяться. Так что, возможно, мы с Wobland не правы. Поправьте нас, если это так
33 Wobland
 
03.03.14
09:26
(32) а что-то было такое, да..
да пофих. в крайнем случае
выбрать что-то извне поместить contract_parameter_type_1;
и т.д.
34 AnisaL
 
03.03.14
09:34
(32) (33)  К сожалению нельзя использовать виртуальные таблицы: выдается ошибка "Получение данных из нескольких источников данных недопустимо"
35 Wobland
 
03.03.14
10:11
припоминаю, как я результат запроса к внешнему источнику грузил в ТЗ, а потом ТЗ отдавал дальше. то ли я был молод, то ли я был молод и столкнулся с магией внешних источников в 1С
36 ДенисЧ
 
03.03.14
10:14
(34) чо??
37 1Сергей
 
03.03.14
10:16
о, питерские гопники подтянулись :)
38 ДенисЧ
 
03.03.14
10:17
(37) Ты, пацанчик, с каковы раёну?
39 Wobland
 
03.03.14
10:25
(38) а ты читать разучился?
40 Feunoir
 
03.03.14
10:28
(0) Кузя? http://ukrmobi.com/uploads/posts/2012-05/kuzya-pavel-volya-oblomis.jpg

Сколько себя помню, из параметров никогда выбирать нельзя было. Только через промежуточную временную таблицу.
41 Wobland
 
06.03.14
17:42
(35) нашёл
Запрос.Текст=ПолучитьТекстЗапроса(); //    FROM ВнешнийИсточникДанных.ТиС.Таблица.dbo__1SJOURN AS ЖурО
ТЗ=Запрос.Выполнить().Выгрузить();
    ТЗ=Запрос.Выполнить().Выгрузить();
    Запрос.Текст=
    "ВЫБРАТЬ
    |ПОМЕСТИТЬ ТЗ
    |ИЗ
    |    &ТЗ КАК ТЗ
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |ИЗ
    |    ТЗ КАК ТЗ
    |
    |СГРУППИРОВАТЬ ПО
    |
    |УПОРЯДОЧИТЬ ПО
    |ИТОГИ
    |ПО
42 Wobland
 
06.03.14
17:43
(41) вроде этоги не не мог посчитать. но, может, и ещё что-то. перекидывал через ТЗ
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой