Имя: Пароль:
1C
1С v8
Левое соединение двух временных таблиц пустые данные в колонках
, ,
0 DEVIce
 
05.09.22
08:42
1. Все делаю не так, сам дурак. 100% (1)
2. Все делаю так, фигня какая-то 0% (0)
Всего мнений: 1

Есть простейший запрос:
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    ВЫРАЗИТЬ(ТаблицаТовары.No КАК СТРОКА(100)) КАК Хрю,
|    *
|ПОМЕСТИТЬ ВТ_ТаблицаТовары
|ИЗ
|    &тзТовары КАК ТаблицаТовары
|;
|
|///////////////////////////////
|ВЫБРАТЬ
|    *
|ПОМЕСТИТЬ ВТ_ТаблицаОстаткиЦены
|ИЗ
|    &тзОстаткиЦены КАК ТаблицаОстаткиЦены
|;
|
|///////////////////////////////
|ВЫБРАТЬ ПЕРВЫЕ 20000
|    ТаблицаТовары.*,
|    ТаблицаОстаткиЦены.*
|ИЗ
|    ВТ_ТаблицаТовары КАК ТаблицаТовары
|    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ТаблицаОстаткиЦены КАК ТаблицаОстаткиЦены ПО
|        ВЫРАЗИТЬ(ТаблицаОстаткиЦены.No КАК СТРОКА(100)) = ВЫРАЗИТЬ(ТаблицаТовары.No КАК СТРОКА(100))
|";
Запрос.УстановитьПараметр("тзТовары", тзТовары);
Запрос.УстановитьПараметр("тзОстаткиЦены", тзОстаткиЦены);
    
РезультатЗапроса = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
    
тз_1 = РезультатЗапроса[0].Выгрузить();
тз_2 = РезультатЗапроса[1].Выгрузить();
тз_3 = РезультатЗапроса[2].Выгрузить();

Но выдает он странный результат. В тз_1 и тз_2 данные аналогичные переданным ТЗ, в тз_3 ожидаю тз_1 с присоединенными колонками из тз_2. Но по факту получаю декартово произведение, да еще во всех строках значения пустые, т.е. или пустые строки или 0 (там где числа). Колонка Хрю и ограничение в 20000 строк, исключительно для отладки.
Что я делаю не так?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн