|
Полное соединение таблиц в СКД | ☑ | ||
---|---|---|---|---|
0
extrim-style
30.01.12
✎
12:34
|
Отчет на скд. Есть 2 таблицы. Необходимо их полное соединение по одному из полей. Добавил их как источники данных. А теперь как связать? Через НаборДанных-Объединение?
|
|||
1
Wobland
30.01.12
✎
12:36
|
объединение объединяет, соединение соединяет. через внешний источник, может?
|
|||
2
Wobland
30.01.12
✎
12:36
|
или всё в один запрос запихать
|
|||
3
extrim-style
30.01.12
✎
12:39
|
(1) Нужно полное соединение. То есть наборами данных, это я неправильно?
|
|||
4
extrim-style
30.01.12
✎
12:40
|
Может проще это полное соединение в коде сделать через запрос? А результат в СКД уже передавать? Просто подумалось, что в СКД должно быть проще.
|
|||
5
Wobland
30.01.12
✎
12:41
|
>в коде сделать через запрос
можно и не в коде... |
|||
6
extrim-style
30.01.12
✎
12:43
|
(5) а как мне таблицы тогда в СКД передавать?
|
|||
7
extrim-style
30.01.12
✎
12:45
|
а всё понял, кажись
|
|||
8
extrim-style
30.01.12
✎
12:59
|
добавляю таблицы как источники данных, а потом выбираю в запросе их во временные таблицы, так?
|
|||
9
extrim-style
30.01.12
✎
14:13
|
(5) а как в СКД это сделать?
|
|||
10
extrim-style
30.01.12
✎
14:26
|
Выбрал 2 таблицы в скд как 2 источника данных. Как теперь их обработать в запросе СКД?
|
|||
11
Wobland
30.01.12
✎
14:30
|
я предлагал один источник со своим соединением забабашить
|
|||
12
extrim-style
30.01.12
✎
14:32
|
(11) я имел ввиду не 2 источника, а 2 набора, конечно
|
|||
13
Wobland
30.01.12
✎
14:33
|
(12) значит, я один набор предлагал ;)
|
|||
14
extrim-style
30.01.12
✎
14:34
|
(13) как это? как передать 2 таблицы в один набор?
|
|||
15
Wobland
30.01.12
✎
14:35
|
(14) я ж не вижу, что у тебя там. один запрос сделать можешь?
|
|||
16
extrim-style
30.01.12
✎
14:39
|
ну я начал делать как в (8), 2 таблицы как 2 набора данных и 3-й набор запрос, в котором выбираю эти таблицы во временные
|
|||
17
extrim-style
30.01.12
✎
14:41
|
+(16) тока не получается так
|
|||
18
1nf
30.01.12
✎
14:41
|
Автор, а чем тебя не устраивает набор данных - запрос, и в нем соединение как тебе угодно любых таблиц?
|
|||
19
extrim-style
30.01.12
✎
14:42
|
(15) да что там смотреть. В коде есть 2 таблицы. Я их передаю в скд, как 2 набора данных. Дальше - как сделать их полное соединение?
|
|||
20
extrim-style
30.01.12
✎
14:42
|
(18) как таблицы передать в скд? как наборы данных?
|
|||
21
1nf
30.01.12
✎
14:47
|
таблицы откуда берешь?
|
|||
22
extrim-style
30.01.12
✎
14:52
|
(21) из кода. сложный алгоритм
|
|||
23
extrim-style
30.01.12
✎
14:53
|
+(22) это я к тому, что нельзя их запросом сразу
|
|||
24
Wobland
30.01.12
✎
14:58
|
выбрать * из тз1 полное соединение тз2? будет одна таблица
|
|||
25
extrim-style
30.01.12
✎
15:02
|
Вот так делал:
ВЫБРАТЬ ТЗ.СтатьяЗатрат КАК СтатьяЗатрат, ТЗ.Количество КАК Количество, ТЗ.Сумма КАК Сумма, ТЗ.ЦентрЗатрат КАК ЦентрЗатрат, ТЗ.Контрагент КАК Контрагент ПОМЕСТИТЬ ТаблТз ИЗ СписокСтатей КАК ТЗ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЗ2.СтатьяЗатрат КАК СтатьяЗатрат, ТЗ2.Количество КАК Количество, ТЗ2.Сумма КАК Сумма, ТЗ2.ЦентрЗатрат КАК ЦентрЗатрат, ТЗ2.Контрагент КАК Контрагент ПОМЕСТИТЬ ТаблТз2 ИЗ СписокСтатей2 КАК ТЗ2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблТз.СтатьяЗатрат, ТаблТз.Количество, ТаблТз.Сумма, ТаблТз.ЦентрЗатрат, ТаблТз.Контрагент, ТаблТз2.СтатьяЗатрат КАК СтатьяЗатрат2, ТаблТз2.Количество КАК Количество2, ТаблТз2.Сумма КАК Сумма2, ТаблТз2.ЦентрЗатрат КАК ЦентрЗатрат2, ТаблТз2.Контрагент КАК Контрагент2 ПОМЕСТИТЬ СоединениеСтатей ИЗ ТаблТз КАК ТаблТз ПОЛНОЕ СОЕДИНЕНИЕ ТаблТз2 КАК ТаблТз2 ПО ТаблТз.СтатьяЗатрат = ТаблТз2.СтатьяЗатрат ; Где СписокСтатей и СписокСтатей2 - имя объекта, содержащего данные, для каждого набора данных. Ругается - "{(9, 2)}: Таблица не найдена "СписокСтатей" <<?>>СписокСтатей КАК ТЗ". И непосредственно к НаборуДанных.ЛюбоеПоле не могу обратиться. |
|||
26
extrim-style
30.01.12
✎
15:15
|
ЧЯДНТ?
|
|||
27
extrim-style
30.01.12
✎
15:21
|
Может таблицу в качестве параметра надо передавать?
|
|||
28
extrim-style
30.01.12
✎
15:54
|
Сделал (25) просто в коде, а не в СКД. Пишет "Ошибка при вызове метода контекста (Выполнить): {(2, 2)}: Тип не может быть выбран в запросе
<<?>>ТЗ.СтатьяЗатрат КАК СтатьяЗатрат, ТЗСтатей = Запрос.Выполнить().Выгрузить();" |
|||
29
extrim-style
30.01.12
✎
16:12
|
Хелп!
|
|||
30
extrim-style
30.01.12
✎
16:27
|
Простой вопрос. Подскажите, как в общем случае сделать в СКД полное соединение 2 таблиц, взятых из кода?
|
|||
31
extrim-style
30.01.12
✎
16:35
|
Помогите кто-нибудь. Вопрос вроде простой...
|
|||
32
mozzga
30.01.12
✎
16:39
|
первые два запроса делай с объединением и кадай в ВТ, а потом ВТ вяжи
|
|||
33
extrim-style
30.01.12
✎
16:41
|
(32) всмысле сделать объединение из 2-х НаборовДанных-таблиц? А потом ВТ из него? Правильно я понял?
|
|||
34
extrim-style
30.01.12
✎
16:43
|
+(33) а зачем мне их объединять?
|
|||
35
viktor_vv
30.01.12
✎
16:45
|
(28) Колонки таблицы значений типизированные должны быть.
|
|||
36
extrim-style
30.01.12
✎
17:01
|
(35) упс. действительно типизация потерялась) спс
а как в скд сделать полное соединение 2-х таблиц из кода не подскажешь? |
|||
37
viktor_vv
30.01.12
✎
17:08
|
Насчет полного не знаю. Но курить в сторону
Набор данных - Объект. Потом объединение наборов данных, хотя оно скорее на левое соединение смахивает. |
|||
38
fisher
30.01.12
✎
17:20
|
(0) Источники в СКД только ЛЕВЫМ соединением соединяются (неявно). Т.е. в разные наборы данных ты их зря загружаешь. Проще всего отработать эмуляцию полного соединения таблиц в коде, а результирующую таблицу уже в СКД загружать для вывода.
|
|||
39
fisher
30.01.12
✎
17:22
|
(38) + Или загрузить обе таблицы во временные, сделать полное соединение запросом, получить результат в таблицу и уже её грузить в СКД.
|
|||
40
extrim-style
30.01.12
✎
18:38
|
(38) 2 разные таблицы можно загрузить только в 2 разных набора данных. Да, объединение - только левое (или внутреннее).
Чем проще? - если в (39) по сути тоже самое только в скд. Если тоже самое, то лучше бы это в СКД сделать. (39) что-то не воткну. вот я, допустим, загрузил одну таблицу в НаборДанных1. Имя объекта, содержащего данные - СтатьиЗатрат. НаборДанных2 - запрос. Как мне в нем обращаться к загруженной таблице? Так, как в (25) не получается. У Хрусталевой не нашел. В описаниях 1С вапще ниочем. |
|||
41
Wobland
30.01.12
✎
18:43
|
(40) я тут многое пропустил, похоже, но (38) - это о том, что я имел в виду изначально.
можешь же в СКД грузить одну-единственную ТЗ? вот и сделай эту ТЗ результатом полного соединения |
|||
42
extrim-style
30.01.12
✎
18:54
|
(41) ну а непосредственно в СКД что полное соединение нельзя реализовать? Я загрузил таблицу в набор. Что мне теперь из неё только поля можно выбрать? А обращаться из другого набора нельзя к ней? Так как в (25)?
|
|||
43
Wobland
30.01.12
✎
18:59
|
(42) отвечу на первый вопрос. СКД умеет только слева. по природе своей
|
|||
44
extrim-style
30.01.12
✎
19:04
|
(43) а как же ПОЛНОЕ СОЕДИНЕНИЕ в запросе?
|
|||
45
Wobland
30.01.12
✎
19:07
|
(44) умеет только левое со своими наборам данных. всю ветку пытаюсь объяснить тебе, что засунь ты своё соединение в запрос и отдай СКД. спасибо фишеру, думал, я сам не понимаю чего-то.
|
|||
46
shuhard
30.01.12
✎
19:09
|
(44) в запросе с полным соединением всё ОК
|
|||
47
extrim-style
30.01.12
✎
19:11
|
(46) ну вот, а как мне к загруженной таблице обращаться через запрос (из другого набора данных)?
|
|||
48
shuhard
30.01.12
✎
19:15
|
(47) см (45)
|
|||
49
fisher
30.01.12
✎
19:50
|
(47) Никак. Запросы - это одно. Они почти один к одному СУБД выполняются. А соединение наборов данных в СКД - это уже другое. Это уже личное шаманство СКД с результатирующими данными наборов. Поэтому прямые параллели по функционалу проводить нельзя.
|
|||
50
extrim-style
30.01.12
✎
20:08
|
(49) жаль. На всякий случай прошелся еще по курсу скд от spec8 - всё так.
Значит остаётся только соединять в коде, а потом отправлять в СКД. Всем спасибо за помощь! |
|||
51
Wobland
30.01.12
✎
20:30
|
(50) алилуйя! не поленился просмотреть ветку и поискать (2)
|
|||
52
extrim-style
30.01.12
✎
21:29
|
(51) =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |