Имя: Пароль:
1C
1С v8
Связь в запросе более 2-ух таблиц
, ,
0 lirt82
 
23.01.17
17:20
Всем привет, объясните схему связи в запросе нескольких таблиц (более двух). Для примера есть 4 регистра A, B, C, D у всех общее измерение Номенклатура. Нам нужно получить остаток по каждому из 4, при чем регистр А - главный (на него накладываем параметр Дата и Склад) т.е. как правильно связать А и В, А и С, А и D. Если выбираю в одном запросе все 4 таблицы и на закладке Связи соединяю по Номенклатуре то выходит ошибка если связал А и В, и потом пытаюсь связать А и С, выдается ошибка "Противоречивая связь #1", как правильно привязать к главному регистру А , остальные 3 (В,С,D)?
1 Fragster
 
гуру
23.01.17
17:24
2 Джинн
 
23.01.17
17:26
Если данные независимы, то только Объединить Все. Иначе левым/правым/внутренним соединением обрежете данные.

Но задача какая-то странная.
3 Ёпрст
 
23.01.17
17:26
если остаток по каждому, то union all
4 Живой Ископаемый
 
23.01.17
17:29
подтверждаю, лучше объединить а потом сгруппировать по нужному измерению.
5 Господин ПЖ
 
23.01.17
17:30
только декарт, только хардкор
6 runoff_runoff
 
23.01.17
17:31
full join еще есть..
7 lirt82
 
23.01.17
17:33
(2) (4) понял, спасибо
8 mkalimulin
 
23.01.17
17:34
(0) С типовым конструктором запроса действительно тяжело работать. Соединяешь все три таблицы (B,C,D) с А. Как ты и написал.
На самом деле разработчики перемудрили. Таблицы связываются со всеми предыдущими. Зачем указывать связь таблицы с таблицей - загадка. В альтернативном конструкторе http://catalog.mista.ru/public/569569/ такого нет.

Что конкретно у тебя не получается - можно, конечно, разобраться. Но проще всего или написать текст руками

ИЗ А
ЛЕВОЕ СОЕДИНЕНИЕ B
ПО а.номенклатура=в.номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ С
ПО а.номенклатура=с.номенклатура
и т.д.

или воспользоваться альтернативным конструктором.
9 Fragster
 
гуру
23.01.17
17:43
(8) с типовым конструктором работать нормально, если есть понимание, что такое join, и как он работает
10 mkalimulin
 
23.01.17
17:51
(9) Я всего лишь заметил, что установка связей в типовом конструкторе кривая. А с пониманием можно и вообще без конструктора работать.
11 aleks_default
 
23.01.17
17:53
(9) кроме того который в тонком клиенте
12 mkalimulin
 
23.01.17
18:14
(9) И если уж быть точным. Как раз понимание того, как работает join и заставляет всякий раз спотыкаться на закладке связей в типовом запросе. Вот я соединяю три таблицы А,В и С. Я то знаю, что таблица C соединяется не с А и не с В, а с обоими таблицами сразу. Но конструктор требует от меня непонятного я должен указать с какой конкретно таблицей соединяется С. Зачем надо было так делать? Ради того, чтобы заменить слова левое, правое, полное на галочки справа-слева? По мне, так очень неудачное решение. В конструкторе JUG все гораздо логичнее и естественнее.
13 HardBall
 
23.01.17
18:59
(8) Брехня
14 HardBall
 
23.01.17
19:00
Не понятно где ТС откопал проблему.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.