Имя: Пароль:
1C
1С v8
1с Запрос в иерархии
,
0 Noxvil
 
03.09.11
15:21
Добрый день, есть запрос:

ВЫБРАТЬ
   Таблица.Товар,
   Таблица.Процент,
   Таблица.Слагаемое
ПОМЕСТИТЬ ВремТаблица
ИЗ
   &Таблица КАК Таблица
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыЗначОбъекта.Ссылка КАК Ссылка,
   ТоварыЗначОбъекта.Родитель,
   ВЫБОР
       КОГДА ЕСТЬNULL(ВремТаблица.Процент, 0) = 0
           ТОГДА 0
       ИНАЧЕ ВремТаблица.Процент
   КОНЕЦ КАК Процент,
   ЛОЖЬ КАК ВыделитьЦветом,
   ВЫБОР
       КОГДА ВремТаблица.Слагаемое ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ ВремТаблица.Слагаемое
   КОНЕЦ КАК Слагаемое
ИЗ
   Справочник.ТоварыЗначОбъекта КАК ТоварыЗначОбъекта
       ЛЕВОЕ СОЕДИНЕНИЕ ВремТаблица КАК ВремТаблица
       ПО (ТоварыЗначОбъекта.Ссылка = ВремТаблица.Товар
               ИЛИ ТоварыЗначОбъекта.Родитель = ВремТаблица.Товар)
ГДЕ
   (НЕ ТоварыЗначОбъекта.ПометкаУдаления)

УПОРЯДОЧИТЬ ПО
   ТоварыЗначОбъекта.ЭтоГруппа ИЕРАРХИЯ,
   ТоварыЗначОбъекта.Наименование

В котором условие "ТоварыЗначОбъекта.Родитель = ВремТаблица.Товар" надо поменять на ТоварыЗначОбъекта.Ссылка В Иерархии(ВремТаблица.Товар)

Я так понимаю, что эта конструкция невозможна, следовательно надо написать внутреннюю таблицу

выбрать
ВремТаблица.товар
из ВремТаблица
где ... А вот как условие написать - не знаю.

Как сделать из элемента параметр к внутренней таблице?
1 Noxvil
 
03.09.11
15:21
Буду рад реальной помощи...
2 Noxvil
 
03.09.11
15:26
up
3 Noxvil
 
03.09.11
15:37
ау... народ
4 Renat11111
 
03.09.11
15:39
А так нельзя?

ГДЕ
   (НЕ ТоварыЗначОбъекта.ПометкаУдаления)
И  ТоварыЗначОбъекта.Ссылка В Иерархии(ВЫБРАТЬ РАЗЛИЧНЫЕ Таб.Товар ИЗ ВремТаблица КАК Таб)
5 Renat11111
 
03.09.11
15:42
хотя нет так нельзя ты какие то непонятные поля из ВТ используешь
6 Axel2009
 
03.09.11
15:46
в одном запросе никак.
7 Noxvil
 
03.09.11
15:46
Дело не в этом мне нужно указать, что

ТоварыЗначОбъекта.Ссылка В иерархии (ВремТаблица.Товар) т.е. в иерархии конкретного товара... (группы)

Я могу указать значение времтаблицы.товар явно, через выразить, но как условие поставить на внутреннюю таблицу? т.е. чтобы не писать, что

ТоварыЗначОбъекта.Родитель = ВремТаблица.Товар ИЛИ
ТоварыЗначОбъекта.Родитель.РОдитель = ВремТаблица.Товар ИЛИ
И т.д.

Это ведь бред?!
8 Noxvil
 
03.09.11
15:47
А как правильно обыграть такую ситуацию?
9 Noxvil
 
03.09.11
15:48
Мне нужно понять, как поставить условие на внутреннюю таблицу
10 Noxvil
 
03.09.11
15:58
вверх
11 Noxvil
 
03.09.11
16:33
Нет больше вариантов?
12 vs84
 
03.09.11
16:44
(0) а разве можно использовать "В иерархии" в условии соединения?
13 Axel2009
 
03.09.11
16:44
(11) в запросах не реализована рекурсия. поэтому либо .родитель.родитель.
либо во временную таблицу писать все возможные пары.
14 Demasiado
 
03.09.11
17:38
(12) я пробовал иерархию в условии соединения использовать - у меня какую то хрень выдает