При выборе данных из объекта в запросе не могут присутствовать соединения и объединения

1. Gok9 15.12.22 20:01 Сейчас в теме
Здравствуйте, поможете написать запрос, мне надо выбрать из таблица значений все поля, выполнить запрос и выгрузить
При выполнение запроса выдал такую ошибку "При выборе данных из объекта в запросе не могут присутствовать соединения и объединения" как исправить ошибку?


ТЗ = ПреобразованиеДинамическогоСпискаВТаблицуЗначений();
   
    Запрос = Новый Запрос;
    Запрос.Текст =
    
    " //ВЫБРАТЬ
    | //ТЗ.Цена КАК Цена
    |
    |
    |
    |
    |
    |
    |//ПОМЕСТИТЬ ТЗ
    |
    |//ИЗ
    |// &ТЗ КАК ТЗ
    |//;
    |
    |///////////////////////////////////////////////////////////
    |ВЫБРАТЬ ПЕРВЫЕ 50 
    |   Номенклатура.Ссылка КАК Номенклатура,
    |    Номенклатура.Родитель КАК Родитель,
    |    Номенклатура.Наименование КАК Наименование,
    |  
    |    
    |
    |    ВЫБОР
    |        КОГДА Номенклатура.Ссылка.Родитель = &ПустойРодитель
    |            ТОГДА 0
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 1
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 2
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 3
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 4
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 5
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 6
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 7
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 8
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 9
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 10
    |    КОНЕЦ КАК Уровень,
    |    Номенклатура.ЭтоГруппа КАК ЭтоГруппа, 
    |    ТЗ.Цена КАК Цена
    |ПОМЕСТИТЬ ТЗ   
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура,
    |   &ТЗ КАК ТЗ
    |
    |УПОРЯДОЧИТЬ ПО
    |    ЭтоГруппа УБЫВ,
    |    Наименование";
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.УстановитьПараметр("ПустойРодитель", Справочники.Номенклатура.ПустаяСсылка());
Показать


Ошибка при вызове метода контекста (Выполнить)
{Обработка.РабочееМестоКассира.Форма.ФормаРМК.Форма(170)}:ТЗНоменклатура4.Загрузить(Запрос.Выполнить().Выгрузить());

по причине:
При выборе данных из объекта в запросе не могут присутствовать соединения и объединения

Здесь не выдал ошибку но колонку цена не выгрузил при запросе, понимая делаю неправильно поэтому могу застрять помогите
ТЗ = ПреобразованиеДинамическогоСпискаВТаблицуЗначений();
   
    Запрос = Новый Запрос;
    Запрос.Текст =
    
    "ВЫБРАТЬ
    | ТЗ.Цена КАК Цена
    |
    |
    |
    |
    |
    |
    |ПОМЕСТИТЬ ТЗ
    |
    |ИЗ
    | &ТЗ КАК ТЗ
    |;
    |
    |///////////////////////////////////////////////////////////
    |ВЫБРАТЬ 
    |   Номенклатура.Ссылка КАК Номенклатура,
    |    Номенклатура.Родитель КАК Родитель,
    |    Номенклатура.Наименование КАК Наименование,
    |  
    |    
    |
    |    ВЫБОР
    |        КОГДА Номенклатура.Ссылка.Родитель = &ПустойРодитель
    |            ТОГДА 0
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 1
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 2
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 3
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 4
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 5
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 6
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 7
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 8
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 9
    |        КОГДА Номенклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
    |            ТОГДА 10
    |    КОНЕЦ КАК Уровень,
    |    Номенклатура.ЭтоГруппа КАК ЭтоГруппа 
    |    //ТЗ.Цена КАК Цена
    |//ПОМЕСТИТЬ ТЗ   
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |   //&ТЗ КАК ТЗ
    |ОБЪЕДЕНИТЬ ВСЕ
    |УПОРЯДОЧИТЬ ПО
    |    ЭтоГруппа УБЫВ,
    |    Наименование";
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.УстановитьПараметр("ПустойРодитель", Справочники.Номенклатура.ПустаяСсылка());
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Zevzm 15.12.22 21:15 Сейчас в теме
(1)Так не проще будет?
СправочникСсылка.<Имя справочника> (CatalogRef.<Catalog name>)
Уровень (Level)
Синтаксис:
Уровень()
Возвращаемое значение:
Тип: Число.
Уровень элемента справочника.
4. Gok9 16.12.22 05:12 Сейчас в теме
(3) Мне надо данные с таблицы значении выбрать, все данные с таблицы, обработать и выгрузить обратно в таблицу
Прикрепленные файлы:
5. glek 119 16.12.22 07:45 Сейчас в теме
(4) Во первых, при первом обращении к ТЗ надо поместить во временную таблицу. А потом уже обрабатывать.
По второму вообще не понял, откуда там цена должна взяться.
6. glek 119 16.12.22 07:48 Сейчас в теме
(1) И да. Вообще непонятно, по какому принципу здесь выводится цена...
Она одна на всех?
7. Gok9 16.12.22 12:08 Сейчас в теме
(5) Вот сама таблица, как из него запросом получить все данные обработать и обратно выгрузить?
Прикрепленные файлы:
8. DBV 16.12.22 12:26 Сейчас в теме
(1)
ОБЪЕДЕНИТЬ ВСЕ

