#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если Объект.Ссылка.Пустая() Тогда
СкидкиНаценкиСервер.ПриСозданииЧтенииНаСервере(ЭтотОбъект);
КонецЕсли;
УстановитьНастройкиЭлементовВариантовУсловийПоНоменклатуре(ЭтотОбъект, "ЗаРазовыйОбъемПродаж");
УстановитьНастройкиЭлементовВариантовУсловийПоНоменклатуре(ЭтотОбъект, "ЗаНакопленныйОбъемПродаж");
ВалютаОграниченияНеИспользоватьНесколькоВалют = Объект.ВалютаОграничения;
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
СкидкиНаценкиСервер.ПриСозданииЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
СкидкиНаценкиСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, "УсловиеПредоставления");
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
СкидкиНаценкиКлиентСервер.ОбновитьРеквизитыАвтонаименования(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТипСравненияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗначениеУсловияПредоставленияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВалютаОграниченияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура СегментНоменклатурыПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВариантНакопленияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПериодНакопленияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ТипСравненияЗаНакопленныйОбъемПродажПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗначениеУсловияПредоставленияЗаНакопленныйОбъемПродажПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВалютаОграниченияЗаНакопленныйОбъемПродажПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура СегментНоменклатурыЗаНакопленныйОбъемПродажПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ГрафикОплатыПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура СегментНоменклатурыОграниченияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВремяДействияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ФормаОплатыПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ГруппаПользователейПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВидКартыЛояльностиПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура КоличествоПериодовНакопленияПриИзменении(Элемент)
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура УсловиеПредоставленияПриИзменении(Элемент)
СкидкиНаценкиКлиентСервер.УсловиеПредоставленияПриИзмененииНаСервере(ЭтотОбъект);
Объект.Наименование = "";
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВариантОпределенияПериодаНакопительнойСкидкиПриИзменении(Элемент)
СкидкиНаценкиКлиентСервер.ВариантОпределенияПериодаНакопительнойСкидкиПриИзмененииНаСервере(ЭтотОбъект);
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура КритерийПримененияЗаОбъемПродажПриИзменении(Элемент)
СкидкиНаценкиКлиентСервер.КритерийПримененияЗаОбъемПродажПриИзмененииНаСервере(ЭтотОбъект);
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОтборЗаРазовыйОбъемПродажОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СкидкиНаценкиКлиент.НастроитьОтбор(
ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
ПолучитьАдресаСхемыКомпоновкиДанныхВоВременномХранилище(НавигационнаяСсылкаФорматированнойСтроки));
КонецПроцедуры
&НаКлиенте
Процедура ОтборЗаНакопленныйОбъемПродажОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СкидкиНаценкиКлиент.НастроитьОтбор(
ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
ПолучитьАдресаСхемыКомпоновкиДанныхВоВременномХранилище(НавигационнаяСсылкаФорматированнойСтроки));
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияОписаниеПоставляетсяВнешнейОбработкойСкидкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(Неопределено, Объект.УсловиеПредоставления);
КонецПроцедуры
&НаКлиенте
Процедура ВариантОтбораНоменклатурыПриИзменении(Элемент)
УстановитьНастройкиЭлементовВариантовУсловийПоНоменклатуре(ЭтотОбъект, "ЗаРазовыйОбъемПродаж");
УстановитьНастройкиЭлементовВариантовУсловийПоНоменклатуре(ЭтотОбъект, "ЗаНакопленныйОбъемПродаж");
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура СписокНоменклатурыОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Кнопки = Новый СписокЗначений;
Кнопки.Добавить("Записать", НСтр("ru = 'Записать'"));
Кнопки.Добавить("Отмена", НСтр("ru = 'Отмена'"));
ПоказатьВопрос(
Новый ОписаниеОповещения("ОбработкаОповещенияВопросПередОткрытиемСпискаНоменклатуры", ЭтаФорма),
НСтр("ru='Для изменения статуса действия скидка (наценка) должна быть записана.'"),
Кнопки,,,НСтр("ru = 'Скидка (наценка) не записана'"));
Иначе
ПараметрыДанных = Новый Структура;
ПараметрыДанных.Вставить("Источник", Объект.Ссылка);
ОткрытьФорму(
"РегистрСведений.ДействиеСкидокНаценокПоНоменклатуре.Форма.СписокНоменклатуры",
ПараметрыДанных,,,,,
Новый ОписаниеОповещения("ДействиеСкидокНаценокПоНоменклатуреЗавершение", ЭтотОбъект));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УсловиеПредоставленияОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ОчиститьСообщения();
Если Не ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
Отказ = Ложь;
Если Объект.ВариантОтбораНоменклатуры = ПредопределенноеЗначение("Перечисление.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.ОтборКомпоновкиДанных")
И Не ЗначениеЗаполнено(Строка(КомпоновщикНастроекОтборПоНоменклатуре.Настройки.Отбор))
И (Объект.УсловиеПредоставления = ПредопределенноеЗначение("Перечисление.УсловияПредоставленияСкидокНаценок.ЗаНакопленныйОбъемПродаж")
ИЛИ Объект.УсловиеПредоставления = ПредопределенноеЗначение("Перечисление.УсловияПредоставленияСкидокНаценок.ЗаРазовыйОбъемПродаж")) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Не установлен отбор номенклатуры'"),,"КомпоновщикНастроекОтборПоНоменклатуреПредставление",, Отказ);
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
СкидкиНаценкиКлиентСервер.ОчиститьРеквизитыВЗависимостиОтУсловияПрименения(Объект);
СуществующееУсловие = СуществующееУсловиеПредоставлениеСкидки();
Если СуществующееУсловие <> Неопределено Тогда
Оповестить("Выбор_УсловияПредоставленияСкидокНаценок", Новый Структура, СуществующееУсловие);
Модифицированность = Ложь;
Закрыть();
Иначе
Если Записать() Тогда
Оповестить("Выбор_УсловияПредоставленияСкидокНаценок", Новый Структура, Объект.Ссылка);
Закрыть();
КонецЕсли;
КонецЕсли;
Иначе
Если Модифицированность Тогда
Если Не Записать() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Оповестить("Выбор_УсловияПредоставленияСкидокНаценок", Новый Структура, Объект.Ссылка);
Закрыть();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
ОбщегоНазначенияУТКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьФормуНастроекВнешнейОбработки(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("АдресНастроекВнешнейОбработки", АдресНастроекВнешнейОбработки);
ОткрытьФорму(
ИмяФормыНастроекВнешнейОбработки,
ПараметрыФормы,
ЭтаФорма,,,,
Новый ОписаниеОповещения("ИзмененыНастройкиВнешнейОбработки", ЭтотОбъект));
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОбработкаОповещенияВопросПередОткрытиемСпискаНоменклатуры(Результат, ДополнительныеПараметры) Экспорт
Если Результат = "Записать" Тогда
Если Записать() Тогда
ПараметрыДанных = Новый Структура;
ПараметрыДанных.Вставить("Источник", Объект.Ссылка);
ОткрытьФорму(
"РегистрСведений.ДействиеСкидокНаценокПоНоменклатуре.Форма.СписокНоменклатуры",
ПараметрыДанных,,,,,
Новый ОписаниеОповещения("ДействиеСкидокНаценокПоНоменклатуреЗавершение", ЭтотОбъект));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДействиеСкидокНаценокПоНоменклатуреЗавершение(Результат, ДополнительныеПараметры) Экспорт
СкидкиНаценкиКлиентСервер.НастроитьГиперссылкуНаСписокНоменклатурныхПозиций(ЭтотОбъект);
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьСхемуКомпоновкиДанныхЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ПрименитьИзменения(Результат, ДополнительныеПараметры.Имя);
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ИзмененыНастройкиВнешнейОбработки(Результат, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(Результат) Тогда
ОписаниеДействияВнешнейОбработки = Результат.ОписаниеДействияВнешнейОбработки;
АвтонаименованиеВнешнейОбработки = Результат.АвтонаименованиеВнешнейОбработки;
СкидкиНаценкиКлиент.ОбновитьАвтонаименованиеУсловияПримененияСкидок(ЭтотОбъект, Истина);
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьНастройкиЭлементовВариантовУсловийПоНоменклатуре(Форма, ИмяГруппы)
Если ИмяГруппы = "ЗаРазовыйОбъемПродаж" Тогда
ПолеФормыСегментНоменклатуры = Форма.Элементы.СегментНоменклатурыЗаРазовыйОбъемПродаж;
ПолеФормыСписокНоменклатуры = Форма.Элементы.СписокНоменклатурыЗаРазовыйОбъемПродаж;
ПолеФормыОтбор = Форма.Элементы.ОтборЗаРазовыйОбъемПродаж;
ИначеЕсли ИмяГруппы = "ЗаНакопленныйОбъемПродаж" Тогда
ПолеФормыСегментНоменклатуры = Форма.Элементы.СегментНоменклатурыЗаНакопленныйОбъемПродаж;
ПолеФормыСписокНоменклатуры = Форма.Элементы.СписокНоменклатурыЗаНакопленныйОбъемПродаж;
ПолеФормыОтбор = Форма.Элементы.ОтборЗаНакопленныйОбъемПродаж;
Иначе
ВызватьИсключение НСтр("ru = 'Неизвестное имя группы'") + " " + ИмяГруппы;
КонецЕсли;
ПолеФормыСегментНоменклатуры.Доступность = (Форма.Объект.ВариантОтбораНоменклатуры = ПредопределенноеЗначение("Перечисление.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.СегментНоменклатуры"));
ПолеФормыСписокНоменклатуры.Доступность = (Форма.Объект.ВариантОтбораНоменклатуры = ПредопределенноеЗначение("Перечисление.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.СписокНоменклатуры"));
ПолеФормыОтбор.Доступность = (Форма.Объект.ВариантОтбораНоменклатуры = ПредопределенноеЗначение("Перечисление.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.ОтборКомпоновкиДанных"));
СкидкиНаценкиКлиентСервер.НастроитьГиперссылкиОтборов(Форма);
КонецПроцедуры
&НаСервере
Функция СуществующееУсловиеПредоставлениеСкидки()
Запрос = Новый Запрос;
Если Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаВремяПродажи Тогда
Запрос.Текст = "
|ВЫБРАТЬ
| СкидкиОбъекта.ДеньНедели,
| СкидкиОбъекта.ВремяНачала,
| СкидкиОбъекта.ВремяОкончания
|ПОМЕСТИТЬ СкидкиОбъекта
|ИЗ
| &СкидкиОбъекта КАК СкидкиОбъекта
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| УсловияПредоставленияСкидокНаценокВремяДействия.Ссылка,
| КОЛИЧЕСТВО(УсловияПредоставленияСкидокНаценокВремяДействия.Ссылка) КАК Количество
|ИЗ
| СкидкиОбъекта КАК СкидкиОбъекта
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УсловияПредоставленияСкидокНаценок.ВремяДействия КАК УсловияПредоставленияСкидокНаценокВремяДействия
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УсловияПредоставленияСкидокНаценок КАК УсловияПредоставленияСкидокНаценок
| ПО УсловияПредоставленияСкидокНаценокВремяДействия.Ссылка = УсловияПредоставленияСкидокНаценок.Ссылка
| ПО СкидкиОбъекта.ДеньНедели = УсловияПредоставленияСкидокНаценокВремяДействия.ДеньНедели
| И СкидкиОбъекта.ВремяНачала = УсловияПредоставленияСкидокНаценокВремяДействия.ВремяНачала
| И СкидкиОбъекта.ВремяОкончания = УсловияПредоставленияСкидокНаценокВремяДействия.ВремяОкончания
|ГДЕ
| НЕ УсловияПредоставленияСкидокНаценок.ПометкаУдаления
| И НЕ УсловияПредоставленияСкидокНаценок.ЭтоГруппа
|
|СГРУППИРОВАТЬ ПО
| УсловияПредоставленияСкидокНаценокВремяДействия.Ссылка
|
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(УсловияПредоставленияСкидокНаценокВремяДействия.Ссылка) = &КоличествоСтрок";
Запрос.УстановитьПараметр("СкидкиОбъекта", Объект.ВремяДействия.Выгрузить());
Запрос.УстановитьПараметр("КоличествоСтрок", Объект.ВремяДействия.Количество());
ИначеЕсли ТипЗнч(Объект.УсловиеПредоставления) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
Возврат Неопределено;
ИначеЕсли (Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаРазовыйОбъемПродаж
ИЛИ Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаНакопленныйОбъемПродаж)
И Объект.ВариантОтбораНоменклатуры = Перечисления.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.СписокНоменклатуры Тогда
Возврат Неопределено;
Иначе
Запрос.Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| УсловияПредоставленияСкидокНаценок.Ссылка,
| УсловияПредоставленияСкидокНаценок.ХранилищеНастроекКомпоновкиДанных КАК ХранилищеНастроекКомпоновкиДанных
|ИЗ
| Справочник.УсловияПредоставленияСкидокНаценок КАК УсловияПредоставленияСкидокНаценок
|ГДЕ
| НЕ УсловияПредоставленияСкидокНаценок.ПометкаУдаления
| И НЕ УсловияПредоставленияСкидокНаценок.ЭтоГруппа
| И УсловияПредоставленияСкидокНаценок.УсловиеПредоставления = &УсловиеПредоставления
| И УсловияПредоставленияСкидокНаценок.ВариантОпределенияПериодаНакопительнойСкидки = &ВариантОпределенияПериодаНакопительнойСкидки
| И УсловияПредоставленияСкидокНаценок.ВариантНакопления = &ВариантНакопления
| И УсловияПредоставленияСкидокНаценок.КритерийОграниченияПримененияЗаОбъемПродаж = &КритерийОграниченияПримененияЗаОбъемПродаж
| И УсловияПредоставленияСкидокНаценок.ВалютаОграничения = &ВалютаОграничения
| И УсловияПредоставленияСкидокНаценок.ГрафикОплаты = &ГрафикОплаты
| И УсловияПредоставленияСкидокНаценок.ФормаОплаты = &ФормаОплаты
| И УсловияПредоставленияСкидокНаценок.ЗначениеУсловияОграничения = &ЗначениеУсловияОграничения
| И УсловияПредоставленияСкидокНаценок.СегментНоменклатурыОграничения = &СегментНоменклатурыОграничения
| И УсловияПредоставленияСкидокНаценок.ПериодНакопления = &ПериодНакопления
| И УсловияПредоставленияСкидокНаценок.ТипСравнения = &ТипСравнения
| И УсловияПредоставленияСкидокНаценок.ГруппаПользователей = &ГруппаПользователей
| И УсловияПредоставленияСкидокНаценок.ВидКартыЛояльности = &ВидКартыЛояльности
| И УсловияПредоставленияСкидокНаценок.СегментПартнеров = &СегментПартнеров
| И УсловияПредоставленияСкидокНаценок.КоличествоПериодовНакопления = &КоличествоПериодовНакопления
| И УсловияПредоставленияСкидокНаценок.ВариантОтбораНоменклатуры = &ВариантОтбораНоменклатуры
| И УсловияПредоставленияСкидокНаценок.КоличествоДнейДоДняРождения = &КоличествоДнейДоДняРождения
| И УсловияПредоставленияСкидокНаценок.КоличествоДнейПослеДняРождения = &КоличествоДнейПослеДняРождения
| И УсловияПредоставленияСкидокНаценок.ВключатьТекущуюПродажуВНакопленныйОбъемПродаж = &ВключатьТекущуюПродажуВНакопленныйОбъемПродаж
| И УсловияПредоставленияСкидокНаценок.УчитыватьХарактеристики = &УчитыватьХарактеристики";
Запрос.УстановитьПараметр("УсловиеПредоставления", Объект.УсловиеПредоставления);
Запрос.УстановитьПараметр("ВариантОпределенияПериодаНакопительнойСкидки", Объект.ВариантОпределенияПериодаНакопительнойСкидки);
Запрос.УстановитьПараметр("ВариантНакопления", Объект.ВариантНакопления);
Запрос.УстановитьПараметр("КритерийОграниченияПримененияЗаОбъемПродаж", Объект.КритерийОграниченияПримененияЗаОбъемПродаж);
Запрос.УстановитьПараметр("ВалютаОграничения", Объект.ВалютаОграничения);
Запрос.УстановитьПараметр("ГрафикОплаты", Объект.ГрафикОплаты);
Запрос.УстановитьПараметр("ФормаОплаты", Объект.ФормаОплаты);
Запрос.УстановитьПараметр("ЗначениеУсловияОграничения", Объект.ЗначениеУсловияОграничения);
Запрос.УстановитьПараметр("СегментНоменклатурыОграничения", Объект.СегментНоменклатурыОграничения);
Запрос.УстановитьПараметр("ПериодНакопления", Объект.ПериодНакопления);
Запрос.УстановитьПараметр("ТипСравнения", Объект.ТипСравнения);
Запрос.УстановитьПараметр("ГруппаПользователей", Объект.ГруппаПользователей);
Запрос.УстановитьПараметр("ВидКартыЛояльности", Объект.ВидКартыЛояльности);
Запрос.УстановитьПараметр("СегментПартнеров", Объект.СегментПартнеров);
Запрос.УстановитьПараметр("КоличествоПериодовНакопления", Объект.КоличествоПериодовНакопления);
Запрос.УстановитьПараметр("ВариантОтбораНоменклатуры", Объект.ВариантОтбораНоменклатуры);
Запрос.УстановитьПараметр("КоличествоДнейДоДняРождения", Объект.КоличествоДнейДоДняРождения);
Запрос.УстановитьПараметр("КоличествоДнейПослеДняРождения", Объект.КоличествоДнейПослеДняРождения);
Запрос.УстановитьПараметр("ВключатьТекущуюПродажуВНакопленныйОбъемПродаж", Объект.ВключатьТекущуюПродажуВНакопленныйОбъемПродаж);
Запрос.УстановитьПараметр("УчитыватьХарактеристики", Объект.УчитыватьХарактеристики);
Если (Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаРазовыйОбъемПродаж
ИЛИ Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаНакопленныйОбъемПродаж)
И Объект.ВариантОтбораНоменклатуры = Перечисления.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.ОтборКомпоновкиДанных Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "РАЗРЕШЕННЫЕ ПЕРВЫЕ 1", "РАЗРЕШЕННЫЕ");
КонецЕсли;
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
Если (Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаРазовыйОбъемПродаж
ИЛИ Объект.УсловиеПредоставления = Перечисления.УсловияПредоставленияСкидокНаценок.ЗаНакопленныйОбъемПродаж)
И Объект.ВариантОтбораНоменклатуры = Перечисления.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.ОтборКомпоновкиДанных Тогда
РезультатПоиска = Неопределено;
Пока Выборка.Следующий() Цикл
ХранилищеНастроекКомпоновкиДанных = Выборка.ХранилищеНастроекКомпоновкиДанных;
Настройки = ХранилищеНастроекКомпоновкиДанных.Получить();
Если Настройки <> Неопределено Тогда
Если Строка(КомпоновщикНастроекОтборПоНоменклатуре.Настройки.Отбор) = Строка(Настройки.ОтборПоНоменклатуре.Отбор) Тогда
РезультатПоиска = Выборка.Ссылка;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат РезультатПоиска;
Иначе
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
КонецФункции
&НаСервере
Функция ПолучитьАдресаСхемыКомпоновкиДанныхВоВременномХранилище(Имя)
Возврат СкидкиНаценкиВызовСервера.ПолучитьАдресаСхемыКомпоновкиДанныхВоВременномХранилище(ЭтотОбъект, Имя);
КонецФункции
&НаСервере
Процедура ПрименитьИзменения(Результат, Имя)
Настройки = ПолучитьИзВременногоХранилища(Результат);
ЭтотОбъект[Имя].ЗагрузитьНастройки(Настройки);
СкидкиНаценкиКлиентСервер.НастроитьГиперссылкиОтборов(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти