Имя: Пароль:
1C
1С v8
УТ 10.3 помогите с универсальным отчетом продажи
0 Nikart
 
27.11.11
21:36
Пытаюсь допилить отчет продажи, чтобы выводил продажи в разрезе складов. Получается в запрос нужно поставить строку для выборки склада:

ЕСТЬNULL(ДокументПродажи.Склад, ДокментПродажи.СкладОрдер) КАК Склад;

Никак не соображу как вставить его в УниверсальныйОтчет.ДобавитьПолеГруппировка().

Подскажите плиз
1 wade25
 
27.11.11
21:47
ТекстЗапроса =    
   "ВЫБРАТЬ
   |    ПродажиОбороты.Период,
   |    ПродажиОбороты.Регистратор,
   |    ПродажиОбороты.Номенклатура КАК Номенклатура,
   |    ПродажиОбороты.ХарактеристикаНоменклатуры,
   |    ПродажиОбороты.ЗаказПокупателя,
   |    ПродажиОбороты.ДоговорКонтрагента,
   |    ПродажиОбороты.ДокументПродажи,
   |    ПродажиОбороты.Подразделение,
   |    ПродажиОбороты.Проект,
   |    ПродажиОбороты.Организация,
   |    ПродажиОбороты.Контрагент КАК Контрагент,
   |    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
   |    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
   |    ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
   |    ПродажиОбороты.НДСОборот КАК НДСОборот,
   |    ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетов,
   |    ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕд,
   |    ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот КАК СуммаСкидки,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) КАК ПериодДень,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕКАДА) КАК ПериодДекада,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
   |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ГОД) КАК ПериодГод,
   |    ВЫБОР
   |        КОГДА ПродажиОбороты.СтоимостьБезСкидокОборот = 0
   |            ТОГДА 0
   |        ИНАЧЕ (ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) / ПродажиОбороты.СтоимостьБезСкидокОборот * 100
   |    КОНЕЦ КАК ПроцентСкидки,
   |    ВложенныйЗапрос.Новинка,
   |    ВложенныйЗапрос.Профицит,
   |    ВложенныйЗапрос.Неликвид,
   |    ВложенныйЗапрос.УстаревшийТовар
   |    //ПОЛЯ_СВОЙСТВА
   |    //ПОЛЯ_КАТЕГОРИИ
   |{ВЫБРАТЬ
   |    Период,
   |    Регистратор.*,
   |    Номенклатура.*,
   |    ХарактеристикаНоменклатуры.*,
   |    ЗаказПокупателя.*,
   |    ДоговорКонтрагента.*,
   |    ДокументПродажи.*,
   |    Подразделение.*,
   |    Проект.*,
   |    Организация.*,
   |    Контрагент.*,
   |    КоличествоОборот,
   |    СтоимостьОборот,
   |    СтоимостьБезСкидокОборот,
   |    НДСОборот,
   |    КоличествоЕдиницОтчетов,
   |    КоличествоБазовыхЕд,
   |    СуммаСкидки,
   |    ПериодДень,
   |    ПериодНеделя,
   |    ПериодДекада,
   |    ПериодМесяц,
   |    ПериодКвартал,
   |    ПериодПолугодие,
   |    ПериодГод,
   |    ПроцентСкидки,
   |    Новинка,
   |    Профицит,
   |    Неликвид,
   |    УстаревшийТовар
   |    //ПСЕВДОНИМЫ_СВОЙСТВА
   |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
   |}
   |ИЗ
   |    РегистрНакопления.Продажи.Обороты(&ДатаН, &ДатаК, Регистратор, ) КАК ПродажиОбороты
   |    //СОЕДИНЕНИЯ
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            ВЫБОР
   |                КОГДА РегистрНовинкиИПрофицитСрезПоследних.ТипНоменклатуры = &Новинка
   |                    ТОГДА ""Да""
   |                ИНАЧЕ ""Нет""
   |            КОНЕЦ КАК Новинка,
   |            ВЫБОР
   |                КОГДА РегистрНовинкиИПрофицитСрезПоследних.ТипНоменклатуры = &Профицит
   |                    ТОГДА ""Да""
   |                ИНАЧЕ ""Нет""
   |            КОНЕЦ КАК Профицит,
   |            ВЫБОР
   |                КОГДА РегистрНовинкиИПрофицитСрезПоследних.ТипНоменклатуры = &Неликвид
   |                    ТОГДА ""Да""
   |                ИНАЧЕ ""Нет""
   |            КОНЕЦ КАК Неликвид,
   |            ВЫБОР
   |                КОГДА РегистрНовинкиИПрофицитСрезПоследних.ТипНоменклатуры = &УстаревшийТовар
   |                    ТОГДА ""Да""
   |                ИНАЧЕ ""Нет""
   |            КОНЕЦ КАК УстаревшийТовар,
   |            РегистрНовинкиИПрофицитСрезПоследних.Номенклатура КАК Номенклатура
   |        ИЗ
   |            РегистрСведений.РегистрНовинкиИПрофицит.СрезПоследних(&ДатаК, ) КАК РегистрНовинкиИПрофицитСрезПоследних) КАК ВложенныйЗапрос
   |        ПО ПродажиОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
   |{ГДЕ
   |    ПродажиОбороты.Период,
   |    ПродажиОбороты.Регистратор.*,
   |    ПродажиОбороты.Номенклатура.*,
   |    ПродажиОбороты.ХарактеристикаНоменклатуры.*,
   |    ПродажиОбороты.ЗаказПокупателя.*,
   |    ПродажиОбороты.ДоговорКонтрагента.*,
   |    ПродажиОбороты.ДокументПродажи.*,
   |    ПродажиОбороты.Подразделение.*,
   |    ПродажиОбороты.Проект.*,
   |    ПродажиОбороты.Организация.*,
   |    ПродажиОбороты.Контрагент.*,
   |    ПродажиОбороты.КоличествоОборот,
   |    ПродажиОбороты.СтоимостьОборот,
   |    ПродажиОбороты.СтоимостьБезСкидокОборот,
   |    ПродажиОбороты.НДСОборот,
   |    (ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК Поле1,
   |    (ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК Поле2,
   |    (ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) КАК Поле3,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ)) КАК Поле4,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ)) КАК Поле5,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕКАДА)) КАК Поле6,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)) КАК Поле7,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, КВАРТАЛ)) КАК Поле8,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ПОЛУГОДИЕ)) КАК Поле9,
   |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ГОД)) КАК Поле10,
   |    (ВЫБОР
   |            КОГДА ПродажиОбороты.СтоимостьБезСкидокОборот = 0
   |                ТОГДА 0
   |            ИНАЧЕ (ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) / ПродажиОбороты.СтоимостьБезСкидокОборот * 100
   |        КОНЕЦ) КАК Поле11,
   |    ВложенныйЗапрос.Новинка,
   |    ВложенныйЗапрос.Профицит,
   |    ВложенныйЗапрос.Неликвид,
   |    ВложенныйЗапрос.УстаревшийТовар
   |    //УСЛОВИЯ_СВОЙСТВА
   |    //УСЛОВИЯ_КАТЕГОРИИ
   |}
   |{УПОРЯДОЧИТЬ ПО
   |    Период,
   |    Регистратор.*,
   |    Номенклатура.*,
   |    ХарактеристикаНоменклатуры.*,
   |    ЗаказПокупателя.*,
   |    ДоговорКонтрагента.*,
   |    ДокументПродажи.*,
   |    Подразделение.*,
   |    Проект.*,
   |    Организация.*,
   |    Контрагент.*,
   |    КоличествоОборот,
   |    СтоимостьОборот,
   |    СтоимостьБезСкидокОборот,
   |    НДСОборот,
   |    КоличествоЕдиницОтчетов,
   |    КоличествоБазовыхЕд,
   |    СуммаСкидки,
   |    ПериодДень,
   |    ПериодНеделя,
   |    ПериодДекада,
   |    ПериодМесяц,
   |    ПериодКвартал,
   |    ПериодПолугодие,
   |    ПериодГод,
   |    ПроцентСкидки,
   |    Новинка,
   |    Профицит,
   |    Неликвид,
   |    УстаревшийТовар
   |    //ПСЕВДОНИМЫ_СВОЙСТВА
   |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
   |}
   |ИТОГИ
   |    СУММА(КоличествоОборот),
   |    СУММА(СтоимостьОборот),
   |    СУММА(СтоимостьБезСкидокОборот),
   |    СУММА(НДСОборот),
   |    СУММА(КоличествоЕдиницОтчетов),
   |    СУММА(КоличествоБазовыхЕд),
   |    ВЫБОР
   |        КОГДА СУММА(СтоимостьБезСкидокОборот) = 0
   |            ТОГДА 0
   |        ИНАЧЕ (СУММА(СтоимостьБезСкидокОборот) - СУММА(СтоимостьОборот)) / СУММА(СтоимостьБезСкидокОборот) * 100
   |    КОНЕЦ КАК ПроцентСкидки
   |    //ИТОГИ_СВОЙСТВА
   |    //ИТОГИ_КАТЕГОРИИ
   |ПО
   |    ОБЩИЕ,
   |    Контрагент,
   |    Номенклатура
   |{ИТОГИ ПО
   |    Период,
   |    Регистратор.*,
   |    Номенклатура.*,
   |    ХарактеристикаНоменклатуры.*,
   |    ЗаказПокупателя.*,
   |    ДоговорКонтрагента.*,
   |    ДокументПродажи.*,
   |    Подразделение.*,
   |    Проект.*,
   |    Организация.*,
   |    Контрагент.*,
   |    КоличествоОборот,
   |    СтоимостьОборот,
   |    СтоимостьБезСкидокОборот,
   |    НДСОборот,
   |    КоличествоЕдиницОтчетов,
   |    КоличествоБазовыхЕд,
   |    СуммаСкидки,
   |    ПериодДень,
   |    ПериодНеделя,
   |    ПериодДекада,
   |    ПериодМесяц,
   |    ПериодКвартал,
   |    ПериодПолугодие,
   |    ПериодГод,
   |    ПроцентСкидки,
   |    Новинка,
   |    Профицит,
   |    Неликвид,
   |    УстаревшийТовар
   |    //ПСЕВДОНИМЫ_СВОЙСТВА
   |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
   |}";

УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ИсточникДанных.Склад", "Склад", "Склад", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Склады);

Как то так? =)
2 Nikart
 
27.11.11
21:57
не вкурил (1)
3 Reaper_1c
 
27.11.11
22:42
Ад и израиль эта ваша 8.0. Для тех, кто в танке - склад не нужен в продажах. Надо подразделения правильно юзать.
4 Nikart
 
27.11.11
23:23
(3) подразделения проставляются в соответствия складам.. но только одни автоматом не встают в документах реализации
5 Kaidend
 
27.11.11
23:38
Я, конечно, извиняюсь, но что мешает добавлять эту группировку в пользовательском режиме, зачем код-то править?
6 Поручик
 
28.11.11
02:01
(4) А что мешает прописать основное подразделение в настройках по умолчанию для пользователей?
(5) Не всё так просто со складами при продажах, по хорошему ещё надо учитывать ордера в документах продажи.