Имя: Пароль:
1C
1С v8
1с запрос Левое соединение
,
0 skela1c
 
17.01.18
18:03
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры,
    ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента,
    ВыручкаИСебестоимостьПродажОбороты.Менеджер,
    ВыручкаИСебестоимостьПродажОбороты.Склад,
    ВыручкаИСебестоимостьПродажОбороты.Соглашение,
    ВыручкаИСебестоимостьПродажОбороты.Договор,
    ВыручкаИСебестоимостьПродажОбороты.ХозяйственнаяОперация,
    ВыручкаИСебестоимостьПродажОбороты.Инициатор,
    ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот,
    ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыручкаИСебестоимостьПродажОбороты.Регистратор,
    ВозвратТоваровОтКлиентаТовары.ДокументРеализации
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачПериода, &КонПериода, Регистратор, ) КАК ВыручкаИСебестоимостьПродажОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента.Товары КАК ВозвратТоваровОтКлиентаТовары
        ПО ВыручкаИСебестоимостьПродажОбороты.Регистратор = ВозвратТоваровОтКлиентаТовары.Ссылка
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ВозвратТоваровОтКлиентаТовары.Номенклатура
            И ВыручкаИСебестоимостьПродажОбороты.Инициатор = ВозвратТоваровОтКлиентаТовары.Инициатор
ГДЕ
    ВыручкаИСебестоимостьПродажОбороты.Инициатор = &Инициатор
Запрос к регистру "ВыручкаИСебестоимостьПродаж.Обороты", хочу получить таблицу по определенному регистратору +
"ВозвратТоваровОтКлиентаТовары.ДокументРеализации". В "регистратор" две одинаковой номенклатуры, но с разными "ДокументРеализации". В итоге вместо 2-х строк я получаю 4 по две на каждый  "ДокументРеализации", что я делаю не так, подскажите?
1 Мандалай
 
17.01.18
18:07
Сгруппировать сделай, у тебя скорее всего свойства или характеристики используются
2 Мандалай
 
17.01.18
18:08
Только вытащи в отдельную временную таблицу табличную часть документа
3 skela1c
 
17.01.18
18:18
не могу сгруппировать, переделываю отчет "Движение номенклатуры", этот запрос для примера
4 azernot
 
17.01.18
18:32
Без левого соединения выдаётся одна строка? Может быть из регистра уже две строки получается?
5 skela1c
 
18.01.18
09:12
а от дублей только группировка поможет избавиться?
6 1Сергей
 
18.01.18
09:15
(5) когда как. Иногда еще один параметр связи может помочь
7 Optan
 
18.01.18
09:23
(0) "хочу получить таблицу по определенному регистратору" - может тогда условие на регистратор еще наложить?
8 Радим1987
 
18.01.18
09:24
ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ВозвратТоваровОтКлиентаТовары.Номенклатура из за этого условия
9 Радим1987
 
18.01.18
09:24
Хотя нет
10 Радим1987
 
18.01.18
09:35
Если добавить это условие


И ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента= ВозвратТоваровОтКлиентаТовары.ДокументРеализации
11 skela1c
 
18.01.18
10:08
(10) спасибо помогло,а что это соединение даёт, подскажите?
12 skela1c
 
18.01.18
10:44
а если поле "ЗаказКлиента" пустое?
13 skela1c
 
18.01.18
11:22
каким образом поле "ЗаказКлиента" заполняется?
14 skela1c
 
18.01.18
11:33
вопрос в том что мне надо получить "подразделение" или у реализации или у заказа, а так я не могу до них добраться
15 catena
 
18.01.18
11:34
(14)Регистр ВыручкаИСебестоимостьПродаж пишется сводно или на каждую строчку документа движение?
16 skela1c
 
18.01.18
11:47
(15) на каждую
17 Мандалай
 
18.01.18
11:50
Я не очень понимаю как тебе помогло условие в (10). Ты его добавил в условиях или в связях? Приведи полный текст запроса.
18 skela1c
 
18.01.18
11:55
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры,
    ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента,
    ВыручкаИСебестоимостьПродажОбороты.Менеджер,
    ВыручкаИСебестоимостьПродажОбороты.Склад,
    ВыручкаИСебестоимостьПродажОбороты.Соглашение,
    ВыручкаИСебестоимостьПродажОбороты.Договор,
    ВыручкаИСебестоимостьПродажОбороты.ХозяйственнаяОперация,
    ВыручкаИСебестоимостьПродажОбороты.Инициатор,
    ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот,
    ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыручкаИСебестоимостьПродажОбороты.Регистратор,
    ВозвратТоваровОтКлиентаТовары.ДокументРеализации
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачПериода, &КонПериода, Регистратор, ) КАК ВыручкаИСебестоимостьПродажОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента.Товары КАК ВозвратТоваровОтКлиентаТовары
        ПО ВыручкаИСебестоимостьПродажОбороты.Регистратор = ВозвратТоваровОтКлиентаТовары.Ссылка
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура =
                                                                                                   ВозвратТоваровОтКлиентаТовары.Номенклатура
            И ВыручкаИСебестоимостьПродажОбороты.Инициатор = ВозвратТоваровОтКлиентаТовары.Инициатор
            И ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента = ВозвратТоваровОтКлиентаТовары.ДокументРеализации
ГДЕ
    ВыручкаИСебестоимостьПродажОбороты.Инициатор = Инициатор
19 Радим1987
 
18.01.18
11:55
ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента это как бы документ инициатор в данном случае нам нужен только ВозвратТоваровОтКлиентаТовары.ДокументРеализации
20 skela1c
 
18.01.18
12:00
(19) ну да, только из-за того, что ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента не заполнено и ВозвратТоваровОтКлиентаТовары.ДокументРеализации не находится
21 Мандалай
 
18.01.18
12:33
Если поле Клиент пустое, то оно будет искать только с таким же пустым значением в другой таблице.
Как оно заполняется ты можешь посмотреть в модуле проведения документов, которые делают движения по нужному тебе регистру.
22 Мандалай
 
18.01.18
12:36
"вопрос в том что мне надо получить "подразделение" или у реализации или у заказа, а так я не могу до них добраться"

Поясни, тебе нужно установить условие или вытащить в доступные поля?

Группировка в результирующем запросе тебе не поможет, в данном случае она сгруппирует уже корявые данные. Поэтому я и говорил тебе выгрузить данные предварительно во временную таблицу.
23 catena
 
18.01.18
13:14
(16)Ну тогда там скорее всего и номер строки есть. В типовых обычно так.
24 skela1c
 
18.01.18
13:42
(23) на номер строки ругается
25 dezss
 
18.01.18
14:13
Если Инициатор - измерение, то лучше убери его из Где, а запихай в виртуальную таблицу остатков:
РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачПериода, &КонПериода, Регистратор, Инициатор = &Инициатор) КАК ВыручкаИСебестоимостьПродажОбороты
27 skela1c
 
18.01.18
17:14
Сделал через вложенный запрос. Сделал таблицу, которая мне была нужна, сгруппировал чтобы получилось по одной записи и соединил её с таблицей регистра, всем спасибо
28 Мандалай
 
18.01.18
17:43
Тоже пойдет, хотя временная таблица кошерней.
AdBlock убивает бесплатный контент. 1Сергей