Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужна помощь с запросом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
DrLivsi
Всем привет!
Есть запрос, который выбирает данные для универсального отчета, из регистра Продажи.Обороты. За текущий и прошлый период, с группировкой Контрагент, ДокументПродажи.
Помогите добавить в запрос колонки "КоличествоДокументовПродажи" И "КачествоПродаж". Где КачествоПродаж = СуммаДокумента / КоличествоДокументовПродажи. У меня почему-то вместо КоличествоДокументовПродажи выводит количество позиций в документе.
Подскажите в чем ошибка.

1С Предприятие 8.1, конфигурация Управление торговым предприятием для Украины 1.1
ВЫБРАТЬ
    ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
    ЕСТЬNULL(ПродажиОбороты.Контрагент, ПрошлыйМесяц.Контрагент) КАК Контрагент,
    ЕСТЬNULL(ПродажиОбороты.Номенклатура, ПрошлыйМесяц.Номенклатура) КАК Номенклатура,
    СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0)) КАК КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
    ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
    ПродажиОбороты.СуммаВзаиморасчетовОборот КАК СуммаВзаиморасчетовОборот,
    ПродажиОбороты.СуммаФормаХОборот КАК СуммаФормаХОборот,
    СУММА(ЕСТЬNULL(ПрошлыйМесяц.КоличествоОборот, 0)) КАК КоличествоПрошлыйМесяц,
    СУММА(ПрошлыйМесяц.СтоимостьОборот) КАК СтоимостьПрошлыйМесяц,
    СУММА(ПрошлыйМесяц.СтоимостьБезСкидокОборот) КАК СтоимостьБезСкидокПрошлыйМесяц,
    СУММА(ПрошлыйМесяц.СуммаВзаиморасчетовОборот) КАК СуммаВзаиморасчетовПрошлыйМесяц,
    СУММА(ПрошлыйМесяц.СуммаФормаХОборот) КАК СуммаФормаХПрошлыйМесяц,
    ПрошлыйМесяц.Номенклатура КАК Номенклатура1,
    ПрошлыйМесяц.Контрагент КАК Контрагент1,
    КоличествоДокПродажи.ДокументПродажиСуммаДокумента,
    СУММА(КоличествоДокПродажи.ДокументПродажиКол) КАК ДокументПродажиКол,
    ВЫБОР
        КОГДА КоличествоДокПродажи.ДокументПродажиКол <> 0
            ТОГДА ПродажиОбороты.СтоимостьОборот / КоличествоДокПродажи.ДокументПродажиКол
        ИНАЧЕ 0
    КОНЕЦ КАК КачествоПродаж,
    ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель, ПрошлыйМесяц.Номенклатура.Родитель) КАК НоменклатураРодитель,
    СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) - ЕСТЬNULL(ПрошлыйМесяц.КоличествоОборот, 0)) КАК ПриростПродаж,
    ЕСТЬNULL(ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя, ПрошлыйМесяц.Контрагент.ОсновнойМенеджерПокупателя) КАК ОсновнойМенеджерПокупателя
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ПродажиОбороты
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПродажиОбороты.Номенклатура КАК Номенклатура,
            ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
            ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
            ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
            ПродажиОбороты.Подразделение КАК Подразделение,
            ПродажиОбороты.Проект КАК Проект,
            ПродажиОбороты.Организация КАК Организация,
            ПродажиОбороты.Контрагент КАК Контрагент,
            ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
            ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
            ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
            ПродажиОбороты.СуммаВзаиморасчетовОборот КАК СуммаВзаиморасчетовОборот,
            ПродажиОбороты.СуммаФормаХОборот КАК СуммаФормаХОборот
        ИЗ
            РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&ДатаНачала, НЕДЕЛЯ, -1), &ДатаНачала, Регистратор, ) КАК ПродажиОбороты) КАК ПрошлыйМесяц
        ПО ПродажиОбороты.Номенклатура = ПрошлыйМесяц.Номенклатура
            И ПродажиОбороты.Контрагент = ПрошлыйМесяц.Контрагент
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПродажиОбороты.Контрагент КАК Контрагент,
            СУММА(ПродажиОбороты.ДокументПродажи.СуммаДокумента) КАК ДокументПродажиСуммаДокумента,
            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПродажиОбороты.ДокументПродажи) КАК ДокументПродажиКол
        ИЗ
            РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаКонца, Регистратор, ) КАК ПродажиОбороты
        
        СГРУППИРОВАТЬ ПО
            ПродажиОбороты.Контрагент) КАК КоличествоДокПродажи
        ПО ПродажиОбороты.Контрагент = КоличествоДокПродажи.Контрагент

СГРУППИРОВАТЬ ПО
    ПрошлыйМесяц.Контрагент,
    ПродажиОбороты.ЗаказПокупателя,
    ПродажиОбороты.ДокументПродажи,
    ПродажиОбороты.СтоимостьОборот,
    ПродажиОбороты.СтоимостьБезСкидокОборот,
    ПродажиОбороты.СуммаВзаиморасчетовОборот,
    ПродажиОбороты.СуммаФормаХОборот,
    ПрошлыйМесяц.Номенклатура,
    КоличествоДокПродажи.ДокументПродажиСуммаДокумента,
    ЕСТЬNULL(ПродажиОбороты.Контрагент, ПрошлыйМесяц.Контрагент),
    ЕСТЬNULL(ПродажиОбороты.Номенклатура, ПрошлыйМесяц.Номенклатура),
    ВЫБОР
        КОГДА КоличествоДокПродажи.ДокументПродажиКол <> 0
            ТОГДА ПродажиОбороты.СтоимостьОборот / КоличествоДокПродажи.ДокументПродажиКол
        ИНАЧЕ 0
    КОНЕЦ,
    ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель, ПрошлыйМесяц.Номенклатура.Родитель),
    ЕСТЬNULL(ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя, ПрошлыйМесяц.Контрагент.ОсновнойМенеджерПокупателя)
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    СУММА(СтоимостьБезСкидокОборот),
    СУММА(СуммаВзаиморасчетовОборот),
    СУММА(СуммаФормаХОборот),
    СУММА(КоличествоПрошлыйМесяц),
    СУММА(СтоимостьПрошлыйМесяц),
    СУММА(СтоимостьБезСкидокПрошлыйМесяц),
    СУММА(СуммаВзаиморасчетовПрошлыйМесяц),
    СУММА(СуммаФормаХПрошлыйМесяц),
    СУММА(ДокументПродажиКол),
    СУММА(КачествоПродаж),
    СУММА(ПриростПродаж)
ПО
    ЗаказПокупателя,
    ДокументПродажи,
    Контрагент,
    Номенклатура,
    НоменклатураРодитель,
    ОсновнойМенеджерПокупателя

alex040269
СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0)) КАК КоличествоОборот,

наверное потому, что документы пишут в регистр каждую строку табличной части.
DrLivsi
Цитата(alex040269 @ 21.11.12, 17:35) необходимо зарегистрироваться для просмотра ссылки
СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0)) КАК КоличествоОборот,

наверное потому, что документы пишут в регистр каждую строку табличной части.


Как это можно победить? Как правильно подсчитать количество документов продажи?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.