Имя: Пароль:
1C
1С v8
Содержимое объекта данных может быть выбрано только во временную таблицу
0 K1RSAN
 
14.02.20
12:34
ВТФ? В общем, не могу понять, почему запрос не хочет выполняться...
Ругается на первую часть запроса, НО ТАМ И ТАК ВО ВРЕМЕННУЮ ТАБЛИЦУ записывает, а оттуда уже дальше идет. Причем, если оставить в запросе одну таблицу без объединения - то всё нормально проходит. Так и должно быть?

    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    Товары.СуммаСНДС КАК СуммаСНДС,
    |    Товары.Отменено КАК Отменено
    |ПОМЕСТИТЬ
    |    Товары
    |ИЗ
    |    &Товары КАК Товары
    |Объединить все     
    |ВЫБРАТЬ
    |    Работы.Номенклатура ,
    |    Работы.СуммаСНДС ,
    |    Работы.Отменено
    |ИЗ
    |    &Работы КАК Работы
    |;
    |ВЫБРАТЬ
    |    ЕСТЬNULL(СУММА(Товары.СуммаСНДС),0) КАК СуммаСНДС
    |ИЗ
    |    Товары КАК Товары
    |ГДЕ
    |    НЕ Товары.Отменено
    |    И (((Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
    |            ИЛИ (НЕ &ВернутьМногооборотнуюТару) ИЛИ &ТребуетсяЗалогЗаТару)
    |            И НЕ &ТолькоЗалогЗаТару)
    |        ИЛИ (Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
    |            И &ВернутьМногооборотнуюТару
    |            И &ТребуетсяЗалогЗаТару
    |            И &ТолькоЗалогЗаТару))
    |");


В итоге переделал так

    Запрос = Новый Запрос("ВЫБРАТЬ
                          |    Товары.Номенклатура КАК Номенклатура,
                          |    Товары.СуммаСНДС КАК СуммаСНДС,
                          |    Товары.Отменено КАК Отменено
                          |ПОМЕСТИТЬ Товары1
                          |ИЗ
                          |    &Товары КАК Товары
                          |;
                          |
                          |////////////////////////////////////////////////////////////////////////////////
                          |ВЫБРАТЬ
                          |    Работы.Номенклатура КАК Номенклатура,
                          |    Работы.СуммаСНДС КАК СуммаСНДС,
                          |    Работы.Отменено КАК Отменено
                          |ПОМЕСТИТЬ Работы
                          |ИЗ
                          |    &Работы КАК Работы
                          |;
                          |
                          |////////////////////////////////////////////////////////////////////////////////
                          |ВЫБРАТЬ
                          |    Товары.Номенклатура КАК Номенклатура,
                          |    Товары.СуммаСНДС КАК СуммаСНДС,
                          |    Товары.Отменено КАК Отменено
                          |ПОМЕСТИТЬ Товары
                          |ИЗ
                          |    Товары1 КАК Товары
                          |
                          |ОБЪЕДИНИТЬ ВСЕ
                          |
                          |ВЫБРАТЬ
                          |    Работы.Номенклатура,
                          |    Работы.СуммаСНДС,
                          |    Работы.Отменено
                          |ИЗ
                          |    Работы КАК Работы;
    |ВЫБРАТЬ
    |    ЕСТЬNULL(СУММА(Товары.СуммаСНДС),0) КАК СуммаСНДС
    |ИЗ
    |    Товары КАК Товары
    |ГДЕ
    |    НЕ Товары.Отменено
    |    И (((Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
    |            ИЛИ (НЕ &ВернутьМногооборотнуюТару) ИЛИ &ТребуетсяЗалогЗаТару)
    |            И НЕ &ТолькоЗалогЗаТару)
    |        ИЛИ (Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
    |            И &ВернутьМногооборотнуюТару
    |            И &ТребуетсяЗалогЗаТару
    |            И &ТолькоЗалогЗаТару))
    |");

Ошибку не выдало... ВТФ?
1 ДенисЧ
 
14.02.20
12:35
Разбивай запрос на два.
2 lodger
 
14.02.20
12:38
(0) |ПОМЕСТИТЬ
    |    Товары
    |ИЗ
    |    &Товары КАК Товары

разные имена дай. там 3 разные таблицы. ТЗ, Таб и ВТ.
3 K1RSAN
 
14.02.20
12:38
(1) Ну я в итоге разбил на 2 части запроса - отдельно для работ, отдельно для товаров. Но ошибка смущает
4 K1RSAN
 
14.02.20
12:39
(2) Так не должно быть ошибки - Помещается во временную таблицу, а &Товары - переменная.
5 dmpl
 
14.02.20
12:40
(0) Так и должно быть. 1 временная таблица - 1 объект.
6 catena
 
14.02.20
12:42
(3)Из справки:

"Предложение ПОМЕСТИТЬ
Если временная таблица создается на основании внешнего источника, в запросе нельзя использовать объединения и соединения. А также нельзя использовать поля, являющиеся реквизитами полей таблиц, на основании которых создается временная таблица.

"
7 K1RSAN
 
14.02.20
12:44
(6) Спасибо