Имя: Пароль:
1C
1С v8
Табличные части в запросе
0 foxey
 
10.10.08
14:31
Как в запросе обратиться к реквизитам документа из разных табличных частей. Например, есть Документ, у него две табличные ТЧ1 и ТЧ2. Надо чтобы запрос выдал выборку по документам типа Документ с реквизитами Реквизит1 из ТЧ1 и Реквизит2 из ТЧ2.
1 Defender aka LINN
 
10.10.08
14:33
Делай запрос к таб. частям, неужели так сложно конструктор открыть?
2 foxey
 
10.10.08
14:35
В одном запросе нельзя одновременно к двум таблицам одного документа обращаться. Надо или через вложенный запрос или объединением. Опыта в этом пока нет. Вот и спрашиваю.
3 Defender aka LINN
 
10.10.08
14:37
(2) "нельзя одновременно к двум таблицам одного документа обращаться" - святой отец не велит? Или Будда запрещает? Завязывай с религией, она до добра не доведет.
Открой конструктор, в конце концов, книжки по SQL почитай...
4 Cheater
 
10.10.08
14:47
(2) Соединение используй
5 foxey
 
10.10.08
14:52
Юзнул построитель, получил результат:
ВЫБРАТЬ    Док.Ссылка КАК Ссылка,
   Док.ТЧ1.(Реквизит1) КАК Рекв1,
   Док.ТЧ2.(Реквизит2)
       {ВЫБРАТЬ
   Реквизит1,Реквизит2,Ссылка}
ИЗ
   Документ.Документ КАК Док
УПОРЯДОЧИТЬ ПО
   Ссылка
Так вот в выборке поля Реквизит1 и 2 в виде таблицы. А надо чтобы были обычные поля. Для каждой строки в табличных частях надо получить свою строку в выборке запроса.
6 zbv
 
10.10.08
14:53
(5) обращайся к табличным частям

ИЗ Документ.Документ.ТЧ1

и.т.д
7 Пуд
 
10.10.08
14:58
+6 и к реквизитам шапки обращайся через Документ.ТЧ1.Ссылка.РЕквизит
8 foxey
 
10.10.08
14:58
(6) Делаем так:
ВЫБРАТЬ
Док.Ссылка КАК Ссылка,
Док.ТЧ1.Реквизит1 КАК Рекв1,
Док.ТЧ2.Реквизит2 КАК Рекв2
ИЗ
Документ.Документ КАК Док
УПОРЯДОЧИТЬ ПО
Ссылка
Все равно реквизиты таблицей передаются.
9 Krom
 
10.10.08
15:00
(8), так выбирай

ВЫБРАТЬ
ТЧ1.Реквизит1 КАК Рекв1
ИЗ
Документ.ТЧ1 КАК ТЧ1
10 zbv
 
10.10.08
15:00
(8) найди отличия

ИЗ
Документ.Документ


ИЗ
Документ.Документ.ТЧ1
11 Пуд
 
10.10.08
15:01
(8) Ааа.У тебя две ТЧ.Делай соединением
12 butterbean
 
10.10.08
15:01
(8) делай объединением
13 foxey
 
10.10.08
15:01
Да вот вижу, что без соединения не обойтись. Подскажите как мне его описать.
14 Пуд
 
10.10.08
15:10
ВЫБРАТЬ
ТЧ1.Ссылка КАК Ссылка,
ТЧ1.Реквизит1 КАК Рекв1,
ТЧ2.Реквизит2 КАК Рекв2
ИЗ
Документ.Документ.ТЧ1 КАК  ТЧ1
ВНУТРЕННЕ СОЕДИНЕНИЕ Документ.Документ.ТЧ2 КАК ТЧ2
ПО ТЧ1.Ссылка=ТЧ2.Ссылка
15 foxey
 
10.10.08
15:17
ВЫБРАТЬ
   Заказы.Ссылка КАК Ссылка,
   Заказы.Приоритет КАК Приоритет,
   Маршрут.ТочкаМаршрута КАК ТочкаМаршрута
ИЗ
   Документ.ЗаказНаТС.Заказы КАК Заказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказНаТС.Маршрут КАК Маршрут
   ПО Заказы.Ссылка = Маршрут.Ссылка
Выборка запроса пустая... Что-то не то...
16 Пуд
 
10.10.08
15:32
(15) Слушай,до меня только сейчас дошло...У тебя в этих ТЧ общее поле есть,тип ИД?Если нет - нужно делать ОБЪЕДИНЕНИЕМ
17 foxey
 
10.10.08
15:36
Общих полей нет. Табличные никак не связаны. Только шапка общая :)
А как делается объединением?
18 Пуд
 
10.10.08
15:37
(17)Щас
19 Пуд
 
10.10.08
15:40
ВЫБРАТЬ
   ПоступлениеТоваровУслугТовары.Номенклатура КАК НомТовары,
   NULL КАК Заказ,
   ПоступлениеТоваровУслугТовары.Ссылка
ИЗ
   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслугТовары.Ссылка,
   ПоступлениеТоваровУслугТовары.Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   NULL,
   ПоступлениеТоваровУслугУслуги.Заказ,
   ПоступлениеТоваровУслугУслуги.Ссылка
ИЗ
   Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслугУслуги.Ссылка,
   ПоступлениеТоваровУслугУслуги.Заказ

Как-то так
20 Cheater
 
10.10.08
15:44
(16) можно по НомеруСтроки соединить, извращение конечно )))
21 Cheater
 
10.10.08
15:45
+(20) И полное соединение
22 foxey
 
10.10.08
15:49
(19) Вышло следующее:
ВЫБРАТЬ
   Заказы.Приоритет КАК Приоритет,
   NULL КАК ТочкаМаршрута,
   Заказы.Ссылка
ИЗ
   Документ.уатЗаказНаТС.Заказы КАК Заказы

СГРУППИРОВАТЬ ПО
   Заказы.Ссылка,
   Заказы.Приоритет

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   NULL,
   Маршруты.ТочкаМаршрута,
   Маршруты.Ссылка
ИЗ
   Документ.уатЗаказНаТС.Маршрут КАК Маршруты

СГРУППИРОВАТЬ ПО
   Маршруты.Ссылка,
   Маршруты.ТочкаМаршрута
Вроде работает. Спасибо большое.