gifts2017

Запрос для выгрузки каталога номенклатуры из Управление торговлей, редакция 11.0.4.6 в Битрикс

Опубликовал Константин (briz) в раздел Обработки - Ценообразование, прайсы

На данный момент не реализован обмен между УТ 11 и Битриксом. Сделать это самостоятельно легко.Предлагаю свой вариант текста запроса , который должен быть размещен в общем модуле  "ПроцедурыОбменаССайтом" и служит для подготовки данных для выгрузки в стандартный xml - файл обмена каталогом товаров.  Текст запроса переработан с учетом  изменений конфигурации УТ в.11.0.4.6.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    НоменклатураСХарактеристиками.НоменклатураСсылка КАК НоменклатураСсылка,
   
НоменклатураСХарактеристиками.ХарактеристикаСсылка КАК ХарактеристикаСсылка,
   
ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток - ТоварыНаСкладахОстатки.ВРезервеОстаток, 0) КАК Остаток
ПОМЕСТИТЬ ВремНоменклатураСХарактеристиками
ИЗ
    (ВЫБРАТЬ
       
Номенклатура.Ссылка КАК НоменклатураСсылка,
       
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаСсылка
    ИЗ
       
Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        (
НЕ Номенклатура.ЭтоГруппа)
       
И Номенклатура.ВидНоменклатуры.ТипНоменклатуры В(&МассивДопустимыхТиповНоменклатуры)
   
{ГДЕ
        Номенклатура.Ссылка.* КАК Номенклатура,
       
Номенклатура.ВидНоменклатуры.* КАК ВидНоменклатуры}

    ОБЪЕДИНИТЬ

    ВЫБРАТЬ
       
Номенклатура2.Ссылка,
       
ХарактеристикиНоменклатуры.Ссылка
   
ИЗ
       
Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2
            ПО (Номенклатура2.ВидНоменклатуры = ХарактеристикиНоменклатуры.Владелец
                    ИЛИ Номенклатура2.Ссылка = ХарактеристикиНоменклатуры.Владелец)
               
И (Номенклатура2.ВидНоменклатуры.ТипНоменклатуры В (&МассивДопустимыхТиповНоменклатуры))
   
{ГДЕ
        Номенклатура2.Ссылка.* КАК Номенклатура,
       
Номенклатура2.ВидНоменклатуры.* КАК ВидНоменклатуры}) КАК НоменклатураСХарактеристиками
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Склад).*, (Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстатки
        ПО НоменклатураСХарактеристиками.НоменклатураСсылка = ТоварыНаСкладахОстатки.Номенклатура
            И НоменклатураСХарактеристиками.ХарактеристикаСсылка = ТоварыНаСкладахОстатки.Характеристика
ГДЕ
    ((
НЕ &КлассифицироватьПоЦеновымГруппам)
           
ИЛИ &КлассифицироватьПоЦеновымГруппам
               
И (НЕ НоменклатураСХарактеристиками.НоменклатураСсылка.ЦеноваяГруппа = ЗНАЧЕНИЕ(Справочник.ЦеновыеГруппы.ПустаяСсылка)))
{ГДЕ
    (ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток - ТоварыНаСкладахОстатки.ВРезервеОстаток, 0)) КАК Остаток}

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка,
   
ХарактеристикаСсылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   
ВремНоменклатураСХарактеристиками.НоменклатураСсылка КАК НоменклатураСсылка,
   
ЗначенияСвойствОбъектов.Свойство КАК СвойствоНоменклатурыСсылка,
   
ЗначенияСвойствОбъектов.Значение
ПОМЕСТИТЬ ВремЗначенияСвойствНоменклатуры
ИЗ
   
ВремНоменклатураСХарактеристиками КАК ВремНоменклатураСХарактеристиками
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ЗначенияСвойствОбъектов
        ПО ВремНоменклатураСХарактеристиками.ХарактеристикаСсылка = ЗначенияСвойствОбъектов.Ссылка
{ГДЕ
    ЗначенияСвойствОбъектов.Свойство.* КАК СвойствоНоменклатуры}

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка,
   
СвойствоНоменклатурыСсылка
;

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

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка,
   
ХарактеристикаСсылка,
   
ТипЦенСсылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   
ВремНоменклатураСХарактеристиками.ХарактеристикаСсылка КАК ХарактеристикаСсылка,
   
