|   |   | 
| 
 | СКД не выводит поля | ☑ | ||
|---|---|---|---|---|
| 0
    
        sqr4 11.05.17✎ 17:36 | 
        Запрос который в СКД работает не правильно - 
 ВЫБРАТЬ ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента КАК ЗаказКлиента, ИСТИНА КАК ПолностьюОтгружен, ЗаказыКлиентовОстаткиИОбороты.ЗаказаноРасход КАК ЗаказаноРасход ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.ЗаказыКлиентов.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК ЗаказыКлиентовОстаткиИОбороты ГДЕ ЗаказыКлиентовОстаткиИОбороты.ЗаказаноКонечныйОстаток = 0 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РасчетыСКлиентамиОбороты.ЗаказКлиента, ЛОЖЬ, 0 ИЗ РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНач, &ДатаКон, , ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента) КАК РасчетыСКлиентамиОбороты ГДЕ РасчетыСКлиентамиОбороты.СуммаРасход > 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.ЗаказКлиента КАК ЗаказКлиента, МАКСИМУМ(ВТ.ПолностьюОтгружен) КАК ПолностьюОтгружен, СУММА(ВТ.ЗаказаноРасход) КАК ЗаказаноРасход ПОМЕСТИТЬ ВТЗаказы ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.ЗаказКлиента ИНДЕКСИРОВАТЬ ПО ЗаказКлиента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОтчетБанкаПоОперациямЭквайринга.ЗаказКлиента, СУММА(ОтчетБанкаПоОперациямЭквайринга.СуммаКомиссии) КАК СуммаКомиссии ПОМЕСТИТЬ ВТЭквайринг ИЗ Документ.ОтчетБанкаПоОперациямЭквайринга КАК ОтчетБанкаПоОперациямЭквайринга ГДЕ ОтчетБанкаПоОперациямЭквайринга.Проведен И ОтчетБанкаПоОперациямЭквайринга.ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы) И ОтчетБанкаПоОперациямЭквайринга.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ОтчетБанкаПоОперациямЭквайринга.ЗаказКлиента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТЗаказы.ЗаказКлиента, ВозвратТоваровОтКлиента.Ссылка ПОМЕСТИТЬ ВсеВозвраты ИЗ ВТЗаказы КАК ВТЗаказы ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента ПО ВТЗаказы.ЗаказКлиента = ВозвратТоваровОтКлиента.ДокументРеализации.ЗаказКлиента ГДЕ ВозвратТоваровОтКлиента.Проведен И ВозвратТоваровОтКлиента.Дата МЕЖДУ &ДатаНач И &ДатаКон ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеВозвраты.ЗаказКлиента, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВсеВозвраты.Ссылка) КАК Ссылка ПОМЕСТИТЬ ВозвратыПоЗаказам ИЗ ВсеВозвраты КАК ВсеВозвраты СГРУППИРОВАТЬ ПО ВсеВозвраты.ЗаказКлиента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Менеджер КАК Менеджер, ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента КАК ЗаказПокупателя, ЗаказыКлиентовОстаткиИОбороты.Номенклатура, ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.СуммаДокумента КАК СуммаЗаказа, РасчетыСКлиентамиОбороты.СуммаРасход КАК Оплата, ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) КАК Себестоимость, ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот, 0) - ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) КАК ВаловаяПрибыль, ВЫБОР КОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) = 0 ТОГДА 0 ИНАЧЕ (ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот, 0) - ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0)) / ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) КОНЕЦ КАК Рентальельность, ЗаказыКлиентовОстаткиИОбороты.ЗаказаноПриход КАК КоличествоПриход, ЗаказыКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаВзаиморасчетовПриход, ЗаказыКлиентовОстаткиИОбороты.ЗаказаноРасход КАК КоличествоРасход, ЕСТЬNULL(РасчетыСКлиентамиОбороты.СуммаРасход, 0) КАК СуммаВзаиморасчетовРасход, ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот, 0) КАК СуммаПродажи, ЕСТЬNULL(ВТЭквайринг.СуммаКомиссии, 0) КАК СуммаКомиссии, ЕСТЬNULL(ВозвратыПоЗаказам.Ссылка, 0) КАК КоличествоВозвратов ПОМЕСТИТЬ ВТПродажи ИЗ РегистрНакопления.ЗаказыКлиентов.ОстаткиИОбороты( , , , , ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы) И Номенклатура.ВидНоменклатуры.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)) КАК ЗаказыКлиентовОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты( , , , ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы ГДЕ ВТЗаказы.ПолностьюОтгружен = ИСТИНА)) КАК ВыручкаИСебестоимостьПродажОбороты ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента И ЗаказыКлиентовОстаткиИОбороты.Номенклатура = ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Обороты( &ДатаНач, &ДатаКон, , ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы)) КАК РасчетыСКлиентамиОбороты ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = РасчетыСКлиентамиОбороты.ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ ВТЭквайринг КАК ВТЭквайринг ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ВТЭквайринг.ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ ВозвратыПоЗаказам КАК ВозвратыПоЗаказам ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ВозвратыПоЗаказам.ЗаказКлиента ИНДЕКСИРОВАТЬ ПО ЗаказПокупателя ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПродажи.Менеджер КАК МенеджерОсн, ВТПродажи.ЗаказПокупателя, ВТПродажи.Номенклатура, ВТПродажи.СуммаЗаказа, ВТПродажи.Оплата, ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0)) КОНЕЦ КАК ПлановаяСебестоимость, ВТПродажи.СуммаВзаиморасчетовПриход - ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ КАК ПлановаяВаловая, ВТПродажи.СуммаПродажи, ВЫБОР КОГДА ВТПродажи.СуммаПродажи > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.Себестоимость, 0) = 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) <> 0 ТОГДА ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) ИНАЧЕ ВТПродажи.Себестоимость КОНЕЦ КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК Себестоимость, ВТПродажи.СуммаПродажи - ВЫБОР КОГДА ВТПродажи.СуммаПродажи > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.Себестоимость, 0) = 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) <> 0 ТОГДА ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) ИНАЧЕ ВТПродажи.Себестоимость КОНЕЦ КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ВаловаяПрибыль, ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.СуммаПродажи, 0) = 0 ТОГДА 0 ИНАЧЕ ВЫРАЗИТЬ((ВТПродажи.СуммаПродажи - ВЫБОР КОГДА ВТПродажи.СуммаПродажи > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.Себестоимость, 0) = 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) <> 0 ТОГДА ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) ИНАЧЕ ВТПродажи.Себестоимость КОНЕЦ КОНЕЦ ИНАЧЕ ЕСТЬNULL(ВТПродажи.Себестоимость, 0) КОНЕЦ) / ВТПродажи.СуммаПродажи * 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК Рентабельность, ВТПродажи.СуммаКомиссии, ВТПродажи.КоличествоВозвратов ИЗ ВТПродажи КАК ВТПродажи ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены.Наименование = "Закупочная") КАК ЦеныНоменклатурыСрезПоследних ПО ВТПродажи.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗаказыПоставщикамОбороты.ЗаказПоставщику.ДокументОснование КАК ЗаказПокупателя, ЗаказыПоставщикамОбороты.Номенклатура КАК Номенклатура, СУММА(ЗаказыПоставщикамОбороты.ЗаказаноПриход) КАК ЗаказыПоставщикамКоличествоПриход, СУММА(ЕСТЬNULL(ЗаказПоставщикуТовары.Сумма, 0)) КАК ЗаказыПоставщикамСуммаВзаиморасчетовПриход ИЗ РегистрНакопления.ЗаказыПоставщикам.Обороты( , , , ЗаказПоставщику.ДокументОснование В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы)) КАК ЗаказыПоставщикамОбороты ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ПО ЗаказыПоставщикамОбороты.ЗаказПоставщику = ЗаказПоставщикуТовары.Ссылка И ЗаказыПоставщикамОбороты.Номенклатура = ЗаказПоставщикуТовары.Номенклатура СГРУППИРОВАТЬ ПО ЗаказыПоставщикамОбороты.Номенклатура, ЗаказыПоставщикамОбороты.ЗаказПоставщику.ДокументОснование) КАК ЗаказыПоставщикам ПО ВТПродажи.ЗаказПокупателя = ЗаказыПоставщикам.ЗаказПокупателя И ВТПродажи.Номенклатура = ЗаказыПоставщикам.Номенклатура Запрос который в СКД работает правильно - ВЫБРАТЬ ВложенныйЗапрос.ЗаказКлиента КАК ЗаказКлиента, МАКСИМУМ(ВложенныйЗапрос.ПолностьюОтгружен) КАК ПолностьюОтгружен, СУММА(ВложенныйЗапрос.ЗаказаноРасход) КАК ЗаказаноРасход ПОМЕСТИТЬ ВТЗаказы ИЗ (ВЫБРАТЬ ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента КАК ЗаказКлиента, ИСТИНА КАК ПолностьюОтгружен, ЗаказыКлиентовОстаткиИОбороты.ЗаказаноРасход КАК ЗаказаноРасход ИЗ РегистрНакопления.ЗаказыКлиентов.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК ЗаказыКлиентовОстаткиИОбороты ГДЕ ЗаказыКлиентовОстаткиИОбороты.ЗаказаноКонечныйОстаток = 0 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РасчетыСКлиентамиОбороты.ЗаказКлиента, ЛОЖЬ, 0 ИЗ РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНач, &ДатаКон, , ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента) КАК РасчетыСКлиентамиОбороты ГДЕ РасчетыСКлиентамиОбороты.СуммаРасход > 0) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.ЗаказКлиента ИНДЕКСИРОВАТЬ ПО ЗаказКлиента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОтчетБанкаПоОперациямЭквайринга.ЗаказКлиента, СУММА(ОтчетБанкаПоОперациямЭквайринга.СуммаКомиссии) КАК СуммаКомиссии ПОМЕСТИТЬ ВТЭквайринг ИЗ Документ.ОтчетБанкаПоОперациямЭквайринга КАК ОтчетБанкаПоОперациямЭквайринга ГДЕ ОтчетБанкаПоОперациямЭквайринга.Проведен И ОтчетБанкаПоОперациямЭквайринга.ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы) И ОтчетБанкаПоОперациямЭквайринга.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ОтчетБанкаПоОперациямЭквайринга.ЗаказКлиента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТЗаказы.ЗаказКлиента, ВозвратТоваровОтКлиента.Ссылка ПОМЕСТИТЬ ВсеВозвраты ИЗ ВТЗаказы КАК ВТЗаказы ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента ПО ВТЗаказы.ЗаказКлиента = ВозвратТоваровОтКлиента.ДокументРеализации.ЗаказКлиента ГДЕ ВозвратТоваровОтКлиента.Проведен И ВозвратТоваровОтКлиента.Дата МЕЖДУ &ДатаНач И &ДатаКон ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеВозвраты.ЗаказКлиента, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВсеВозвраты.Ссылка) КАК Ссылка ПОМЕСТИТЬ ВозвратыПоЗаказам ИЗ ВсеВозвраты КАК ВсеВозвраты СГРУППИРОВАТЬ ПО ВсеВозвраты.ЗаказКлиента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Менеджер КАК Менеджер, ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента КАК ЗаказПокупателя, ЗаказыКлиентовОстаткиИОбороты.Номенклатура, ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.СуммаДокумента КАК СуммаЗаказа, РасчетыСКлиентамиОбороты.СуммаРасход КАК Оплата, ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) КАК Себестоимость, ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот, 0) - ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) КАК ВаловаяПрибыль, ВЫБОР КОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) = 0 ТОГДА 0 ИНАЧЕ (ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот, 0) - ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0)) / ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СебестоимостьОборот, 0) КОНЕЦ КАК Рентальельность, ЗаказыКлиентовОстаткиИОбороты.ЗаказаноПриход КАК КоличествоПриход, ЗаказыКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаВзаиморасчетовПриход, ЗаказыКлиентовОстаткиИОбороты.ЗаказаноРасход КАК КоличествоРасход, ЕСТЬNULL(РасчетыСКлиентамиОбороты.СуммаРасход, 0) КАК СуммаВзаиморасчетовРасход, ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот, 0) КАК СуммаПродажи, ЕСТЬNULL(ВТЭквайринг.СуммаКомиссии, 0) КАК СуммаКомиссии, ЕСТЬNULL(ВозвратыПоЗаказам.Ссылка, 0) КАК КоличествоВозвратов ПОМЕСТИТЬ ВТПродажи ИЗ РегистрНакопления.ЗаказыКлиентов.ОстаткиИОбороты( , , , , ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы) И Номенклатура.ВидНоменклатуры.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)) КАК ЗаказыКлиентовОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты( , , , ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы ГДЕ ВТЗаказы.ПолностьюОтгружен = ИСТИНА)) КАК ВыручкаИСебестоимостьПродажОбороты ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента И ЗаказыКлиентовОстаткиИОбороты.Номенклатура = ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Обороты( &ДатаНач, &ДатаКон, , ЗаказКлиента В (ВЫБРАТЬ ВТЗаказы.ЗаказКлиента ИЗ ВТЗаказы КАК ВТЗаказы)) КАК РасчетыСКлиентамиОбороты ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = РасчетыСКлиентамиОбороты.ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ ВТЭквайринг КАК ВТЭквайринг ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ВТЭквайринг.ЗаказКлиента ЛЕВОЕ СОЕДИНЕНИЕ ВозвратыПоЗаказам КАК ВозвратыПоЗаказам ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ВозвратыПоЗаказам.ЗаказКлиента ИНДЕКСИРОВАТЬ ПО ЗаказПокупателя ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПродажи.Менеджер КАК МенеджерОсн, ВТПродажи.ЗаказПокупателя, ВТПродажи.Номенклатура, ВТПродажи.СуммаЗаказа, ВТПродажи.Оплата, ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0)) КОНЕЦ КАК ПлановаяСебестоимость, ВТПродажи.СуммаВзаиморасчетовПриход - ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ КАК ПлановаяВаловая, ВТПродажи.СуммаПродажи, ВЫБОР КОГДА ВТПродажи.СуммаПродажи > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.Себестоимость, 0) = 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) <> 0 ТОГДА ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) ИНАЧЕ ВТПродажи.Себестоимость КОНЕЦ КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК Себестоимость, ВТПродажи.СуммаПродажи - ВЫБОР КОГДА ВТПродажи.СуммаПродажи > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.Себестоимость, 0) = 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) <> 0 ТОГДА ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) ИНАЧЕ ВТПродажи.Себестоимость КОНЕЦ КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ВаловаяПрибыль, ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.СуммаПродажи, 0) = 0 ТОГДА 0 ИНАЧЕ ВЫРАЗИТЬ((ВТПродажи.СуммаПродажи - ВЫБОР КОГДА ВТПродажи.СуммаПродажи > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВТПродажи.Себестоимость, 0) = 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) = 0 ТОГДА ВТПродажи.КоличествоПриход * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) ИНАЧЕ ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход, 0) <> 0 ТОГДА ВТПродажи.КоличествоПриход * (ЗаказыПоставщикам.ЗаказыПоставщикамСуммаВзаиморасчетовПриход / ЗаказыПоставщикам.ЗаказыПоставщикамКоличествоПриход) ИНАЧЕ ВТПродажи.Себестоимость КОНЕЦ КОНЕЦ ИНАЧЕ ЕСТЬNULL(ВТПродажи.Себестоимость, 0) КОНЕЦ) / ВТПродажи.СуммаПродажи * 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК Рентабельность, ВТПродажи.СуммаКомиссии, ВТПродажи.КоличествоВозвратов ИЗ ВТПродажи КАК В | |||
