Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: ВыполнитьSQL_ИзТЗ Недопустимое имя объекта

v7: ВыполнитьSQL_ИзТЗ Недопустимое имя объекта
Я
   OnePrg
 
30.09.21 - 06:59
RS.Выполнить("DROP TEMPORARY TABLE IF EXISTS tmp_table;");
    RS.Выполнить("CREATE TEMPORARY TABLE tmp_table(КодИБ str, Склад int)");
    RS.ДобПараметр(1,14,3,0);
    RS.ДобПараметр(1, 4,3,0);
    RS.Подготовить("
      |insert into tmp_table(КодИБ, Склад)
      |values(?, ?)");
    RS.ВыполнитьSQL_ИзТЗ(тбСклады);

При выполнении ругается
RS.ВыполнитьSQL_ИзТЗ(тбСклады);
Недопустимое имя объекта "tmp_table".
   Volodja
 
1 - 30.09.21 - 07:45
Что есть -  тбСклады ?
   DrZombi
 
2 - 30.09.21 - 07:57
(0) Некогда не нравилась эта приблуда в 1С++...
Лучше выполни это все обычными методами :)
   DrZombi
 
3 - 30.09.21 - 07:57
+(2) Я про "ВыполнитьSQL_ИзТЗ"... странное оно... непонятное :)
   OnePrg
 
4 - 30.09.21 - 08:41
(1)
    Если тбСклады.КоличествоСтрок() = 0 Тогда
        тбСклады.НоваяКолонка("КодИБ");
        тбСклады.НоваяКолонка("Склад");
    КонецЕсли;
    Пользователи         = СоздатьОбъект("Справочник.Пользователи");
    Пользователи.ВыбратьЭлементы();
    Пока Пользователи.ПолучитьЭлемент() = 1 Цикл
        Если Найти(Пользователи,"Кассир")<>0 Тогда
            КодИб = СтрЗаменить(СокрЛП(Пользователи.Наименование),"Кассир","");
            тбСклады.НоваяСтрока();
            тбСклады.КодИБ = КодИБ;
            тбСклады.Склад = Пользователи.СкладМагазина.Код;
        КонецЕсли;
    КонецЦикла;
   OnePrg
 
5 - 30.09.21 - 08:42
(2) Например?
   Volodja
 
6 - 30.09.21 - 10:39
(0) А что мешает сразу к Справочник.Пользователи Select применить с JOIN-ом Склады ?
Зачем виртуальную таблицу создавать?
   OnePrg
 
7 - 01.10.21 - 06:37
Получилось
    RS = СоздатьОбъект("ODBCRecordset"); 
    RS.ВыполнитьСкалярный("
          |IF OBJECT_ID('tempdb..#ТаблВрем', 'U') IS NOT NULL
          |  DROP TABLE #ТаблВрем;
          |CREATE TABLE #ТаблВрем (КодИБ Char(3),Склад int);");
    RS.Подготовить("
      |insert into #ТаблВрем(КодИБ, Склад)
      |values(?, ?)");
    RS.ВыполнитьSQL_ИзТЗ(тбСклады);

Когда заполнял таблицу тбСклады, то поле Склад заполнял как СкладМагазина.Код. Поле Склад временной таблицы при этом не заполнялось - было пустое, хотя тип кода число длинной 3. Заменил на тбСклады.Склад = Число(СкладМагазина.Код) - стала заполняться.
   Злопчинский
 
8 - 01.10.21 - 06:39
(7) "хотя тип кода число длинной 3."
в базе код все равно строка
   OnePrg
 
9 - 01.10.21 - 09:02
(8) понял, спасибо.
   trad
 
10 - 01.10.21 - 09:09
у тебя в (0) синтаксис MySQL, а в (7) - t-sql
   pechkin
 
11 - 01.10.21 - 09:18
Ну так поэтому и не работало

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.