ЗначенияСвойствОбъектов.Свойство КАК СвойствоХарактеристикиСсылка,
   
ЗначенияСвойствОбъектов.Значение КАК ЗначениеСвойстваХарактеристики
ПОМЕСТИТЬ ВремЗначенияСвойствХарактеристик
ИЗ
   
ВремНоменклатураСХарактеристиками КАК ВремНоменклатураСХарактеристиками
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ЗначенияСвойствОбъектов
        ПО ВремНоменклатураСХарактеристиками.ХарактеристикаСсылка = ЗначенияСвойствОбъектов.Ссылка

ИНДЕКСИРОВАТЬ ПО
   
ХарактеристикаСсылка,
   
СвойствоХарактеристикиСсылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   
ВЫРАЗИТЬ(ДополнительныеСведения.Объект КАК Справочник.Номенклатура) КАК Номенклатура,
   
ДополнительныеСведения.Свойство,
   
ДополнительныеСведения.Значение
ПОМЕСТИТЬ ВремДопРеквизиты
ИЗ
   
РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
{ГДЕ
    (ВЫРАЗИТЬ(ДополнительныеСведения.Объект КАК Справочник.Номенклатура)).* КАК Номенклатура,
    (
ВЫРАЗИТЬ(ДополнительныеСведения.Объект КАК Справочник.Номенклатура).ВидНоменклатуры).* КАК ВидНоменклатуры}

ИНДЕКСИРОВАТЬ ПО
   
Номенклатура
;

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

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка,
   
ХарактеристикаСсылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   
ВремНоменклатураСХарактеристиками.НоменклатураСсылка КАК НоменклатураСсылка,
   
ЕСТЬNULL(ХранилищеДополнительнойИнформации.Ссылка, ЗНАЧЕНИЕ(Справочник.Файлы.ПустаяСсылка)) КАК ХранилищеСсылка
ПОМЕСТИТЬ ВремФайлы
ИЗ
   
Справочник.Файлы КАК ХранилищеДополнительнойИнформации
        ЛЕВОЕ СОЕДИНЕНИЕ ВремНоменклатураСХарактеристиками КАК ВремНоменклатураСХарактеристиками
        ПО (ВремНоменклатураСХарактеристиками.НоменклатураСсылка = ХранилищеДополнительнойИнформации.ВладелецФайла)

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка
;

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

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка,
   
ХарактеристикаСсылка,
   
Условие,
   
Регистратор,
   
ПолучательСкидки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   
СкидкиНоменклатура.НоменклатураСсылка КАК НоменклатураСсылка,
   
СкидкиНоменклатура.ХарактеристикаСсылка КАК ХарактеристикаСсылка,
   
СкидкиНоменклатура.Условие КАК Условие,
   
СкидкиНоменклатура.ЗначениеУсловия,
   
МИНИМУМ(СкидкиНоменклатура.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки,
   
СкидкиНоменклатура.ОграничениеСкидкиНаценки,
   
СкидкиНоменклатура.ДатаОкончания,
   
СкидкиНоменклатура.ПолучательСкидки КАК ПолучательСкидки,
   
СкидкиНоменклатура.Валюта,
   
СкидкиНоменклатура.Регистратор КАК Регистратор,
   
СкидкиНоменклатура.СкидкаНаценкаСсылка,
   
СкидкиНоменклатура.УсловиеСсылка
ПОМЕСТИТЬ ВремСкидки
ИЗ
   
СкидкиНоменклатура КАК СкидкиНоменклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
           
СкидкиНоменклатура.РодительСкидкаНаценка КАК РодительСкидкаНаценка,
           
МИНИМУМ(СкидкиНоменклатура.Приоритет) КАК Приоритет,
           
СкидкиНоменклатураМаксимум.НоменклатураСсылка КАК НоменклатураСсылка,
           
СкидкиНоменклатураМаксимум.ХарактеристикаСсылка КАК ХарактеристикаСсылка
        ИЗ
           
СкидкиНоменклатура КАК СкидкиНоменклатура
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
                   
СкидкиНоменклатура.РодительСкидкаНаценка КАК РодительСкидкаНаценка,
                   
МАКСИМУМ(СкидкиНоменклатура.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки,
                   
СкидкиНоменклатура.НоменклатураСсылка КАК НоменклатураСсылка,
                   
СкидкиНоменклатура.ХарактеристикаСсылка КАК ХарактеристикаСсылка
                ИЗ
                   
СкидкиНоменклатура КАК СкидкиНоменклатура
                ГДЕ
                   
СкидкиНоменклатура.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Максимум)

                СГРУППИРОВАТЬ ПО
                   
СкидкиНоменклатура.РодительСкидкаНаценка,
                   
СкидкиНоменклатура.НоменклатураСсылка,
                   
СкидкиНоменклатура.ХарактеристикаСсылка) КАК СкидкиНоменклатураМаксимум
                ПО СкидкиНоменклатура.РодительСкидкаНаценка = СкидкиНоменклатураМаксимум.РодительСкидкаНаценка
                    И СкидкиНоменклатура.ПроцентСкидкиНаценки = СкидкиНоменклатураМаксимум.ПроцентСкидкиНаценки
                    И СкидкиНоменклатура.НоменклатураСсылка = СкидкиНоменклатураМаксимум.НоменклатураСсылка
                    И СкидкиНоменклатура.ХарактеристикаСсылка = СкидкиНоменклатураМаксимум.ХарактеристикаСсылка
        ГДЕ
           