| 1
    
        sqr4 11.05.17✎ 17:36 | 
        Прошу помощи     | |||
| 2
    
        vicof 11.05.17✎ 17:43 | 
        Возьми инструменты разработчика да сравни, что у тебя в консоли, что в скд.     | |||
| 3
    
        echo77 11.05.17✎ 17:44 | 
        (0) Я думал этот запрос никогда не кончится.
 Вложенный запрос оставить нельзя? | |||
| 4
    
        vicof 11.05.17✎ 17:44 | 
        (3) Наняли оптимизатора, видимо)     | |||
| 5
    
        sqr4 11.05.17✎ 17:46 | 
        (3) Во вложенном нельзя использовать "Разрешенные", а там РЛС включены, объект не найден выводит для ролей с неполными правами. А сейчас ошибка и под полными.     | |||
| 6
    
        sqr4 11.05.17✎ 17:47 | 
        (4) Главное чтобы не такого как ты наняли. Два поста КПД = 0     | |||
| 7
    
        vicof 11.05.17✎ 17:51 | 
        (6) И в чем логика?     | |||
| 8
    
        sqr4 11.05.17✎ 17:57 | 
        (7) А ты зачем комментируешь? Цель твоих комментариев?     | |||
| 9
    
        echo77 11.05.17✎ 17:59 | 
        (0) Как вариант - протащить поля, которые СКД удаляет через все пакеты запросов и затем в настройках поля СКД поставить галку Обязательное     | |||
| 10
    
        vicof 11.05.17✎ 18:14 | 
        (8) посмотри (2) сначала.     | |||
| 11
    
        vicof 11.05.17✎ 18:14 | 
        Ещё вопросы?     | |||
| 12
    
        Franchiser 11.05.17✎ 18:49 | 
        Нужно поля разыменовать: создай ещё 1 Вт и возьми их неё данные.     | |||
| 13
    
        Franchiser 11.05.17✎ 18:51 | 
        Возьми инструменты разработчика и смотри результат работы оптимизатора СКД в макете компоновки     | |||
| 14
    
        Franchiser 11.05.17✎ 18:53 | 
        Когда сложный запрос имеет смысл  использовать внешние наборы данных,  а не писать запрос в схеме скд     | |||
| 15
    
        sqr4 11.05.17✎ 19:04 | 
        (11) Смотри (0) и не задавай тупые вопросы и тупые умозаключения     | |||
| 16
    
        echo77 12.05.17✎ 16:26 | 
        + (9) Только сегодня видел схему коллеги - была такая же проблема, что СКД удаляет поля, которые нужны - она протащила эти поля через запросы пакета и установила флаг Обязательное - все работает     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |