|
СКД не выводит поля | ☑ | ||
---|---|---|---|---|
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) Только сегодня видел схему коллеги - была такая же проблема, что СКД удаляет поля, которые нужны - она протащила эти поля через запросы пакета и установила флаг Обязательное - все работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |