Наверное я первый, кому понадобились скидки по дисконтным картам с отбором по дополнительному свойству. Столкнулся с тем, что скидки просто не работали.
Релиз 4.1.01.22, в обработке РасчетСкидок, функция ПодобратьСтрочнуюСкидку строки с 951 по 962:
Данный код никогда не сработает, так как объекту присваивается ссылка на документ, вместо ссылки на номенклатуру. Также не имеет смысла проверка на то, что документ новый. Скорее всего копипаст кода из расчета шапочной скидки, так как там нельзя получить свойство для незаписанного документа.
У меня работает вот так:
Релиз 4.1.01.22, в обработке РасчетСкидок, функция ПодобратьСтрочнуюСкидку строки с 951 по 962:
Код |
---|
Если ЗначениеЗаполнено(ТекСтрокаПретендент.ВидСвойства) И ЗначениеЗаполнено(ТекСтрокаПретендент.Свойство) Тогда Если НЕ ЭтотНовыйДокумент Тогда СтруктураВыборки.Объект = СсылкаДокумент; СтруктураВыборки.Свойство = ТекСтрокаПретендент.ВидСвойства; СтрСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураВыборки); Если СтрСвойств.Значение <> ТекСтрокаПретендент.Свойство Тогда Продолжить; КонецЕсли; Иначе Продолжить; КонецЕсли; КонецЕсли; |
Данный код никогда не сработает, так как объекту присваивается ссылка на документ, вместо ссылки на номенклатуру. Также не имеет смысла проверка на то, что документ новый. Скорее всего копипаст кода из расчета шапочной скидки, так как там нельзя получить свойство для незаписанного документа.
У меня работает вот так:
Код |
---|
Если ЗначениеЗаполнено(ТекСтрокаПретендент.ВидСвойства) И ЗначениеЗаполнено(ТекСтрокаПретендент.Свойство) Тогда СтруктураВыборки.Объект = Номенклатура.Ссылка; СтруктураВыборки.Свойство = ТекСтрокаПретендент.ВидСвойства; СтрСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(СтруктураВыборки); Если СтрСвойств.Значение <> ТекСтрокаПретендент.Свойство Тогда Продолжить; КонецЕсли; КонецЕсли; |