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

Содержимое объекта данных может быть выбрано только во временную таблицу

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

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


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

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

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

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

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

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

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