V82.ОбщиеМодули.Ценообразование.СформироватьЗапросПоЦенам C# (CSharp) Method

СформироватьЗапросПоЦенам() public method

public СформироватьЗапросПоЦенам ( ) : object
return object
        public object СформироватьЗапросПоЦенам(/*СтруктураЗначений, СпособЗаполненияЦен, МассивНоменклатуры,
                                  ДатаДокумента, Контрагент, ДоговорКонтрагента = Неопределено,
                                  Склад = Неопределено*/)
        {
            //СтруктураЗначений.Свойство("НовыйУсловиеПродаж", УсловиеПродаж);
            /*// Достанем нужные цены запросом.
            */
            //Запрос = Новый Запрос;
            //Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры);
            //Запрос.УстановитьПараметр("Дата", ПолучитьАктуальнуюДатуРасчетаЦен(ДатаДокумента));
            //Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
            //Запрос.УстановитьПараметр("Контрагент", Контрагент);
            //Запрос.УстановитьПараметр("УсловиеПродаж", УсловиеПродаж);
            if(true/*СпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры*/)
            {
                //Запрос.УстановитьПараметр("ТипЦен", СтруктураЗначений.НовыйТипЦен);
                /*Запрос.Текст = "
            |ВЫБРАТЬ
            |	БазовыеЦены.Номенклатура                                     КАК Номенклатура,
            |	БазовыеЦены.ХарактеристикаНоменклатуры                       КАК ХарактеристикаНоменклатуры,
            |	БазовыеЦены.Номенклатура.ЕдиницаХраненияОстатков             КАК ЕдиницаХраненияОстатков,
            |	БазовыеЦены.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентОсновнойЕдиницы,
            |	БазовыеЦены.ТипЦен                                           КАК ТипЦен,
            |	ЕСТЬNULL(	ВЫБОР	КОГДА БазовыеЦены.Цена = 0.00 И БазовыеЦены.ТипЦен.Рассчитывается
            |						ТОГДА ЦеныНоменклатурыРассчитываемые.Цена
            |						ИНАЧЕ БазовыеЦены.Цена
            |				КОНЕЦ, 0.00)                                     КАК Цена,
            |	ВЫБОР	КОГДА БазовыеЦены.Цена = 0.00 И БазовыеЦены.ТипЦен.Рассчитывается
            |			ТОГДА ЕСТЬNULL(БазовыеЦены.СпособРасчетаЦены, БазовыеЦены.ТипЦен.СпособРасчетаЦены)
            |			ИНАЧЕ NULL
            |	КОНЕЦ                                                        КАК СпособРасчетаЦены,
            |	ВЫБОР	КОГДА БазовыеЦены.Цена = 0.00 И БазовыеЦены.ТипЦен.Рассчитывается
            |			ТОГДА ЕСТЬNULL(БазовыеЦены.ПроцентСкидкиНаценки, БазовыеЦены.ТипЦен.ПроцентСкидкиНаценки)
            |			ИНАЧЕ 0.00
            |	КОНЕЦ                                                        КАК ПроцентСкидкиНаценки,
            |	ВЫБОР	КОГДА БазовыеЦены.Цена = 0.00 И БазовыеЦены.ТипЦен.Рассчитывается
            |			ТОГДА ЦеныНоменклатурыРассчитываемые.Валюта
            |			ИНАЧЕ БазовыеЦены.Валюта
            |	КОНЕЦ                                                        КАК ВалютаЦены,
            |	ВЫБОР	КОГДА БазовыеЦены.Цена = 0.00 И БазовыеЦены.ТипЦен.Рассчитывается
            |			ТОГДА ЦеныНоменклатурыРассчитываемые.ЕдиницаИзмерения
            |			ИНАЧЕ БазовыеЦены.ЕдиницаИзмерения
            |	КОНЕЦ                                                        КАК ЕдиницаИзмеренияЦены,
            |	ВЫБОР	КОГДА БазовыеЦены.Цена = 0.00 И БазовыеЦены.ТипЦен.Рассчитывается
            |			ТОГДА ЦеныНоменклатурыРассчитываемые.ЕдиницаИзмерения.Коэффициент
            |			ИНАЧЕ БазовыеЦены.ЕдиницаИзмерения.Коэффициент
            |	КОНЕЦ                                                        КАК КоэффициентЕдиницыЦены,
            |	ЕСТЬNULL(НаценкиПоУсловиямПродаж.ПроцентНаценки, 0.00)       КАК ПроцентНаценкиПоУсловиямПродаж,
            |	КурсыВалютСрезПоследних.Кратность                            КАК КратностьВалютыЦены,
            |	КурсыВалютСрезПоследних.Курс                                 КАК КурсВалютыЦены
            |ИЗ
            |	(ВЫБРАТЬ РАЗЛИЧНЫЕ
            |		СпрНоменклатура.Номенклатура КАК Номенклатура,
            |		ЕСТЬNULL(УсловияПоставок.ХарактеристикаНоменклатуры, ЕСТЬNULL(ЦеныНоменклатуры.ХарактеристикаНоменклатуры, СпрНоменклатура.ХарактеристикаНоменклатуры)) КАК ХарактеристикаНоменклатуры,
            |		ВЫБОР	КОГДА ТипыЦенПоГруппам.ТипЦен ЕСТЬ NULL
            |						ИЛИ ТипыЦенПоГруппам.ТипЦен = ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)
            |				ТОГДА &ТипЦен
            |				ИНАЧЕ ТипыЦенПоГруппам.ТипЦен
            |		КОНЕЦ КАК ТипЦен,
            |		ВЫБОР	КОГДА УсловияПоставок.Номенклатура ЕСТЬ NULL ИЛИ ЕСТЬNULL(УсловияПоставок.Цена, 0.00) = 0.00
            |				ТОГДА ЦеныНоменклатуры.СпособРасчетаЦены
            |				ИНАЧЕ NULL
            |		КОНЕЦ КАК СпособРасчетаЦены,
            |		ВЫБОР	КОГДА УсловияПоставок.Номенклатура ЕСТЬ NULL ИЛИ ЕСТЬNULL(УсловияПоставок.Цена, 0.00) = 0.00
            |				ТОГДА ЦеныНоменклатуры.ПроцентСкидкиНаценки
            |				ИНАЧЕ 0.00
            |		КОНЕЦ КАК ПроцентСкидкиНаценки,
            |		ВЫБОР	КОГДА ЕСТЬNULL(УсловияПоставок.Цена, 0.00) = 0.00
            |				ТОГДА ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0.00)
            |				ИНАЧЕ ЕСТЬNULL(УсловияПоставок.Цена, 0.00)
            |		КОНЕЦ КАК Цена,
            |		ВЫБОР	КОГДА ЕСТЬNULL(УсловияПоставок.Цена, 0.00) = 0.00
            |				ТОГДА ЦеныНоменклатуры.ЕдиницаИзмерения
            |				ИНАЧЕ УсловияПоставок.ЕдиницаИзмерения
            |		КОНЕЦ КАК ЕдиницаИзмерения,
            |		ВЫБОР	КОГДА ЕСТЬNULL(УсловияПоставок.Цена, 0.00) = 0.00
            |				ТОГДА ЦеныНоменклатуры.Валюта
            |				ИНАЧЕ УсловияПоставок.ВалютаЦены
            |		КОНЕЦ КАК Валюта
            |		ИЗ
            |		(	ВЫБРАТЬ
            |				СпрХарактеристики.Владелец КАК Номенклатура,
            |				СпрХарактеристики.Ссылка КАК ХарактеристикаНоменклатуры
            |			ИЗ
            |				Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
            |			ГДЕ
            |				СпрХарактеристики.Владелец В (&МассивНоменклатуры)

            |			ОБЪЕДИНИТЬ ВСЕ

            |			ВЫБРАТЬ
            |				СпрНоменклатура.Ссылка КАК Номенклатура,
            |				ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры
            |			ИЗ
            |				Справочник.Номенклатура КАК СпрНоменклатура
            |			ГДЕ
            |				СпрНоменклатура.Ссылка В (&МассивНоменклатуры)
            |		) КАК СпрНоменклатура
            |		ЛЕВОЕ СОЕДИНЕНИЕ
            |			РегистрСведений.ТипыЦенПоГруппамНоменклатурыДляПокупателей.СрезПоследних(&Дата, Контрагент = &Контрагент) КАК ТипыЦенПоГруппам
            |		ПО
            |			ТипыЦенПоГруппам.НоменклатурнаяЦеноваяГруппа = СпрНоменклатура.Номенклатура.ЦеноваяГруппа
            |			ИЛИ ТипыЦенПоГруппам.НоменклатурнаяЦеноваяГруппа = СпрНоменклатура.Номенклатура.НоменклатурнаяГруппа
            |		ЛЕВОЕ СОЕДИНЕНИЕ

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