|
2 таблицы значений в одном запросе. | ☑ | ||
---|---|---|---|---|
0
yyyuuu
23.01.19
✎
07:39
|
Здравствуйте Друзья.
Хочу поместить две таблицы значений в 1 запрос. Ну а там обработать так как мне надо. Подскажите пожалуйста что не так. Потому что, делая любое соеденение оно не работает вообще. То есть. В 1 таблице 22 значения во второй 5, Я их хочу соеденить по левой. То есть с лева все, в шо справа не подошло по Нул. Но почему то Нулов вообще нету, и значений стало 27. В чем дело не понимаю. // Таблица = Новый ТаблицаЗначений; // Таблица.Колонки.Добавить("Паспорт", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,0))); Таблица.Колонки.Добавить("Резервуар", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,0))); Таблица.Колонки.Добавить("Товар", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(200))); // Таблица1 = Новый ТаблицаЗначений; Таблица1.Колонки.Добавить("Грузополучатель", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(200))); Таблица1.Колонки.Добавить("Груз", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(200))); // ВыбранныйДок = Налив; //** НомерДокумента = Налив.Номер; Попытка //** НужныйДокумент = Документы.Налив.НайтиПоНомеру(НомерДокумента); Сообщить("Найеден"); //** Исключение //** Сообщить(ОписаниеОшибки()); //** КонецПопытки; //**Из табличной части " Вагоны" Документ "Налив" Для Каждого Строка Из НужныйДокумент.Вагоны Цикл//Налив.Вагоны Цикл // //Пишем строку Стр = Таблица.Добавить(); Стр.Товар = Строка.ВидТоплива; Стр.Паспорт = Строка.Паспорт; Стр.Резервуар = Строка.Резервуар; // КонецЦикла; // Для Каждого Строка1 Из НужныйДокумент.Накладные Цикл // Стр1 = Таблица1.Добавить(); Стр1.Грузополучатель = Строка1.Грузополучатель; Стр1.Груз = Строка1.Груз; // КонецЦикла; // //СтрокаБезГрузополучателя = Таблица.НайтиСтроки(Новый Структура("Грузополучатель", "")); //Для Каждого СтрокаТаблицы Из СтрокаБезГрузополучателя Цикл // Таблица.Удалить(СтрокаТаблицы); //КонецЦикла; Сообщить("Конец"); //** //============================================================================== Запрос = Новый Запрос; МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; // Запрос.УстановитьПараметр("Налив", Таблица ); Запрос.УстановитьПараметр("Накладные", Таблица1); // //============================================================== //** Запрос.Текст = "ВЫБРАТЬ | Налив.Паспорт, | Налив.Резервуар, | Налив.Товар |ПОМЕСТИТЬ ВремТаб |ИЗ | &Налив КАК Налив |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Накладные.Груз, | Накладные.Грузополучатель |ПОМЕСТИТЬ ВремТаб2 |ИЗ | &Накладные КАК Накладные |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремТаб.Паспорт, | ВремТаб.Резервуар, | ВремТаб.Товар КАК Товар, | ВремТаб2.Груз, | ВремТаб2.Грузополучатель |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ ВремТаб2 КАК ВремТаб2 | ПО ВремТаб.Товар = ВремТаб2.Груз"; РезультатЗапроса = Запрос.Выполнить(); ТабЗн = РезультатЗапроса.Выгрузить(); //=================================================================== |
|||
1
yyyuuu
23.01.19
✎
07:42
|
Может Я как то не так делаю
|
|||
2
Ordnung
23.01.19
✎
07:44
|
Ессно, не так, у тебя вместо объединения идёт выборка разных полей из таблиц.
|
|||
3
yyyuuu
23.01.19
✎
07:46
|
Тогда как мне сделать правильно, Я прям запутался что то. Вроде все как по учебнику, а оказывается выборка разных полей идет)
|
|||
4
Ordnung
23.01.19
✎
07:46
|
Убери из финального запроса ВремТаб2.Груз
|
|||
5
yyyuuu
23.01.19
✎
07:50
|
(4) Все ровно не оно, так и отработало
|
|||
6
catena
23.01.19
✎
07:50
|
В какой из времтаб 5, в какой 22?
|
|||
7
yyyuuu
23.01.19
✎
07:51
|
Как и до этого
|
|||
8
yyyuuu
23.01.19
✎
07:51
|
Запрос.УстановитьПараметр("Налив", Таблица ); = 22
Запрос.УстановитьПараметр("Накладные", Таблица1); = 5 |
|||
9
yyyuuu
23.01.19
✎
07:52
|
В итоге получаю 27 почему, вообще не понимаю
|
|||
10
Ordnung
23.01.19
✎
07:52
|
У тебя точно груз и товар одного типа значений?
|
|||
11
Альбатрос
23.01.19
✎
07:53
|
(9) Покажи таблицы скрином. И первую и вторую
|
|||
12
Ordnung
23.01.19
✎
07:53
|
+(10) А, это строки. Пробелов никаких там нет лишних в этих строках?
|
|||
13
catena
23.01.19
✎
07:53
|
(8)Правая таблица идет целиком. Поменяйте в соединении их местами.
|
|||
14
yyyuuu
23.01.19
✎
07:54
|
Таблица1.Колонки.Добавить("Груз", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(200)));
Таблица.Колонки.Добавить("Товар", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(200))); |
|||
15
Альбатрос
23.01.19
✎
07:54
|
Сдается мне у тебя во второй что-то типа:
Груз1 - грузополучатель1 Груз1 - Грузополучатель2 |
|||
16
yyyuuu
23.01.19
✎
07:57
|
||||
17
yyyuuu
23.01.19
✎
07:59
|
(13) не уверен что поможет но попробовал, и не помогло)
|
|||
18
arsik
гуру
23.01.19
✎
07:59
|
(16) ну все правильно. У тебя "Регулярка чтьот там" - 2 раза соединяется. Итого + 5 строк, т.к. в первой ТЗ у тебя их по этому товару 5
|
|||
19
yyyuuu
23.01.19
✎
07:59
|
(12) не пробелов ничего, как будто не соеденяет а просто обьеденил, и подставил соотвествия сам)
|
|||
20
yyyuuu
23.01.19
✎
08:01
|
(18) так в чем все дело)
|
|||
21
arsik
гуру
23.01.19
✎
08:03
|
(20) Тебе нужно почитать про соединения в запросах
https://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-soedineniya |
|||
22
yyyuuu
23.01.19
✎
08:06
|
Все спасибо, сейчас гляну.
Только Я понять не могу какое соединение не делал, результат один и тоже всегда |
|||
23
arsik
гуру
23.01.19
✎
08:09
|
(22) Для примера попробуй во второй таблице оставить строку только "БГС-Л". Все понятно станет.
|
|||
24
yyyuuu
24.01.19
✎
01:59
|
Друзья, Я думал соеденения работаю так. Пример левое. Все с левой с правой только по условию. Но Я понять не могу, почему появляются лишние записи еще 5. Я думал в 22 моих поставит соотвествие и все. Запутался немного
|
|||
25
yyyuuu
24.01.19
✎
02:00
|
(23) попробую) Думаю натолкнет на мысли)
|
|||
26
Fram
24.01.19
✎
02:01
|
(24) а если справился по условию более одной записи соответствует?
|
|||
27
Fram
24.01.19
✎
02:02
|
*справился=справа
|
|||
28
yyyuuu
24.01.19
✎
02:04
|
(26) У меня все подходят по условию, Я понять не могу откуда еще 5 добавились. Вот тут прям сижу и понять не могу. Сейчас рисовать буду)
|
|||
29
yyyuuu
24.01.19
✎
02:13
|
(23)Заменил во второй на "бгс-л"
Получилось 44 записи. [url=https://radikal.ru/big/kvjnlbwxa1nax][img]https://c.radikal.ru/c30/1901/a0/c474f1cade4ft.jpg[/img][/url] Ну и соотвествие подставил только по найденой то есть все одинаковое вышло. Если записи 22 откуда взялись еще 22?) Что то сам дойти не могу) |
|||
30
Fram
24.01.19
✎
02:17
|
Ещё раз (26) прочитай
|
|||
31
yyyuuu
24.01.19
✎
02:20
|
Понял, для кажлдой записи из первой таблицы делает 5 запсей из второй потому что подошло
|
|||
32
Fram
24.01.19
✎
02:30
|
(31) держи конфетку )
|
|||
33
yyyuuu
25.01.19
✎
02:26
|
В общем немного по думал, по копался. В итоге сделал все одним запросом а дальше нужное только загрузил в таблицу значений и с соеденением разобрался, нарисовал карнтинку по ней посмотрел все и понял - Да действительно разобрался)
|
|||
34
yyyuuu
25.01.19
✎
02:26
|
Всем спасибо, помогли ребят)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |