Имя: Пароль:
1C
1С v8
Условие при соединении 2 таблиц (продажи и котрагенты-папки)
0 serg-lom89
 
29.03.17
09:30
Добрый день
В первой таблице выбираю продажи

ВЫБРАТЬ
    ТаблицаРегистра.Организация,
    ТаблицаРегистра.Контрагент,
    ТаблицаРегистра.Номенклатура,
    ТаблицаРегистра.КоличествоОборот
Поместить ТЗПродоажИтоговая
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, ,  ) КАК ТаблицаРегистра



во второй таблице отбираю группы контрагентов нужных мне

ВЫБРАТЬ
    Исключения.Ссылка
ПОМЕСТИТЬ ТаблицаИсключений
ИЗ
    (ВЫБРАТЬ
        Контрагенты.Ссылка КАК Ссылка
    ИЗ
        Справочник.Контрагенты КАК Контрагенты
    ГДЕ
        Контрагенты.ЭтоГруппа
        И Контрагенты.Код = "АСП07183"
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Контрагенты.Ссылка
    ИЗ
        Справочник.Контрагенты КАК Контрагенты
    ГДЕ
        Контрагенты.ЭтоГруппа
        И Контрагенты.Код = "АСП04627") КАК Исключения
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка
ПОМЕСТИТЬ ОтделПродаж
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    НЕ Контрагенты.ПометкаУдаления
    И Контрагенты.ЭтоГруппа
    И Контрагенты.Код = "ГРП00002"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Объект
поместить КонтрагентыПервыйУровень
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.ЭтоГруппа
    И Контрагенты.Ссылка В ИЕРАРХИИ
            (ВЫБРАТЬ
                ОтделПродаж.Ссылка
            ИЗ
                ОтделПродаж КАК ОтделПродаж)
    И Контрагенты.Код <> "ГРП00002"
    И НЕ Контрагенты.Ссылка В ИЕРАРХИИ
                (ВЫБРАТЬ
                    ТаблицаИсключений.Ссылка
                ИЗ
                    ТаблицаИсключений КАК ТаблицаИсключений)
    И (Контрагенты.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
            ИЛИ Контрагенты.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))



сейчас нужно мне получить таблицу примера

Организация    |  Контрагент      | ном-ра    | кол-во    | Регион
Рога и копыта  |  Ип ВАСЯ         | Сахар     | 4         | Москва
Рога и копыта  |  Ип Коля         | Сахар     | 7         | Моск. обл.
Рога и копыта  |  Ип Петя         | Соль      | 4         | Питер

К таблице продаж я присоединяю таблицу Групп моих.В условии связи пишу

ВЫБОР
    |                КОГДА ТЗПродоажИтоговая.Контрагент.Родитель = КонтрагентыПервыйУровень.Объект
    |                    ТОГДА ТЗПродоажИтоговая.Контрагент.Родитель = КонтрагентыПервыйУровень.Объект
    |                КОГДА ТЗПродоажИтоговая.Контрагент.Родитель.Родитель = КонтрагентыПервыйУровень.Объект
    |                    ТОГДА ТЗПродоажИтоговая.Контрагент.Родитель.Родитель = КонтрагентыПервыйУровень.Объект
    |                КОГДА ТЗПродоажИтоговая.Контрагент.Родитель.Родитель.Родитель = КонтрагентыПервыйУровень.Объект
КОНЕЦ

это кусок только условия соединения.
Я как сделал такое условие ,естественно запрос стал дольше отрабатывать.
Может у вас есть какие нить варианты более быстрые?
прошу совета
1 Рэйв
 
29.03.17
09:35
много лишних телодвижений.
2 serg-lom89
 
29.03.17
09:43
(1) возможно)))вот и прошу совета
3 FIXXXL
 
29.03.17
09:47
(0) шляпа какая-то...
чего сделать то надо? исключить пару групп?
тогда делай массив групп и ставь условие НЕ В ИЕРАРХИИ(&МассивИсключений)
4 FIXXXL
 
29.03.17
09:48
(3) +условие на контрагента
5 serg-lom89
 
29.03.17
09:52
(3) получается нужно добавить в запросе поле,в котором будет указана группа контрагентов в которой он находиться (таблицы 2,если он там конечно находиться)
6 serg-lom89
 
29.03.17
09:56
(5) из группы КонтрагентыПервыйУровень
7 serg-lom89
 
29.03.17
10:27
up тему
8 FIXXXL
 
29.03.17
10:29
(5) читай (3)
тебе же все кто в группе не нужны?
9 serg-lom89
 
29.03.17
10:32
(8) блин что то туплю с утра..
мне надо,если контрагент из продаж,находится в иерархии Таблица КонтрагентыПервыйУровень, то указывать именно элемент Таблицы КонтрагентыПервыйУровень,в которой он находиться.
10 serg-lom89
 
29.03.17
10:59
(9) вот это будет более точно описание конечного результата который нужен..сорри за ранее не точное описание
11 1dvd
 
29.03.17
11:07
(9) проблема найти родителя первого уровня? в поиск
12 serg-lom89
 
29.03.17
11:28
(11) проблема определить элемент из таблицы КонтрагентыПервыйУровень,которому принадлежит элемент Продажи.Контранет
13 serg-lom89
 
29.03.17
11:29
(12) Контрагент