Что за объединение без второй таблицы? И пишется ОБЪЕДИНИТЬ
но колонку цена не выгрузил при запросе

Ну конечно, где там поле цена?
//ТЗ.Цена КАК Цена


Что-то типа такого
ВЫБРАТЬ 
    Тз.Номенклатура КАК Номенклатура,
    Тз.Цена КАК Цена
ПОМЕСТИТЬ ВтТз
    ИЗ &Тз КАК Тз
;

//////////////////////////////////
ВЫБРАТЬ
    Тз.Номенклатура КАК Номенклатура,
    Тз.Цена КАК Цена,
    СпрНоменклатура.Родитель КАК Родитель
Из
    ВтТЗ КАК Тз
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
        ПО Тз.Номенклатура = СпрНоменклатура.Ссылка
Показать
9. Gok9 16.12.22 13:48 Сейчас в теме
(8) Где ошибаюсь, подскажите пожалуйста?
 ТЗ = ПреобразованиеДинамическогоСпискаВТаблицуЗначений();
            // ТЗ = ПреобразованиеДинамическогоСпискаВТаблицуЗначений();
      ДобавляемыеРеквизиты = Новый Массив;
     УдаляемыеРеквизиты = Новый Массив; 
     //Получаем уже созданную на форме Таблицу значений 1С 
     ИмяТФ = "ТЗНоменклатура5";  
     ТаблицаФормы = РеквизитФормыВЗначение("ТЗНоменклатура5");  

     Для Каждого ТекКолонка из ТаблицаФормы.Колонки Цикл
     УдаляемыеРеквизиты.Добавить("ТЗНоменклатура5"+ "." + ТекКолонка.Имя);
     КонецЦикла;

     Для Каждого ТекКолонка из ТЗ.Колонки Цикл
     ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ТекКолонка.Имя, ТекКолонка.ТипЗначения, ИмяТФ));
     КонецЦикла;

     //Добавим новые, удалим старые колонки
     ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
     // Поместим значение в реквизит формы 1С
     ЗначениеВРеквизитФормы(ТЗ, ИмяТФ);
    // ТЗ =  ТЗНоменклатура5;
    
     Запрос = Новый Запрос;
     МенеджерВТ = Новый МенеджерВременныхТаблиц;
     Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
     
     Запрос.Текст =
     "ВЫБРАТЬ 
     | ТЗ.Номенклатура КАК Номенклатура,
     | ТЗ.Цена КАК Цена
     | ПОМЕСТИТЬ ВтТз
     | ИЗ &ТЗ КАК ТЗ
     |  ;
     |
     |   //////////////////////////////////
     |  ВЫБРАТЬ
     |  СпрНоменклатура.Ссылка КАК Ссылка,
     |  //СпрНоменклатура.Родитель КАК Родитель,
     |   СпрНоменклатура.Код КАК Код,
     |   СпрНоменклатура.Наименование КАК Наименование,
     |   СпрНоменклатура.Артикул КАК Артикул,
     |   СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
     |   СпрНоменклатура.ОсобенностьУчета КАК ОсобенностьУчета,
     |  // СпрНоменклатура.Организация КАК Организация,
     |  ТЗ.Номенклатура КАК Номенклатура,
     |  ТЗ.Цена КАК Цена,
     |  СпрНоменклатура.Родитель КАК Родитель,
     |  СпрНоменклатура.Организация КАК Организация,
     |   ВЫБОР  
     |        КОГДА СпрНоменклатура.Ссылка.Родитель = &ПустойРодитель
     |            ТОГДА 0
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 1
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 2
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 3
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 4
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 5
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 6
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 7
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 8
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 9
     |        КОГДА СпрНоменклатура.Ссылка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = &ПустойРодитель
     |            ТОГДА 10
     |    КОНЕЦ КАК Уровень,
     |    СпрНоменклатура.ЭтоГруппа КАК ЭтоГруппа
     |
     | Из
     |  ВтТЗ КАК ТЗ
     |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
     |    ПО Тз.Номенклатура = СпрНоменклатура.Ссылка
     | УПОРЯДОЧИТЬ ПО
     |    ЭтоГруппа УБЫВ,
     |   Наименование";
     Запрос.УстановитьПараметр("ТЗ", ТЗ);
     Запрос.УстановитьПараметр("ПустойРодитель", Справочники.Номенклатура.ПустаяСсылка());
     ТЗНоменклатура5.Загрузить(Запрос.Выполнить().Выгрузить());

Показать


Сформировался 2 пакета запроса, после выполнения запроса половины данных нет, прикрепил скрины, остальные поля не выбирает со справочника
Прикрепленные файлы:
10. DBV 16.12.22 13:59 Сейчас в теме
(9) судя по сообщению (7) в ТЗ не заполнена колонка Номенклатура, естественно, что при соединении ничего не получает из справочника

покажите значения колонки Номенклатура в исходной таблице
2. пользователь 15.12.22 20:27
Сообщение было скрыто модератором.
...
11. soft_wind 16.12.22 14:05 Сейчас в теме
а какие вы хотите данные получить, когда их не почему искать?
в ответе (7) вы показали картинку со значениями таблицы
там нет ни Артикула, ни Наименования и колонка Номенклатура похоже тоже пустая!

только цена, шт. и прочее по этим данным не получить номенклатуру!!!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот