Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запрос по скидкам
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Михрутка
1С 8.3.9.1850 УТП 1.2.27.6
Стоит задача в алгоритм действия скидок, добавить условие чтобы скидки срабатывали при наличии у покупателя дисконтной карты. Т.е. должен быть такой вариант, например, что если стоит условие "количество товара превысило" например 5 штук и стоит признак "Только для дисконтных карт", то эта скидка срабатывает только при наличии у покупателя карты.
В регистр сведений "СкидкиНаценкиНоменклатуры", добавил ресурс "СкидкиТолькоДляКарт", добавил флаг в документ "Установка скидок номенклатуры", который устанавливает этот ресурс. Теперь осталось доработать запрос в общем модуле в функции "ЗапросПоСкидкам" и здесь основная трудность )) т.к. там такой запрос в котором я не очень могу разобраться )))
Вот собственно запрос:

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


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


Но что-то не получается (((
И как лучше выборку ограничить или в условия выборки, что-то я никак не пойму.

Кто разбирается, можете позсказать?


 i 

Большие куски кода лучше прятать
 
Flexy
О Майн Год! Там же, в документе "Установка скидок номенклатуры" есть условие "По виду дисконтной карты". Назначьте дисконтным картам какой-то вид.
В документе условие = По виду дисконтных карт.
В Типе назначаемой скидки условие = Количество одного товара в документе превысило...

Михрутка
Цитата(Flexy @ 09.02.17, 11:59) необходимо зарегистрироваться для просмотра ссылки
О Майн Год! Там же, в документе "Установка скидок номенклатуры" есть условие "По виду дисконтной карты". Назначьте дисконтным картам какой-то вид.
В документе условие = По виду дисконтных карт.
В Типе назначаемой скидки условие = Количество одного товара в документе превысило...

А так не работает. Если бы так работало, то я бы так сделал. Но оно не работает. Или это ошибка именно моей конфигурации? Тип скидки служит для быстрого заполнения реквизитов документа "Установка скидок номенклатуры"
Flexy
Можно так попробовать:
...
|    ГДЕ
    |        (ВремяДействия.ДеньНедели ЕСТЬ NULL
    |           ИЛИ ВремяДействия.ДеньНедели = &ДеньНедели
    |           И &ТекущееВремя МЕЖДУ ВремяДействия.ВремяНачала И ВремяДействия.ВремяОкончания)
    |           И РегСкидкиНоменклатуры.Валюта <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
    //|           И РегСкидкиНоменклатуры.ПроцентСкидкиНаценки <> 0
    |           И (РегСкидкиНоменклатуры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ИЛИ КОНЕЦПЕРИОДА(РегСкидкиНоменклатуры.ДатаОкончания, ДЕНЬ) >= &Дата)
    |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) И ВЫРАЗИТЬ(РегСкидкиНоменклатуры.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность < &Сумма ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента))
    |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуОплаты) И РегСкидкиНоменклатуры.ЗначениеУсловия = &ВидОплаты ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуОплаты))
    |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт) И РегСкидкиНоменклатуры.ЗначениеУсловия = &ВидДисконтнойКарты ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт))
    |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте) И РегСкидкиНоменклатуры.ЗначениеУсловия = &ДисконтнаяКарта ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте))
// Flexy    
    |           И ВЫБОР КОГДА &ДисконтнаяКарта <> ЗНАЧЕНИЕ(Справочник.ИнформационныеКарты.ПустаяСсылка) ТОГДА РегСкидкиНоменклатуры.СкидкиТолькоДляКарт = ИСТИНА КОНЕЦ
//-----


З.ы. Не проверял.
Михрутка
Flexy @ Вчера, 16:38 необходимо зарегистрироваться для просмотра ссылки ,
Нет так не будет работать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.