Имя: Пароль:
1C
1С v8
Соединение Наборов Данных в СКД
0 timgan
 
15.10.15
12:02
1. НаборДанных1

|ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент
|ИЗ
| Справочник.Контрагенты КАК Контрагенты


2. НаборДанных2

|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар,
| Номенклатура.ОсновнойПоставщик КАК ОсновнойПоставщик
|ИЗ
| Справочник.Номенклатура КАК Номенклатура

ОсновнойПоставщик - тип: Справочники.Контрагенты

НаборДанных1
ЛЕВОЕ СОЕДИНЕНИЕ НаборДанных2
ПО НаборДанных1.Контрагент = НаборДанных2.ОсновнойПоставщик

1. Если группировать по Контрагенту, то будет Левое Соединение
2. Если группировать по ОсновномуПоставщику, тоже будет Левое Соединение, несмотря то, что в Результате Компоновки (Табличном документе) мы наблюдаем Внутреннее Соединение, но
в Консоле системы компоновки данных в сформированном Макете Компоновщиком макета на закладке "Макет для табличного документа XML" между тегами: <dataSetLink> нет описания <linkType>Inner</linkType>,

тогда можно предположить, что на уровне Процессора Вывода происходит "игнорирование" Полей группировки с типом NULL зависимого Набора Данных  
(при этом в зависимом наборе НабореДанных2 по полю ОсновнойПоставщик  чекбокс "Игнорировать значения NULL" не взведен в указании Роль)

Есть мнение, что если группировать по ОсновномуПоставщику, то будет ВнутренеееСоединение?
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=643601

Все таки Левое или Внутреннее?
1 timgan
 
15.10.15
13:11
up
2 Cyberhawk
 
15.10.15
13:17
В СКД для наборов всегда левое
3 Сторно абсурда
 
15.10.15
13:24
написано ведь "Если в группировке используются наборы данных из нескольких наборов данных, при исполнении компоновки будет осуществляться обход по последнему зависимому набору данных. "
4 Сторно абсурда
 
15.10.15
13:25
Поэтому {езультате Компоновки (Табличном документе) мы наблюдаем Внутреннее Соединение}
5 timgan
 
15.10.15
13:34
(4) Почему тогда в Макете нет указания на Внутреннее Соединение?
6 timgan
 
15.10.15
13:34
(2) При глобальном отборе - Внутренне
7 Cyberhawk
 
15.10.15
13:37
(6) А какой отбор можно считать глобальным?
Для простоты: у первого набора СКД 2 поля, у второго навбора СКД 2 поля, соединение по одному общему полю.
Глобальным отбором будет отбор по вот этому вот полю?
8 timgan
 
15.10.15
13:55
(7) Глобальный отбор - это отбор на уровне Отчет на закладке "Настройки", если сделать отбор на ЛЮБОЕ поле из зависимого набора данных (второй набор СКД 2 поля - на любое из этих полей), то соединение будет Внутренним.
9 Сторно абсурда
 
15.10.15
14:01
(6) видимо такая особенность реализации
10 timgan
 
15.10.15
14:19
(9) Особенность? В Запросах также.
11 mikecool
 
15.10.15
14:21
(2) обещались же в каком то релизе сделать настройку вида
12 aleks_default
 
15.10.15
14:35
в чем вопрос-то?
13 timgan
 
15.10.15
14:42
(12) Все таки Левое или Внутреннее?
14 Сторно абсурда
 
15.10.15
14:45
(10) Что также?
В запросах нет макетов компоновки
15 Сторно абсурда
 
15.10.15
14:46
Особенность имею ввиду в том, что в макете не пишется Внутреннее, по факту результат как внутренне выглядит
16 timgan
 
15.10.15
14:55
(15)
ИЗ
   Таблица1
           ЛЕВОЕ СОЕДИНЕНИЕ Таблица2
           ПО Таблица1.Поле = Таблица2.Поле
ГДЕ
   Таблица2.Поле = Условие

тогда: ВНУТРЕННЕЕ СОЕДИНЕНИЕ
17 timgan
 
15.10.15
14:57
(15)
Мне почему-то кажется по другому, что соединение Левое, а на уровне Процессора Вывода отбрасываются записи.