Имя: Пароль:
1C
1С v8
Исключить повторение сумм при соединении таблиц в запросе
0 fdv_83
 
19.04.20
12:43
Здравствуйте, уважаемые форумчане. Имеется отчёт, который отображает заявки дилеров, отгрузки им товаров и взаиморасчёты. Строится на основе двух регистров накопления: один отражает заявки дилеров и отгрузки (измерения: Клиент, заявка, товар; ресурсы: количество, сумма), второй - взаиморасчёты (измерения: Клиент, заявка; ресурсы: сумма). При соединении второго регистра к первому суммы оплат повторяются столько раз сколько товаров по первому регистру. Подскажите, пожалуйста, как можно сделать, чтобы суммы оплат не повторялись.

ВЫБРАТЬ
    ЗаявкиДилеровОстаткиИОбороты.Клиент КАК Клиент,
    ЗаявкиДилеровОстаткиИОбороты.ЗаявкаДилера КАК ЗаявкаДилера,
    ЗаявкиДилеровОстаткиИОбороты.Товар КАК Товар,
    ЗаявкиДилеровОстаткиИОбороты.СуммаПриход КАК СуммаЗаявки,
    ЗаявкиДилеровОстаткиИОбороты.СуммаРасход КАК СуммаОтпущено,
    ВзаиморасчетыСВнешнимиДилерамиОстаткиИОбороты.СуммаРасход КАК Оплачено,
    ЗаявкиДилеровОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ЗаявкиДилеровОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ЗаявкиДилеровОстаткиИОбороты.КоличествоПриход КАК КолЗаявки,
    ЗаявкиДилеровОстаткиИОбороты.КоличествоРасход КАК КолОтпущено,
    ЗаявкиДилеровОстаткиИОбороты.КоличествоКонечныйОстаток КАК КолОстаток,
    ЗаявкиДилеровОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаОстаток,
    ВзаиморасчетыСВнешнимиДилерамиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток1,
    ВзаиморасчетыСВнешнимиДилерамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ИЗ
    РегистрНакопления.ЗаявкиДилеров.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Авто, , ) КАК ЗаявкиДилеровОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСВнешнимиДилерами.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Авто, , ) КАК ВзаиморасчетыСВнешнимиДилерамиОстаткиИОбороты
        ПО ЗаявкиДилеровОстаткиИОбороты.Клиент = ВзаиморасчетыСВнешнимиДилерамиОстаткиИОбороты.Клиент
            И ЗаявкиДилеровОстаткиИОбороты.ЗаявкаДилера = ВзаиморасчетыСВнешнимиДилерамиОстаткиИОбороты.ЗаявкаДилера

УПОРЯДОЧИТЬ ПО
    Клиент,
    ЗаявкаДилера,
    Товар
АВТОУПОРЯДОЧИВАНИЕ
1 RomanYS
 
19.04.20
13:02
(0) Нужно исходить из того, что вы хотите увидеть. Очевидный ответ "не разворачивать по товарам" тебя и заказчика вероятно не устроит.

Если нужна сумма по товарам - значит оплату нужно как-то распределять.
Нужна сумма только по заказу - значит соединение нужно убрать и сделать по другому.
2 pechkin
 
19.04.20
13:08
Нужно делать объединение вместо соединения
3 fdv_83
 
19.04.20
13:30
(1) Разворачивать по товарам нужно, а вот оплаты нужно отображать только по клиентам и заявкам
4 seevkik
 
19.04.20
13:43
Тут аж два ответа: распредели или объедини.
В первом случае самый простой способ - распределить на количество товара (не ахти, но ума много не требует)
Во втором результаты просто объединятся и будут еще несколько строк с пустыми товарами, дальше можно и сообразить
5 fdv_83
 
19.04.20
20:36
Спасибо за помощь