Версия для печати темы (https://pro1c.org.ua/index.php?s=04b0583cc072b70400e62d63489a43d2&showtopic=37397)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Вложенный отчет по Контрагентам и Продажам с отбором

Автор: Constantus 24.05.17, 16:31

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Есть такая задача. Определить продажи определенного товара или группы товара по Всем контрагентам входящим в группу или кого-то конкретного.

Сделал вложенный запрос из справочника Контрагентов и регистром накопления "ПРодажи":

ВЫБРАТЬ
    ВложенныйЗапрос.Родитель,
    ВложенныйЗапрос.Контрагент КАК Контрагент,
    СУММА(ВложенныйЗапрос.Колво) КАК Колво
ИЗ
    (ВЫБРАТЬ
        Контрагенты.Родитель КАК Родитель,
        Контрагенты.Ссылка КАК Контрагент,
        0 КАК Колво
    ИЗ
        Справочник.Контрагенты КАК Контрагенты
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Продажи.Контрагент.Родитель,
        Продажи.Контрагент,
        СУММА(Продажи.Количество)
    ИЗ
        РегистрНакопления.Продажи КАК Продажи
    
    СГРУППИРОВАТЬ ПО
        Продажи.Контрагент,
        Продажи.Контрагент.Родитель) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Родитель,
    ВложенныйЗапрос.Контрагент

УПОРЯДОЧИТЬ ПО
    Контрагент


Если в настройках я могу показать в Отборе поле "Контрагент" и соответственно поставить "Равно" или в "Группе", то никак не могу сообразить как мне произвести отбор по Номенклатуре из регистра накопления "Продажи"...

Как можно сделать подобное? Одним словом: пользователь хочет увидеть как продается его товар по конкретному контрагенту или группе контрагентов, указав какой имено товар или группу товаров. При этом может получится отчет типа на каких точках товар вообще не продавался, чтобы направить агента на пустые точки...

Автор: Bernet 24.05.17, 16:36

Constantus @ Сегодня, 17:31 * ,
смысла этого объединения не понимаю, выбирайте просто данные из РН Продажи, в СКД сделайте группировки по Контрагенту (или родителю) и по Номенклатуре (или родителю) и будет ваш отчет

Автор: Constantus 24.05.17, 17:00

Bernet @ Сегодня, 19:36 * ,


Первая мысль была именно такой, но данный отчет покажет ситуацию с продажами, т.е. только тех контрагентов, где были продажи, покажет только те товары, которые были проданы, а нужно, чтобы отчет показал все торговые точки, где были и не были продажи, и весь ассортимент группы номенклатур, которые проданы и не продавались:

Торговая точка01
Товар01 - 10
Товар02 - 20
Товар03 - __
Товар04 - __

Торговая точка02
Товар01 - __
Товар02 - 20
Товар03 - __
Товар04 - 12

Торговая точка03
Товар01 - __
Товар02 - __
Товар03 - __
Товар04 - __

Торговая точка04
Товар01 - 13
Товар02 - 20
Товар03 - 23
Товар04 - 12

Отчет из продаж не покажет точку "03" вообще и не покажет товары, где продаж не было "__"

Автор: Bernet 24.05.17, 17:05

Constantus @ Сегодня, 18:00 * ,
Пардон - конец рабочего дня - невнимательно читал задачу. Тогда, по идее, это простое левое соединение справочника Контрагенты и регистра Продажи - в таком случае получите в выборке даже тех контрагентов по которым Продажи не велись.

Автор: Constantus 24.05.17, 17:21

Bernet @ Сегодня, 20:05 * ,


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


Да, так отбирается по группе контрагента...

Но вот как теперь сделать, чтобы при отборе номенклатуры, также высвечивались все товары по точке, независимо от того, продавались товары или нет...
Я так понимаю, что нужно повесить еще одно соединение только теперь по справочнику "Номенклатура"... Выходит сообщение

Неоднозначное поле "Номенклатура.Ссылка"
ПО Продажи.Номенклатура = <<?>>Номенклатура.Ссылка

Автор: Vidocq05 25.05.17, 13:47

Цитата(Constantus @ 24.05.17, 18:21) *
ИЗ
    Справочник.Контрагенты КАК Контрагенты


ИЗ
    Справочник.Контрагенты КАК СпрКонтрагенты


С номенклатурой анологично

Автор: logist 28.05.17, 15:26

Цитата(Constantus @ 24.05.17, 18:21) *
как теперь сделать, чтобы при отборе номенклатуры, также высвечивались все товары по точке, независимо от того, продавались товары или нет...

Как-то так (работоспособность не проверялась)

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua