Имя: Пароль:
1C
1С v8
Соединение двух ТЧ из одного документа
0 Nic1
 
10.12.12
00:24
Наблюдаю интересный эффект в запросе, не пойму, то ли глюк, то ли чего-то не понимаю.

Есть документ с двумя табличными частями. В первой ТЧ одна строка. Во второй ТЧ например 5 строк, в которых по некоторому реквизиту имеется соответствие строке из первой ТЧ.

Ну то есть как-то так:
Строка 1 - Строка из первой ТЧ
Строка 2 - Строка из первой ТЧ
Строка 3 - Строка из первой ТЧ
Строка 4 - Строка из первой ТЧ
Строка 5 - Строка из первой ТЧ

Так вот, когда делаю левое соединение первой ТЧ со второй ТЧ по реквизиту соответствия, в итоге получаю 10 строк, т.е. строки второй ТЧ присоединились 2 раза. Когда в условие соединения добавляю соедиение по ссылке, т.е. ТЧ1.Ссылка=ТЧ2.Ссылка, то все нормально, получаю 5 строк.

Тест провожу на платформе 8.1. Может глюк? Или есть какая-то особенность при соединении табличных частей из одного и того же докумета?
1 zak555
 
10.12.12
00:29
какой смысл разделять данные по разным ТЧ, если в них идентичные данные ?*
2 Нуф-Нуф
 
10.12.12
00:29
Запрос покажешь? Не?
3 Prikum
 
10.12.12
00:32
(2) Зачем?
4 France
 
10.12.12
00:33
(3) ищет "Или" в условиях
5 Нуф-Нуф
 
10.12.12
00:33
(3) так, чиста поржать
6 Prikum
 
10.12.12
00:34
(5) Если поржать, тогда да, пусть выкладывает
7 Nic1
 
10.12.12
00:34
(2)

         ВЫБРАТЬ
       ОказаниеУслугТабличнаяЧасть1.Услуга,
       ОказаниеУслугМатериалы.Материал
   ИЗ
       Документ.ОказаниеУслуг.ТабличнаяЧасть1 КАК ОказаниеУслугТабличнаяЧасть1
           ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОказаниеУслуг.Материалы КАК ОказаниеУслугМатериалы
           ПО ОказаниеУслугТабличнаяЧасть1.Услуга = ОказаниеУслугМатериалы.ПоУслуге
               //И ОказаниеУслугТабличнаяЧасть1.Ссылка = УслугиМатериалы.Ссылка
   ГДЕ
       ОказаниеУслугТабличнаяЧасть1.Ссылка=&ссылка
8 France
 
10.12.12
00:35
отсутствие желаний учится - может и повод для ржаки..
а вот поиск истины - наврядли..
9 sanja26
 
10.12.12
00:36
ОказаниеУслугТабличнаяЧасть1.Услуга,
убери
10 Nic1
 
10.12.12
00:36
(7) В таком виде дает в 2 раза больше строк чем надо. Если добавить условие "И ОказаниеУслугТабличнаяЧасть1.Ссылка = ОказаниеУслугМатериалы.Ссылка", то все о.к.
11 Prikum
 
10.12.12
00:37
(9) Что то поменяется?
(7) По документу кто связывать будет?
12 sanja26
 
10.12.12
00:37
(11) вообще-то должно, т.к. данные только из одной ТЧ потянутся
13 Prikum
 
10.12.12
00:38
(10) прочитайте (8) внимательно
(12) с какого перепуга?
14 Nic1
 
10.12.12
00:39
(11) ага, идею понял, я же во второй ТЧ не указал условие на ссылку и в соединении ее тоже нет, поэтому результаты могут быть непредсказуемыми))
15 Nic1
 
10.12.12
00:40
Вот и дошли совместными усилиями до истины, а то уж весь извелся что за хрень))
Независимо от того, куда вы едете — это в гору и против ветра!