Имя: Пароль:
1C
 
Помогить объединить таблицы в запросе
,
0 St-Anger
 
13.03.19
17:56
Есть акционные расходные накладные, а есть основные (которые стали основанием для начисления акционных). Привязка сделана через регистр сведений.
Необходимо написать отчет, в котором бы отображались акционные накладные, напротив них основные (может быть одна или больше), а так же своя номенклатура под каждой накладной и количество.
Не могу понять как в запросе все это объединить/соединить.

Как хотелось бы сделать:
https://cdn1.savepice.ru/uploads/2019/3/13/079e9f581ba2c322330dd763a11b3eb5-full.jpg
1 formista2000
 
13.03.19
18:01
СОЕДИНЕНИЕ
2 Вафель
 
13.03.19
18:06
соединение по документу-основанию и номеру строки
3 St-Anger
 
13.03.19
18:07
Количество позиций может быть везде разным. Если по номеру строки - не все записи будут попадать
4 Rovan
 
гуру
13.03.19
18:12
(0) по описанию напоминает отчет "Расчетный листок" в ЗУП - слева начисления, справа удержания
5 Greeen
 
13.03.19
18:16
Аукционные, к ним полное соединение же по Основанию и номеру строки
6 Вафель
 
13.03.19
18:24
(4) но лучше не смотреть как строится расчетный листок. больше нервов сбережешь
7 St-Anger
 
13.03.19
18:30
(6) Уже посмотрел и с дрожью закрыл

Вот мой запрос

ВЫБРАТЬ
    ВложенныйЗапрос.АкционныйДокумент,
    РеализацияТоваровУслугТовары.Номенклатура КАК АкционныйНоменклатура,
    РеализацияТоваровУслугТовары.Количество КАК АкционныйКоличество,
    РеализацияТоваровУслугТовары.НомерСтроки
ПОМЕСТИТЬ Акция
ИЗ
    (ВЫБРАТЬ
        впПривязкаАкционныхДокументов.АкционныйДокумент.Ссылка КАК АкционныйДокумент
    ИЗ
        РегистрСведений.впПривязкаАкционныхДокументов КАК впПривязкаАкционныхДокументов
    ГДЕ
        впПривязкаАкционныхДокументов.АкционныйДокумент.Проведен
    
    СГРУППИРОВАТЬ ПО
        впПривязкаАкционныхДокументов.АкционныйДокумент.Ссылка) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО ВложенныйЗапрос.АкционныйДокумент = РеализацияТоваровУслугТовары.Ссылка
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Акция.АкционныйДокумент,
    Акция.АкционныйНоменклатура,
    Акция.АкционныйКоличество,
    Основной.ОсновнойДокумент,
    Основной.ОсновнойНоменклатура,
    Основной.ОсновнойКоличество
ИЗ
    Акция КАК Акция
        ПОЛНОЕ СОЕДИНЕНИЕ Основной КАК Основной
        ПО Акция.АкционныйДокумент = Основной.АкционныйДокумент
            И Акция.НомерСтроки = Основной.НомерСтроки
8 Вафель
 
13.03.19
18:31
зачем ссылки группировать по ссылке?
9 St-Anger
 
13.03.19
18:32
(8) да это я забыл убрать
10 Вафель
 
13.03.19
18:33
но конечно же г-но полнейший
11 St-Anger
 
13.03.19
18:33
(8) пробовал разные варианты, и забыл убрать. На результат все равно не влияет
12 Вафель
 
13.03.19
18:35
а количество основных накладных не известно?
13 St-Anger
 
13.03.19
18:36
(12) нет, чаще всего будет одна но может и больше
14 St-Anger
 
13.03.19
18:39
Вот в таком варианте запроса, если больше одной основной накладной, то акционные задваиваются + еще если соединять по номеру строки то теряются записи ( основной или акционной номенклатуры,смотря где больше).
15 breezee
 
13.03.19
18:57
(14) 1)Перепишите на временных таблицах. Так читать сложно, на вложенных запросах (да, иногда это не оптимально, но в моем опыте в 100% работает быстрее с временными таблицами)
2)Задваиваются, наверное, потому что у вас 2 реализации по одному документу или еще почему, при левом соединении это нормально.
Переделайте на временные таблицы и выложите сюда, если проблема осталась, так быстрее помогут
16 Sapiens_bru
 
13.03.19
20:12
(0) Готовим таблицу товаров акционных (А) и основных (О) документов, затем объединяем их и полученное объединение сортируем.
Из таблицы (А) брать:
1) Момент времени акционного документа
2) Пустую дату
3) Номер строки товара
4) Представление акционного документа
5) Представление товара
Из таблицы (О) брать:
1) Момент времени связанного акционного документа
2) Момент времени основного документа
3) Номер строки товара
4) Представление основного документа
5) Представление товара
Полученный результат сортировать по полям 1, 2, 3

В результате будет таблица в которой блоками будет расположены сначала строки первого акционного документа, затем первого связанного с ним основного, затем второго связанного с ним основного, затем второго акционного итд. То есть нужная таблица но в развороте.
Остаётся свернуть ее в табличный документ последовательно читая и Выводя/Присоединяя секции.
17 St-Anger
 
14.03.19
11:26
(16) Смысел понятен. Буду пробовать. Спасибо!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.