СкидкиНоменклатура.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Максимум)

        СГРУППИРОВАТЬ ПО
           
СкидкиНоменклатура.РодительСкидкаНаценка,
           
СкидкиНоменклатураМаксимум.НоменклатураСсылка,
           
СкидкиНоменклатураМаксимум.ХарактеристикаСсылка) КАК МаксимумВРодителе
        ПО СкидкиНоменклатура.РодительСкидкаНаценка = МаксимумВРодителе.РодительСкидкаНаценка
            И СкидкиНоменклатура.Приоритет = МаксимумВРодителе.Приоритет
            И СкидкиНоменклатура.НоменклатураСсылка = МаксимумВРодителе.НоменклатураСсылка
            И СкидкиНоменклатура.ХарактеристикаСсылка = МаксимумВРодителе.ХарактеристикаСсылка

СГРУППИРОВАТЬ ПО
   
СкидкиНоменклатура.Условие,
   
СкидкиНоменклатура.Валюта,
   
СкидкиНоменклатура.Регистратор,
   
СкидкиНоменклатура.ДатаОкончания,
   
СкидкиНоменклатура.НоменклатураСсылка,
   
СкидкиНоменклатура.СкидкаНаценкаСсылка,
   
СкидкиНоменклатура.ХарактеристикаСсылка,
   
СкидкиНоменклатура.ПолучательСкидки,
   
СкидкиНоменклатура.ЗначениеУсловия,
   
СкидкиНоменклатура.ОграничениеСкидкиНаценки,
   
СкидкиНоменклатура.УсловиеСсылка

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

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

                СГРУППИРОВАТЬ ПО
                   
СкидкиНоменклатура.РодительСкидкаНаценка,
                   
СкидкиНоменклатура.НоменклатураСсылка,
                   
СкидкиНоменклатура.ХарактеристикаСсылка) КАК СкидкиНоменклатураМинимум
                ПО СкидкиНоменклатура.ПроцентСкидкиНаценки = СкидкиНоменклатураМинимум.ПроцентСкидкиНаценки
                    И СкидкиНоменклатура.РодительСкидкаНаценка = СкидкиНоменклатураМинимум.РодительСкидкаНаценка
                    И СкидкиНоменклатура.НоменклатураСсылка = СкидкиНоменклатураМинимум.НоменклатураСсылка
                    И СкидкиНоменклатура.ХарактеристикаСсылка = СкидкиНоменклатураМинимум.ХарактеристикаСсылка
        ГДЕ
           
СкидкиНоменклатура.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Минимум)

        СГРУППИРОВАТЬ ПО
           
СкидкиНоменклатура.РодительСкидкаНаценка,
           
СкидкиНоменклатураМинимум.НоменклатураСсылка,
           
СкидкиНоменклатураМинимум.ХарактеристикаСсылка) КАК МинимумВРодителе
        ПО СкидкиНоменклатура.РодительСкидкаНаценка = МинимумВРодителе.РодительСкидкаНаценка
            И СкидкиНоменклатура.Приоритет = МинимумВРодителе.Приоритет
            И СкидкиНоменклатура.НоменклатураСсылка = МинимумВРодителе.НоменклатураСсылка
            И СкидкиНоменклатура.ХарактеристикаСсылка = МинимумВРодителе.ХарактеристикаСсылка

СГРУППИРОВАТЬ ПО
   
СкидкиНоменклатура.Регистратор,
   
СкидкиНоменклатура.Валюта,
   
СкидкиНоменклатура.ДатаОкончания,
   
СкидкиНоменклатура.ПолучательСкидки,
   
СкидкиНоменклатура.СкидкаНаценкаСсылка,
   
СкидкиНоменклатура.ХарактеристикаСсылка,
   
СкидкиНоменклатура.НоменклатураСсылка,
   
СкидкиНоменклатура.Условие,
   
СкидкиНоменклатура.ЗначениеУсловия,
   
СкидкиНоменклатура.ОграничениеСкидкиНаценки,
   
СкидкиНоменклатура.УсловиеСсылка

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

ВЫБРАТЬ РАЗЛИЧНЫЕ
   
СложениеУмножение.НоменклатураСсылка,
   
СложениеУмножение.ХарактеристикаСсылка,
   
СложениеУмножение.Условие,
   
СложениеУмножение.ЗначениеУсловия,
   
МИНИМУМ(СложениеУмножение.ПроцентСкидкиНаценки),
   
СложениеУмножение.ОграничениеСкидкиНаценки,
   
СложениеУмножение.ДатаОкончания,
   
СложениеУмножение.ПолучательСкидки,
   
СложениеУмножение.Валюта,
   
СложениеУмножение.Регистратор,
   
СложениеУмножение.СкидкаНаценкаСсылка,
   
СложениеУмножение.УсловиеСсылка
ИЗ
   
СкидкиНоменклатура КАК СложениеУмножение
ГДЕ
    (
СложениеУмножение.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Сложение)
           
ИЛИ СложениеУмножение.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Умножение)
           
ИЛИ СложениеУмножение.РодительСкидкаНаценка ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
   
СложениеУмножение.Регистратор,
   
СложениеУмножение.ПолучательСкидки,
   
СложениеУмножение.НоменклатураСсылка,
   
СложениеУмножение.Валюта,
   
СложениеУмножение.ХарактеристикаСсылка,
   
СложениеУмножение.ДатаОкончания,
   
СложениеУмножение.Условие,
   
СложениеУмножение.ЗначениеУсловия,
   
СложениеУмножение.ОграничениеСкидкиНаценки,
   
СложениеУмножение.СкидкаНаценкаСсылка,
   
СложениеУмножение.УсловиеСсылка

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

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

        СГРУППИРОВАТЬ ПО
           
СкидкиНоменклатура.РодительСкидкаНаценка,
           
СкидкиНоменклатура.НоменклатураСсылка,
           
СкидкиНоменклатура.ХарактеристикаСсылка) КАК МинимальныйПриоритет
        ПО СкидкиНоменклатура.Приоритет = МинимальныйПриоритет.Приоритет
            И СкидкиНоменклатура.РодительСкидкаНаценка = МинимальныйПриоритет.РодительСкидкаНаценка
            И СкидкиНоменклатура.НоменклатураСсылка = МинимальныйПриоритет.НоменклатураСсылка
            И СкидкиНоменклатура.ХарактеристикаСсылка = МинимальныйПриоритет.ХарактеристикаСсылка

СГРУППИРОВАТЬ ПО
   
СкидкиНоменклатура.НоменклатураСсылка,
   
СкидкиНоменклатура.ПолучательСкидки,
   
СкидкиНоменклатура.Валюта,
   
СкидкиНоменклатура.ДатаОкончания,
   
СкидкиНоменклатура.Условие,
   
СкидкиНоменклатура.ХарактеристикаСсылка,
   
СкидкиНоменклатура.Регистратор,
   
СкидкиНоменклатура.СкидкаНаценкаСсылка,
   
СкидкиНоменклатура.ЗначениеУсловия,
   
СкидкиНоменклатура.ОграничениеСкидкиНаценки,
   
СкидкиНоменклатура.УсловиеСсылка

ИНДЕКСИРОВАТЬ ПО
   
НоменклатураСсылка,
   
ХарактеристикаСсылка,
   
Условие,
   
Регистратор,
   
ПолучательСкидки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   
НЕОПРЕДЕЛЕНО КАК Регистратор,
   
ВремяДействияСкидокСрезПоследних.ДеньНедели,
   
ВремяДействияСкидокСрезПоследних.ВремяНачала,
   
ВремяДействияСкидокСрезПоследних.ВремяОкончания
ПОМЕСТИТЬ ВремСкидкиВремяДействия
ИЗ
   
ВремСкидки КАК ВремСкидки
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УсловияПредоставленияСкидокНаценок.ВремяДействия КАК ВремяДействияСкидокСрезПоследних
        ПО ВремСкидки.УсловиеСсылка = ВремяДействияСкидокСрезПоследних.Ссылка

ИНДЕКСИРОВАТЬ ПО
   
Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремЗначенияСвойствНоменклатуры.НоменклатураСсылка,
   
ВремЗначенияСвойствНоменклатуры.СвойствоНоменклатурыСсылка,
   
ВремЗначенияСвойствНоменклатуры.Значение
ИЗ
   
ВремЗначенияСвойствНоменклатуры КАК ВремЗначенияСвойствНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремЗначенияСвойствХарактеристик.ХарактеристикаСсылка,
   
ВремЗначенияСвойствХарактеристик.СвойствоХарактеристикиСсылка,
   
ВремЗначенияСвойствХарактеристик.ЗначениеСвойстваХарактеристики
ИЗ
   
ВремЗначенияСвойствХарактеристик КАК ВремЗначенияСвойствХарактеристик
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремЦены.НоменклатураСсылка,
   
ВремЦены.ХарактеристикаСсылка,
   
ВремЦены.Остаток,
   
ВремЦены.ТипЦенСсылка,
   
ВремЦены.ВалютаЦеныСсылка,
   
ВремЦены.Цена,
   
ВремЦены.ЕдиницаИзмеренияЦеныСсылка
ИЗ
   
ВремЦены КАК ВремЦены
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремШтрихКоды.НоменклатураСсылка,
   
ВремШтрихКоды.ХарактеристикаСсылка,
   
ВремШтрихКоды.Штрихкод
ИЗ
   
ВремШтрихКоды КАК ВремШтрихКоды
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремФайлы.НоменклатураСсылка,
   
ВремФайлы.ХранилищеСсылка
ИЗ
   
ВремФайлы КАК ВремФайлы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремСкидки.НоменклатураСсылка,
   
ВремСкидки.ХарактеристикаСсылка,
   
ВремСкидки.Условие,
   
ВремСкидки.ЗначениеУсловия,
   
ВремСкидки.ПроцентСкидкиНаценки,
   
ВремСкидки.ОграничениеСкидкиНаценки,
   
ВремСкидки.ДатаОкончания,
   
ВремСкидки.ПолучательСкидки,
   
ВремСкидки.Валюта,
   
ВремСкидки.Регистратор
ИЗ
   
ВремСкидки КАК ВремСкидки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремСкидкиВремяДействия.Регистратор,
   
ВремСкидкиВремяДействия.ДеньНедели,
   
ВремСкидкиВремяДействия.ВремяНачала,
   
ВремСкидкиВремяДействия.ВремяОкончания
ИЗ
   
ВремСкидкиВремяДействия КАК ВремСкидкиВремяДействия
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 0
   
ВремДопРеквизиты.Номенклатура,
   
ВремДопРеквизиты.Свойство,
   
ВремДопРеквизиты.Значение
ИЗ
   
ВремДопРеквизиты КАК ВремДопРеквизиты

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей Константинов (alexk-is) 17.09.10 13:34
Текст запроса в публикации можно раскрасить получше
2. Константин (briz) 17.09.10 14:04
3. Сергей Кучеров (СергейКа) 17.09.10 16:37
Ахренеть. Имхо как раз тот случай, когда текст запроса лучше в файл было кинуть. Вообще не читабельно.
4. Константин (briz) 18.09.10 13:17
(3) Данный запрос - набор "коротких" виртуальных таблиц ,может быть, за исключением парочек.Те, кому действительно это надо ,уверен, разберутся ... в любом случае получиться быстрее , чем писать самому заново.
И да, как отредактировать эту статью?
5. Константин (briz) 18.09.10 13:20
(3) Все таки это статья, а не инструмент. Инструмент пока не выкладываю - ибо он у меня пока полу-рабочий - работает только выгрузка каталога товара в Битрикс. Загрузка еще заказов в работе.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа