Имя: Пароль:
1C
1C 7.7
v7: SQLite. Класс ПрямойЗапрос. Ошибка при вставке
, , , ,
0 КонецЦикла
 
19.11.14
12:10
ДБФ, СКЛайт

Поскольку вложенный запрос не работает (?) - решено использовать временную таблицу

Почему простое и другое работает
    |INSERT INTO tmp
    |SELECT '',0

А вот такое - ругается на скобки, скобки правильные, если убрать инсерт - ругани не будет

    |INSERT INTO tmp
    |SELECT SubStr(ОстаткиОсновной.Субконто1, 1, 9)
    |, ОстаткиОсновной.КоличествоОстатокДт
    |FROM $БИОстатки.Основной(
    |,#Счета41
    |,(Номенклатура,МестаХранения)
    |,(Количество)
    |,(SubStr(Субконто2, 1, 9) = :ВыбСклад)) AS ОстаткиОсновной
1 Ёпрст
 
19.11.14
12:11
$БИОстатки. в sqllite ? и давно ?
:))

поди какой нить класс пользуешь ?
2 КонецЦикла
 
19.11.14
12:13
Прямой запрос
Сорри
3 КонецЦикла
 
19.11.14
12:14
Посмотреть во что он разворачивается? Не хотелось бы простыню писать
Какого хрена глючит?
4 КонецЦикла
 
19.11.14
12:15
Изменил название темы
5 Ёпрст
 
19.11.14
12:16
Да.. думаю  проблема будет в развороте
6 КонецЦикла
 
19.11.14
12:16
Как не люблю я ДБФ...
7 Ёпрст
 
19.11.14
12:16
а чего за проблема с вложенным запросом ?
8 КонецЦикла
 
19.11.14
12:19
Да не работает штоле... хотя начиная с какой-то версии вроде работает...
9 КонецЦикла
 
19.11.14
12:20
Пробовал соединять номенклатуру с этой штукой - тоже ругалось, может снова из-за разворота...
10 Ёпрст
 
19.11.14
12:22
https://www.sqlite.org/lang_insert.html

тут полная схема возможного инсерта..

ЗЫ: а какой вложенный запрос не заработал изначально ?
Мот и ну её, временную ?
11 Ёпрст
 
19.11.14
12:32
Лень смотреть, что там с $БИОстатки.

Но вот примитивный пример работает :


//*******************************************
Процедура Сформировать()
    Попытка
        база = СоздатьОбъект("SQLiteBase");
    Исключение
        ЗагрузитьВнешнююКомпоненту("1sqlite.dll");
        база = СоздатьОбъект("SQLiteBase");
    КонецПопытки;
    база.Открыть(":memory:");
    запрос = база.НовыйЗапрос();    
    запрос.ВыполнитьЗапрос("PRAGMA journal_mode = OFF");
    запрос = база.НовыйЗапрос();
    ТекстЗапроса = "
    |Create  table if not EXISTS
    |Табличка (
    |   ИДОбъекта varchar(13) primary key not null,
    |   Наименование TEXT
    |)
    |";
    запрос.ВыполнитьЗапрос(ТекстЗапроса);
    
    ТекстЗапроса = "
    |    INSERT or REPLACE INTO Табличка
    |  --  VALUES ('123','Вася')
    |select id,descr from
    |   [Справочник.Номенклатура]
    |
    |";
    запрос.ВыполнитьЗапрос(ТекстЗапроса);
    ТекстЗапроса = "
    |select * from Табличка";
    
    ТЗ = запрос.ВыполнитьЗапрос(ТекстЗапроса);
    ТЗ.ВыбратьСтроку();
КонецПроцедуры
12 КонецЦикла
 
19.11.14
12:36
Затер...
Во такое набросал, что-то со скобками

    ТекстЗапроса = "
    |SELECT Ном.id as [Номенклатура $Справочник.Номенклатура]
    |FROM Справочник.Номенклатура as Ном
    |LEFT JOIN (
    |SELECT Запрос.nom as nom
    |, Запрос.ost as ost
    |FROM (
    |SELECT SubStr(ОстаткиОсновной.Субконто1, 1, 9) as nom
    |, ОстаткиОсновной.КоличествоОстатокДт as ost
    |FROM $БИОстатки.Основной(
    |,#Счета41
    |,(Номенклатура,МестаХранения)
    |,(Количество)
    |,(SubStr(Субконто2, 1, 9) = :ВыбСклад)) AS ОстаткиОсновной) AS Запрос ON Ном.id = Запрос.nom                
    |";
13 КонецЦикла
 
19.11.14
12:37
Может быть из ТЗ туда зафигачить, во временную да и все...
14 Ёпрст
 
19.11.14
12:38
(12) поправил
    |    ТекстЗапроса = "
    |SELECT Ном.id as [Номенклатура $Справочник.Номенклатура]
    |FROM Справочник.Номенклатура as Ном
    |LEFT JOIN (
    |SELECT Запрос.nom as nom
    |, Запрос.ost as ost
    |FROM (
    |SELECT SubStr(ОстаткиОсновной.Субконто1, 1, 9) as nom
    |, ОстаткиОсновной.КоличествоОстатокДт as ost
    |FROM $БИОстатки.Основной(
    |,#Счета41
    |,(Номенклатура,МестаХранения)
    |,(Количество)
    |,(SubStr(Субконто2, 1, 9) = :ВыбСклад)) AS ОстаткиОсновной)) AS Запрос ON Ном.id = Запрос.nom  


не было скобки правой для лефт джоина
15 Ёпрст
 
19.11.14
12:39
чего, опенконфа нет для подсветки скобочек ?
16 Ёпрст
 
19.11.14
12:39
;)
17 Ёпрст
 
19.11.14
12:40
Или колорер за это отвечает ?
Не помню ужо
18 КонецЦикла
 
19.11.14
12:45
Да, чего-то не было... но так тоже не хочет, видно в другом месте, щас разгребусь с другим буду смотреть
19 КонецЦикла
 
19.11.14
12:46
Спасибо за участие, с меня пиво