Имя: Пароль:
1C
1C 7.7
v7: 1СPP получение документа по значению поля в шапке документа.
, ,
0 Владимир1С
 
28.11.16
17:01
Здравчтвуйте. Не получается задать условие , пишет

Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'from'.

айдишник - число.

        Айдишник = ТЕ.АйДиНаСайте;
    
        Запрос=СоздатьОбъект("ODBCRecordset");
        
        ТЗ="
        |select
        |    ДокИЗ.ID as [Дк $Документ.ИнтернетЗаказ],
        |
        |from
        |    $Документ.ИнтернетЗаказ as ДокИЗ
        |where
        |    $ДокИЗ.ИДнаСайте = Айдишник";
        

Помогите , пожалуйста, разобраться.
1 Cool_Profi
 
28.11.16
17:02
Запрос.Отладка(1);

и покажи результирующий запрос
2 Владимир1С
 
28.11.16
17:07
ТЗ = "select    ДокИЗ.ID as [Дк $Документ.ИнтернетЗаказ],from    $Документ.ИнтернетЗаказ as ДокИЗwhere    $ДокИЗ.ИДнаСайте = Айдишник"

Вроде вместо Айдишник должно уходить число, так? что то я не понял, число то где?
3 Cool_Profi
 
28.11.16
17:11
(2) Или в строку запроса его плюсуй, или параметром передавай
4 Владимир1С
 
28.11.16
17:13
Хорошо, число как ынутрь плюсануть : не строка же? со строкой понятно, а с числом как?
5 Владимир1С
 
28.11.16
17:14
ДокИЗ.ИДнаСайте число(19)
6 Cool_Profi
 
28.11.16
17:15
(4) ТЗ="
        |select
        |    ДокИЗ.ID as [Дк $Документ.ИнтернетЗаказ],
        |
        |from
        |    $Документ.ИнтернетЗаказ as ДокИЗ
        |where
        |    $ДокИЗ.ИДнаСайте = " + 123456789;
7 Владимир1С
 
28.11.16
17:16
+ это указание на тип - число, я правильно понял?
8 Cool_Profi
 
28.11.16
17:18
(7) Я тебя не понял вообще. Так что тебе легче, ты хоть как-то понял...
9 Владимир1С
 
28.11.16
17:20
сегодня первый раз на 1СРР пишу запрос.
10 PRO100 NigGaZ
 
28.11.16
17:22
(9) $ДокИЗ.ИДнаСайте = :Айдишник";
рс.УстановитьТекстовыйПараметр("Айдишник", intID);
может так?
11 Владимир1С
 
28.11.16
17:23
щас ...
12 Вафель
 
28.11.16
17:25
запятая же перед фром
13 Cool_Profi
 
28.11.16
17:27
(12) +1
14 Владимир1С
 
28.11.16
17:27
Запятой уже нет
15 Владимир1С
 
28.11.16
17:37
Заработало:

    ТЕ.ВыбратьСтроки(); инд = 0; клвСтрок = ТЕ.КоличествоСтрок();
    Пока ТЕ.ПолучитьСтроку() = 1 Цикл инд = инд+1;
        стрАйдишников = стрАйдишников+?( инд = клвСтрок ,")",",");    
        //КонецЦикла;
    
        Айдишник = ТЕ.АйДиНаСайте;
    
        Запрос=СоздатьОбъект("ODBCRecordset");
        
        ТЗ="
        |select
        |    ДокИЗ.IDDoc as [Дк $Документ.ИнтернетЗаказ]
        |from
        |    $Документ.ИнтернетЗаказ as ДокИЗ
        |where
        |    $ДокИЗ.ИДнаСайте = :Айдишник";
        
        Запрос.УстановитьТекстовыйПараметр("Айдишник",Айдишник);
        
        //Запрос.УстПараметр("Айдишник", intID);
        
        ТабЗнач=Запрос.ВыполнитьИнструкцию(ТЗ);
        Если ТабЗнач.КоличествоСтрок()>0 Тогда
            Рез=ТабЗнач;
        КонецЕсли;

        Сообщить( Рез.ПолучитьЗначение(1,1) );
        
    КонецЦикла;    
    
    Рез.ВыбратьСтроку( ," ИнетЗаказы из базы "  );

Большое спасибо всем за помощь!
16 Вафель
 
28.11.16
17:44
есть метод ВыполнитьСкалярно
17 Cool_Profi
 
28.11.16
17:45
(16) А если у него больше одного документа?
18 Владимир1С
 
28.11.16
18:05
(17)Табличку переберу.
Не нашёл, как скормить ему списокЗначений, числа, не строки. Вообще есть такое?
19 Владимир1С
 
29.11.16
09:06
Прошу прощения, есть один маленький вопросик.
А всё-таки, каким способом передать в запрос параметр - список значений, по хорошему, кроме текстовой строки-дополнения в сам запрос? Метод может есть какой? Искал, не нашёл. Подскажите? То, что вхождение левым соединением отрабатывается, это знаю.
20 Cool_Profi
 
29.11.16
09:09
(19) УложитьСписокЗначений(), если у тебя ссылки.
Или напихивание во временную таблицу и join с ней
21 Владимир1С
 
29.11.16
09:10
(20) спасибо, за временную таблицу.
22 Salimbek
 
29.11.16
10:30
(19) Воспользуйся этим: http://www.1cpp.ru/forum/YaBB.pl?num=1170322440/7#7
23 Владимир1С
 
29.11.16
11:04
(22) Спасибо!