#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Дата = ТекущаяДатаСеанса();
ИспользоватьНесколькоСкладов = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоСкладов")
И ПравоДоступа("Чтение", Метаданные.Справочники.Склады);
ИспользоватьТиповыеСоглашенияСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьТиповыеСоглашенияСКлиентами")
И ПравоДоступа("Чтение", Метаданные.Справочники.СоглашенияСКлиентами);
ИспользоватьИндивидуальныеСоглашенияСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьИндивидуальныеСоглашенияСКлиентами")
И ПравоДоступа("Чтение", Метаданные.Справочники.СоглашенияСКлиентами);
ИспользоватьКартыЛояльности = ПолучитьФункциональнуюОпцию("ИспользоватьКартыЛояльности")
И ПравоДоступа("Чтение", Метаданные.Справочники.ВидыКартЛояльности);
Элементы.ГруппаИндивидуальныеСоглашения.Видимость = ИспользоватьИндивидуальныеСоглашенияСКлиентами;
Элементы.ДействуетВИндивидуальныхСоглашениях.Видимость = ИспользоватьИндивидуальныеСоглашенияСКлиентами;
Элементы.ГруппаТиповыеСоглашения.Видимость = ИспользоватьТиповыеСоглашенияСКлиентами;
Элементы.ДействуетВТиповыхСоглашениях.Видимость = ИспользоватьТиповыеСоглашенияСКлиентами;
Элементы.ГруппаКартыЛояльности.Видимость = ИспользоватьКартыЛояльности;
Элементы.ДействуетВКартахЛояльности.Видимость = ИспользоватьКартыЛояльности;
Элементы.ГруппаСклады.Видимость = ИспользоватьНесколькоСкладов;
Элементы.ДействуетНаСкладах.Видимость = ИспользоватьНесколькоСкладов;
ПереопределитьСвойстваДинамическихСписков();
ДоступноРедактированиеСкидокНаценок = ПравоДоступа("Изменение", Метаданные.Справочники.СкидкиНаценки);
ДоступноРедактированиеСоглашенийСКлиентами = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ДействиеСкидокНаценок);
Элементы.УстановитьСтатусДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.УстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеНаСкладахИспользованиеНаСкладахУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеНаСкладахИспользованиеНаСкладахУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеНаСкладахКонтекстноеМенюИспользованиеНаСкладахУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеНаСкладахКонтекстноеМенюИспользованиеНаСкладахУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеВКартахЛояльностиИспользованиеВКартахЛояльностиУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеВКартахЛояльностиИспользованиеВКартахЛояльностиУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеВКартахЛояльностиКонтекстноеМенюИспользованиеВКартахЛояльностиУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеВКартахЛояльностиКонтекстноеМенюИспользованиеВКартахЛояльностиУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСкидокНаценок;
Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиИспользованиеВСоглашенияхСКлиентамиУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиИспользованиеВСоглашенияхСКлиентамиУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиКонтекстноеМенюИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиКонтекстноеМенюИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентамиИспользованиеВСоглашенияхСКлиентамиУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентамиИспользованиеВСоглашенияхСКлиентамиУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентамиКонтекстноеМенюИспользованиеВТиповыхСоглашенияхСКлиентамиУстановитьСтатусДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентамиКонтекстноеМенюИспользованиеВТиповыхСоглашенияхСКлиентамиУстановитьСтатусНеДействует.Видимость = ДоступноРедактированиеСоглашенийСКлиентами;
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ДатаСреза = ТекущаяДатаСеанса();
ДинамическиеСписки = Новый Массив;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВИндивидуальныхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВТиповыхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
ДинамическиеСписки.Добавить(ИспользованиеВКартахЛояльности);
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
ДинамическиеСписки.Добавить(ИспользованиеНаСкладах);
КонецЕсли;
ДинамическиеСписки.Добавить(Список);
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"ТекущаяДата",
ДатаСреза,
Истина);
Если ДинамическийСписок = Список Тогда
Продолжить;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"СкидкаНаценка",
Справочники.СкидкиНаценки.ПустаяСсылка(),
Истина);
КонецЦикла;
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список,
"СкладПоУмолчанию",
Справочники.Склады.ПустаяСсылка(),
Истина);
Если ИспользоватьНесколькоСкладов Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеНаСкладах,
"Статус",
Перечисления.СтатусыДействияСкидок.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеНаСкладахВариантОтображенияСкидокНаценок <> "Все");
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВТиповыхСоглашенияхСКлиентами,
"Статус",
Перечисления.СтатусыДействияСкидок.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеВТиповыхСоглашенияхСКлиентамиВариантОтображенияСкидокНаценок <> "Все");
КонецЕсли;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВИндивидуальныхСоглашенияхСКлиентами,
"Статус",
Перечисления.СтатусыДействияСкидок.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиВариантОтображенияСкидокНаценок <> "Все");
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВКартахЛояльности,
"Статус",
Перечисления.СтатусыДействияСкидок.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеВКартахЛояльностиВариантОтображенияСкидокНаценок <> "Все");
КонецЕсли;
ИспользоватьУпрощенныйРежим = Не ИспользоватьНесколькоСкладов
И Не ИспользоватьИндивидуальныеСоглашенияСКлиентами
И Не ИспользоватьТиповыеСоглашенияСКлиентами
И Не ИспользоватьКартыЛояльности;
Элементы.ГруппаИспользованиеТекущейСкидки.Видимость = Не ИспользоватьУпрощенныйРежим;
Элементы.ДействуетНаСкладах.Видимость = ИспользоватьНесколькоСкладов;
Элементы.ДействуетВКартахЛояльности.Видимость = ИспользоватьКартыЛояльности;
Элементы.ДействуетВИндивидуальныхСоглашениях.Видимость = ИспользоватьИндивидуальныеСоглашенияСКлиентами;
Элементы.ДействуетВТиповыхСоглашениях.Видимость = ИспользоватьТиповыеСоглашенияСКлиентами;
Если ИспользоватьУпрощенныйРежим Тогда
Элементы.УстановитьСтатус.Заголовок = НСтр("ru = 'Установить статус'");
Иначе
Элементы.УстановитьСтатус.Заголовок = НСтр("ru = 'Установить общий статус'");
КонецЕсли;
СписокТипов = Список.КомпоновщикНастроек.Настройки.Выбор.ДоступныеПоляВыбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Ссылка")).Тип;
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.Источники = СписокТипов;
ПараметрыРазмещения.КоманднаяПанель = Элементы.ГруппаКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГруппаСоздать",
"Видимость",
ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Справочники.СкидкиНаценки));
СкидкиНаценкиСервер.ДобавитьКомандыСозданияНовыхСкидокНаценок(ЭтотОбъект, Элементы.ГруппаСоздать);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеНаСервере(СкидкаНаценка)
Элементы.Список.Обновить();
Элементы.ИспользованиеВКартахЛояльности.Обновить();
Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентами.Обновить();
Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентами.Обновить();
Элементы.ИспользованиеНаСкладах.Обновить();
ОбновитьИспользованиеСкидокНаценок(СкидкаНаценка);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_ДействиеСкидокНаценок" Тогда
СкидкаНаценка = ТекущаяСкидка();
ОбновитьДанныеНаСервере(СкидкаНаценка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Статус = Настройки.Получить("Статус");
УстановитьОтборПоСтатусу(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийСписка
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключитьОбработчикОжидания("Подключаемый_СписокПриАктивизацииСтроки", 0.1, Истина);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СтатусОтборПриИзменении(Элемент)
УстановитьОтборПоСтатусу(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОтборДатаСрезаПриИзменении(Элемент)
ДинамическиеСписки = Новый Массив;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВИндивидуальныхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВТиповыхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
ДинамическиеСписки.Добавить(ИспользованиеВКартахЛояльности);
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
ДинамическиеСписки.Добавить(ИспользованиеНаСкладах);
КонецЕсли;
ДинамическиеСписки.Добавить(Список);
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"ТекущаяДата",
ДатаСреза,
Истина);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОтборДатаСрезаОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДатаСреза = Дата;
ДинамическиеСписки = Новый Массив;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВИндивидуальныхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВТиповыхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
ДинамическиеСписки.Добавить(ИспользованиеВКартахЛояльности);
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
ДинамическиеСписки.Добавить(ИспользованиеНаСкладах);
КонецЕсли;
ДинамическиеСписки.Добавить(Список);
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"ТекущаяДата",
ДатаСреза,
Истина);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СписокПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
Если Строка = Неопределено Или Строка = ПредопределенноеЗначение("Справочник.СкидкиНаценки.ПустаяСсылка") Тогда
СтандартнаяОбработка = Ложь;
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеНаСкладахВариантОтображенияСкидокПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеНаСкладах,
"Статус",
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"),
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеНаСкладахВариантОтображенияСкидокНаценок <> "Все");
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиВариантОтображенияСкидокПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВИндивидуальныхСоглашенияхСКлиентами,
"Статус",
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"),
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиВариантОтображенияСкидокНаценок <> "Все");
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВТиповыхСоглашенияхСКлиентамиВариантОтображенияСкидокПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВТиповыхСоглашенияхСКлиентами,
"Статус",
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"),
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеВТиповыхСоглашенияхСКлиентамиВариантОтображенияСкидокНаценок <> "Все");
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВКартахЛояльностиВариантОтображенияСкидокПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВКартахЛояльности,
"Статус",
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"),
ВидСравненияКомпоновкиДанных.Равно,
,
ИспользованиеВКартахЛояльностиВариантОтображенияСкидокНаценок <> "Все");
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеНаСкладахВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле <> Элементы.ИспользованиеНаСкладахСклад Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВКартахЛояльностиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле <> Элементы.ИспользованиеВКартахЛояльностиВидКартыЛояльности Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле <> Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиСоглашение Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВТиповыхСоглашенияхСКлиентамиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле <> Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентамиСоглашение Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуДобавленияСкидкиНаценки(Команда)
СкидкиНаценкиКлиент.ОбработатьКомандуДобавленияСкидкиНаценки(
ЭтотОбъект,
Команда,
Элементы.Список.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусНеДействует(Команда)
Источники = Новый Массив;
Источники.Добавить(ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка"));
СкидкиНаценки = Новый Массив;
Для Каждого СкидкаНаценка Из Элементы.Список.ВыделенныеСтроки Цикл
ДанныеСтроки = Элементы.Список.ДанныеСтроки(СкидкаНаценка);
Если ДанныеСтроки.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
СкидкиНаценки.Добавить(СкидкаНаценка);
КонецЦикла;
Если СкидкиНаценки.Количество() = 0 Тогда
ПоказатьПредупреждение(Неопределено, НСтр("ru = 'Не выбраны скидки (наценки)'"));
Возврат;
КонецЕсли;
ОткрытьФормуИзмененияСтатуса(
СкидкиНаценки,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.НеДействует"));
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусДействует(Команда)
Источники = Новый Массив;
Источники.Добавить(ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка"));
СкидкиНаценки = Новый Массив;
Для Каждого СкидкаНаценка Из Элементы.Список.ВыделенныеСтроки Цикл
ДанныеСтроки = Элементы.Список.ДанныеСтроки(СкидкаНаценка);
Если ДанныеСтроки.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
СкидкиНаценки.Добавить(СкидкаНаценка);
КонецЦикла;
Если СкидкиНаценки.Количество() = 0 Тогда
ПоказатьПредупреждение(Неопределено, НСтр("ru = 'Не выбраны скидки (наценки)'"));
Возврат;
КонецЕсли;
ОткрытьФормуИзмененияСтатуса(
СкидкиНаценки,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеНаСкладахУстановитьСтатусНеДействует(Команда)
Источники = Новый Массив;
Для Каждого ИдентификаторСтроки Из Элементы.ИспользованиеНаСкладах.ВыделенныеСтроки Цикл
Источники.Добавить(Элементы.ИспользованиеНаСкладах.ДанныеСтроки(ИдентификаторСтроки).Склад);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.НеДействует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеНаСкладахУстановитьСтатусДействует(Команда)
Источники = Новый Массив;
Для Каждого ИдентификаторСтроки Из Элементы.ИспользованиеНаСкладах.ВыделенныеСтроки Цикл
Источники.Добавить(Элементы.ИспользованиеНаСкладах.ДанныеСтроки(ИдентификаторСтроки).Склад);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВКартахЛояльностиУстановитьСтатусНеДействует(Команда)
Источники = Новый Массив;
Для Каждого Источник Из Элементы.ИспользованиеВКартахЛояльности.ВыделенныеСтроки Цикл
Источники.Добавить(Источник);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.НеДействует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВКартахЛояльностиУстановитьСтатусДействует(Команда)
Источники = Новый Массив;
Для Каждого Источник Из Элементы.ИспользованиеВКартахЛояльности.ВыделенныеСтроки Цикл
Источники.Добавить(Источник);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУстановитьСтатусНеДействует(Команда)
Источники = Новый Массив;
Для Каждого Источник Из Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентами.ВыделенныеСтроки Цикл
Источники.Добавить(Источник);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.НеДействует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУстановитьСтатусДействует(Команда)
Источники = Новый Массив;
Для Каждого Источник Из Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентами.ВыделенныеСтроки Цикл
Источники.Добавить(Источник);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВТиповыхСоглашенияхСКлиентамиУстановитьСтатусНеДействует(Команда)
Источники = Новый Массив;
Для Каждого Источник Из Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентами.ВыделенныеСтроки Цикл
Источники.Добавить(Источник);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.НеДействует"));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеВТиповыхСоглашенияхСКлиентамиУстановитьСтатусДействует(Команда)
Источники = Новый Массив;
Для Каждого Источник Из Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентами.ВыделенныеСтроки Цикл
Источники.Добавить(Источник);
КонецЦикла;
Если Источники.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкидкаНаценка = ТекущаяСкидка();
ОткрытьФормуИзмененияСтатуса(
СкидкаНаценка,
Источники,
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"));
КонецПроцедуры
&НаКлиенте
Процедура ИсторияДействия(Команда)
ОткрытьФормуИстории(ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка"));
КонецПроцедуры
&НаКлиенте
Процедура ИсторияДействияНаСкладе(Команда)
ТекущиеДанные = Элементы.ИспользованиеНаСкладах.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ОткрытьФормуИстории(ТекущиеДанные.Склад);
КонецПроцедуры
&НаКлиенте
Процедура ИсторияДействияВВидеКартыЛояльности(Команда)
ТекущиеДанные = Элементы.ИспользованиеВКартахЛояльности.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ОткрытьФормуИстории(ТекущиеДанные.ВидКартыЛояльности);
КонецПроцедуры
&НаКлиенте
Процедура ИсторияДействияВТиповомСоглашении(Команда)
ТекущиеДанные = Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентами.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ОткрытьФормуИстории(ТекущиеДанные.Соглашение);
КонецПроцедуры
&НаКлиенте
Процедура ИсторияДействияВИндивидуальномСоглашении(Команда)
ТекущиеДанные = Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентами.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ОткрытьФормуИстории(ТекущиеДанные.Соглашение);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
СписокУсловноеОформление = Список.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокУсловноеОформление.Элементы.Очистить();
СписокИспользованиеВКартахЛояльностиУсловноеОформление = ИспользованиеВКартахЛояльности.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеВКартахЛояльностиУсловноеОформление.Элементы.Очистить();
СписокИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУсловноеОформление = ИспользованиеВИндивидуальныхСоглашенияхСКлиентами.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУсловноеОформление.Элементы.Очистить();
СписокИспользованиеВТиповыхСоглашенияхСКлиентамиУсловноеОформление = ИспользованиеВТиповыхСоглашенияхСКлиентами.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеВТиповыхСоглашенияхСКлиентамиУсловноеОформление.Элементы.Очистить();
СписокИспользованиеНаСкладахУсловноеОформление = ИспользованиеНаСкладах.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеНаСкладахУсловноеОформление.Элементы.Очистить();
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Управляемая");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(0, 128, 0));
Если ИспользоватьКартыЛояльности Тогда
Элемент = СписокИспользованиеВКартахЛояльностиУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = '00010101';
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачала");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = '00010101';
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<бессрочно>'"));
КонецЕсли;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
Элемент = СписокИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = '00010101';
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачала");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = '00010101';
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<бессрочно>'"));
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = '00010101';
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачала");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = '00010101';
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<бессрочно>'"));
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
Элемент = СписокИспользованиеВТиповыхСоглашенияхСКлиентамиУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = '00010101';
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачала");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = '00010101';
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<бессрочно>'"));
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
Элемент = СписокИспользованиеНаСкладахУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = '00010101';
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачала");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = '00010101';
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<бессрочно>'"));
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
Элемент = СписокИспользованиеНаСкладахУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
Элемент = СписокИспользованиеВКартахЛояльностиУсловноеОформление .Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
Элемент = СписокИспользованиеВИндивидуальныхСоглашенияхСКлиентамиУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
Элемент = СписокИспользованиеВТиповыхСоглашенияхСКлиентамиУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОкончания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = '00010101';
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаНачала");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = '00010101';
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<бессрочно>'"));
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
Если ИспользоватьНесколькоСкладов Тогда
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетНаСкладах");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВКартахЛояльности");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
КонецЕсли;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВИндивидуальныхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВТиповыхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
КонецЕсли;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВИндивидуальныхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует с ограничениями'"));
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВТиповыхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует с ограничениями'"));
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВКартахЛояльности");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует с ограничениями'"));
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетНаСкладах");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует с ограничениями'"));
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетНаСкладах");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВКартахЛояльности");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВТиповыхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВИндивидуальныхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует на складах'"));
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетНаСкладах");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВКартахЛояльности");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВТиповыхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВИндивидуальныхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует в картах лояльности'"));
КонецЕсли;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами
Или ИспользоватьТиповыеСоглашенияСКлиентами Тогда
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетНаСкладах");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВКартахЛояльности");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВТиповыхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВИндивидуальныхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует в соглашениях'"));
Элемент = СписокУсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияСкидок.НеДействует;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетНаСкладах");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВКартахЛояльности");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВТиповыхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДействуетВИндивидуальныхСоглашениях");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Действует в соглашениях'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СписокПриАктивизацииСтроки()
СкидкаНаценка = ТекущаяСкидка();
Если СкидкаНаценка <> АктивизированнаяСкидкаНаценка Тогда
СписокПриАктивизацииСтрокиНаСервере(СкидкаНаценка);
АктивизированнаяСкидкаНаценка = СкидкаНаценка;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтборПоСтатусу(Форма)
ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(Форма.Список).Элементы.Очистить();
Если ЗначениеЗаполнено(Форма.Статус) Тогда
ГруппаОтбора = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора(
ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(Форма.Список).Элементы, "ОтборПоСтатусу",
ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
ГруппаОтбора,
"Статус",
ПредопределенноеЗначение("Перечисление.СтатусыДействияСкидок.Действует"),
ВидСравненияКомпоновкиДанных.Равно,
,
ЗначениеЗаполнено(Форма.Статус));
Если Форма.ИспользоватьНесколькоСкладов Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
ГруппаОтбора,
"ДействуетНаСкладах",
Истина,
ВидСравненияКомпоновкиДанных.Равно,
,
ЗначениеЗаполнено(Форма.Статус));
КонецЕсли;
Если Форма.ИспользоватьКартыЛояльности Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
ГруппаОтбора,
"ДействуетВКартахЛояльности",
Истина,
ВидСравненияКомпоновкиДанных.Равно,
,
ЗначениеЗаполнено(Форма.Статус));
КонецЕсли;
Если Форма.ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
ГруппаОтбора,
"ДействуетВТиповыхСоглашениях",
Истина,
ВидСравненияКомпоновкиДанных.Равно,
,
ЗначениеЗаполнено(Форма.Статус));
КонецЕсли;
Если Форма.ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
ГруппаОтбора,
"ДействуетВИндивидуальныхСоглашениях",
Истина,
ВидСравненияКомпоновкиДанных.Равно,
,
ЗначениеЗаполнено(Форма.Статус));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ТекущаяСкидка()
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Если ТекущиеДанные.ЭтоГруппа Тогда
Возврат Неопределено;
Иначе
Возврат ТекущиеДанные.Ссылка;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ОткрытьФормуИзмененияСтатуса(СкидкаНаценка, Источник, Статус)
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ДатаНачала", ДатаСреза);
ПараметрыОткрытия.Вставить("СкидкаНаценка", СкидкаНаценка);
ПараметрыОткрытия.Вставить("Источник", Источник);
ПараметрыОткрытия.Вставить("Статус", Статус);
ОткрытьФорму(
"Справочник.СкидкиНаценки.Форма.УстановкаСтатусаДействия",
ПараметрыОткрытия,
ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуИстории(Источник)
СкидкаНаценка = ТекущаяСкидка();
Если СкидкаНаценка = Неопределено Тогда
ПоказатьПредупреждение(Неопределено, НСтр("ru = 'Не выбрана скидка (наценка)'"));
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Источник", Источник);
ПараметрыОткрытия.Вставить("СкидкаНаценка", СкидкаНаценка);
ОткрытьФорму(
"Справочник.СкидкиНаценки.Форма.ИсторияДействияСкидкиНаценки",
ПараметрыОткрытия,
ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ОбновитьИспользованиеСкидокНаценок(СкидкаНаценка)
ИспользованиеСкидкиНаценки = СкидкиНаценкиСервер.ИспользованиеСкидкиНаценки(СкидкаНаценка, ТекущаяДатаСеанса());
СкидкиНаценкиСервер.СформироватьИнформационнуюНадписьИспользованиеСкидокНаценок(ИнформацияОДействииСкидок,
ИспользованиеСкидкиНаценки);
СкидкиНаценкиСервер.СформироватьИнформациюОКоличествеИспользуемыхСкидок(ЭтотОбъект, ИспользованиеСкидкиНаценки);
КонецПроцедуры
&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере(СкидкаНаценка)
ДинамическиеСписки = Новый Массив;
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВИндивидуальныхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВТиповыхСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьКартыЛояльности Тогда
ДинамическиеСписки.Добавить(ИспользованиеВКартахЛояльности);
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
ДинамическиеСписки.Добавить(ИспользованиеНаСкладах);
КонецЕсли;
Элементы.ГруппаИспользованиеТекущейСкидки.Доступность = СкидкаНаценка <> Неопределено;
Если СкидкаНаценка = Неопределено Тогда
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"СкидкаНаценка",
ПредопределенноеЗначение("Справочник.СкидкиНаценки.ПустаяСсылка"),
Истина);
КонецЦикла;
Иначе
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"СкидкаНаценка",
СкидкаНаценка,
Истина);
КонецЦикла;
КонецЕсли;
ОбновитьИспользованиеСкидокНаценок(СкидкаНаценка);
КонецПроцедуры
#Область ФормированиеТекстовЗапросовПереопределяемыхСписков
&НаСервере
Функция ТекстЗапросаДинамическогоСписка()
ЗапросТекст = "ВЫБРАТЬ
| МИНИМУМ(Т.Период) КАК Период,
| Т.СкидкаНаценка КАК СкидкаНаценка
|ПОМЕСТИТЬ Таблица
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(&ТекущаяДата, Источник = &СкладПоУмолчанию) КАК Срез
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок КАК Т
| ПО (Т.СкидкаНаценка = Срез.СкидкаНаценка)
| И (Т.Период > Срез.Период)
| И (Т.Источник = &СкладПоУмолчанию)
| И (Т.Статус <> Срез.Статус)
|
|СГРУППИРОВАТЬ ПО
| Т.СкидкаНаценка
|;
|ВЫБРАТЬ &КартыЛояльностиТаблица;
|ВЫБРАТЬ &ТиповыеСоглашенияТаблица;
|ВЫБРАТЬ &ИндивидуальныеСоглашенияТаблица;
|
|
|ВЫБРАТЬ
| Т.СкидкаНаценка КАК СкидкаНаценка,
| КОЛИЧЕСТВО(Т.Источник) КАК Количество
|ПОМЕСТИТЬ ИспользованиеНаСкладах
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| Источник ССЫЛКА Справочник.Склады
| И Источник <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Т
|ГДЕ
| Т.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.Действует)
|
|СГРУППИРОВАТЬ ПО
| Т.СкидкаНаценка
|;
|
|
|ВЫБРАТЬ
| СправочникСкидкиНаценки.Наименование КАК Наименование,
| СправочникСкидкиНаценки.ЭтоГруппа КАК ЭтоГруппа,
| ВЫБОР
| КОГДА СправочникСкидкиНаценки.ЭтоГруппа
| ТОГДА ВЫБОР
| КОГДА СправочникСкидкиНаценки.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Максимум)
| ТОГДА 8
| КОГДА СправочникСкидкиНаценки.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Минимум)
| ТОГДА 16
| КОГДА СправочникСкидкиНаценки.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Сложение)
| ТОГДА 0
| КОГДА СправочникСкидкиНаценки.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Умножение)
| ТОГДА 4
| КОГДА СправочникСкидкиНаценки.ВариантСовместногоПрименения = ЗНАЧЕНИЕ(Перечисление.ВариантыСовместногоПримененияСкидокНаценок.Вытеснение)
| ТОГДА 12
| КОНЕЦ + ВЫБОР
| КОГДА СправочникСкидкиНаценки.ПометкаУдаления
| ТОГДА 3
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.Процент)
| ТОГДА ВЫБОР
| КОГДА СправочникСкидкиНаценки.ЗначениеСкидкиНаценки < 0
| ТОГДА 32
| ИНАЧЕ 28
| КОНЕЦ
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.Подарок)
| ИЛИ СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.Количество)
| ТОГДА 36
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.Сумма)
| ТОГДА ВЫБОР
| КОГДА СправочникСкидкиНаценки.ЗначениеСкидкиНаценки < 0
| ТОГДА 40
| ИНАЧЕ 44
| КОНЕЦ
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.ОкруглениеСуммы)
| ТОГДА ВЫБОР
| КОГДА СправочникСкидкиНаценки.ЗначениеСкидкиНаценки < 0
| ТОГДА 40
| ИНАЧЕ 44
| КОНЕЦ
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.СуммаДляКаждойСтроки)
| ТОГДА ВЫБОР
| КОГДА СправочникСкидкиНаценки.ЗначениеСкидкиНаценки < 0
| ТОГДА 40
| ИНАЧЕ 44
| КОНЕЦ
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.ВидЦены)
| ТОГДА 48
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.Сообщение)
| ТОГДА 52
| КОГДА СправочникСкидкиНаценки.СпособПредоставления = ЗНАЧЕНИЕ(Перечисление.СпособыПредоставленияСкидокНаценок.КартаЛояльности)
| ТОГДА 52
| КОГДА СправочникСкидкиНаценки.СпособПредоставления ССЫЛКА Справочник.ДополнительныеОтчетыИОбработки
| ТОГДА 56
| КОНЕЦ + ВЫБОР
| КОГДА СправочникСкидкиНаценки.ПометкаУдаления
| ТОГДА 3
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК Картинка,
| СправочникСкидкиНаценки.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
| СправочникСкидкиНаценки.Управляемая КАК Управляемая,
| СправочникСкидкиНаценки.ПометкаУдаления КАК ПометкаУдаления,
| СправочникСкидкиНаценки.Ссылка КАК Ссылка,
| СправочникСкидкиНаценки.Родитель КАК Родитель,
| ВЫБОР
| КОГДА ЕСТЬNULL(ИспользованиеНаСкладах.Количество, 0) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ДействуетНаСкладах,
| ЕСТЬNULL(ИспользованиеНаСкладах.Количество, 0) КАК КоличествоСкладов,
| &КартыЛояльностиПоля,
| &ТиповыеСоглашенияПоля,
| &ИндивидуальныеСоглашенияПоля,
| ВЫБОР
| КОГДА СправочникСкидкиНаценки.ЭтоГруппа
| ТОГДА NULL
| ИНАЧЕ ЕСТЬNULL(ДействиеСкидокНаценокСрезПоследних.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.НеДействует))
| КОНЕЦ КАК Статус,
| ЕСТЬNULL(ДействиеСкидокНаценокСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачала,
| ВЫБОР
| КОГДА ДействиеСкидокНаценокСрезПоследних.Период ЕСТЬ NULL
| ТОГДА ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ДействиеСкидокНаценокСрезПервых.Период, ДЕНЬ, -1), ДАТАВРЕМЯ(1, 1, 1))
| ИНАЧЕ ЕСТЬNULL(ДОБАВИТЬКДАТЕ(Таблица.Период, ДЕНЬ, -1), ДАТАВРЕМЯ(1, 1, 1))
| КОНЕЦ КАК ДатаОкончания
|ИЗ
| Справочник.СкидкиНаценки КАК СправочникСкидкиНаценки
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(&ТекущаяДата, Источник = &СкладПоУмолчанию) КАК ДействиеСкидокНаценокСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Таблица
| ПО (Таблица.СкидкаНаценка = ДействиеСкидокНаценокСрезПоследних.СкидкаНаценка)
| ПО (ДействиеСкидокНаценокСрезПоследних.СкидкаНаценка = СправочникСкидкиНаценки.Ссылка)}
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок.СрезПервых(&ТекущаяДата, Источник = &СкладПоУмолчанию) КАК ДействиеСкидокНаценокСрезПервых
| ПО (ДействиеСкидокНаценокСрезПервых.СкидкаНаценка = СправочникСкидкиНаценки.Ссылка)}
| {ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеНаСкладах КАК ИспользованиеНаСкладах
| ПО (ИспользованиеНаСкладах.СкидкаНаценка = СправочникСкидкиНаценки.Ссылка)}
| ,&КартыЛояльностиСоединение
| ,&ТиповыеСоглашенияСоединение
| ,&ИндивидуальныеСоглашенияСоединение";
ДобавитьВЗапросТекстИнформациюПоКартамЛояльности(ЗапросТекст);
ДобавитьВЗапросТекстИнформациюПоТиповымСоглашениям(ЗапросТекст);
ДобавитьВЗапросТекстИнформациюПоИндивидуальнымСоглашениям(ЗапросТекст);
Возврат ЗапросТекст;
КонецФункции
&НаСервере
Процедура ДобавитьВЗапросТекстИнформациюПоИндивидуальнымСоглашениям(ЗапросТекст)
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
ИндивидуальныеСоглашенияТаблица = "
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Т.СкидкаНаценка КАК СкидкаНаценка,
| КОЛИЧЕСТВО(Т.Источник) КАК Количество
|ПОМЕСТИТЬ ИспользованиеВИндивидуальныхСоглашениях
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| Источник ССЫЛКА Справочник.СоглашенияСКлиентами
| И ВЫРАЗИТЬ(Источник КАК Справочник.СоглашенияСКлиентами).Типовое = ЛОЖЬ) КАК Т
|ГДЕ
| Т.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.Действует)
|
|СГРУППИРОВАТЬ ПО
| Т.СкидкаНаценка
|;
|";
ИндивидуальныеСоглашенияПоля = "
| ВЫБОР
| КОГДА ЕСТЬNULL(ИспользованиеВИндивидуальныхСоглашениях.Количество, 0) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ДействуетВИндивидуальныхСоглашениях,
| ЕСТЬNULL(ИспользованиеВИндивидуальныхСоглашениях.Количество, 0) КАК КоличествоИндивидуальныхСоглашений,";
ИндивидуальныеСоглашенияСоединение = "
| {ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеВИндивидуальныхСоглашениях КАК ИспользованиеВИндивидуальныхСоглашениях
| ПО (ИспользованиеВИндивидуальныхСоглашениях.СкидкаНаценка = СправочникСкидкиНаценки.Ссылка)}";
Иначе
ИндивидуальныеСоглашенияТаблица = "";
ИндивидуальныеСоглашенияСоединение = "";
ИндивидуальныеСоглашенияПоля = "
| Ложь КАК ДействуетВИндивидуальныхСоглашениях,
| 0 КАК КоличествоИндивидуальныхСоглашений,
|";
КонецЕсли;
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&ИндивидуальныеСоглашенияПоля,", ИндивидуальныеСоглашенияПоля);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ВЫБРАТЬ &ИндивидуальныеСоглашенияТаблица;", ИндивидуальныеСоглашенияТаблица);
ЗапросТекст = СтрЗаменить(ЗапросТекст, ",&ИндивидуальныеСоглашенияСоединение", ИндивидуальныеСоглашенияСоединение);
КонецПроцедуры
&НаСервере
Процедура ДобавитьВЗапросТекстИнформациюПоТиповымСоглашениям(ЗапросТекст)
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
ТиповыеСоглашенияТаблица = "
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Т.СкидкаНаценка КАК СкидкаНаценка,
| КОЛИЧЕСТВО(Т.Источник) КАК Количество
|ПОМЕСТИТЬ ИспользованиеВТиповыхСоглашениях
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| Источник ССЫЛКА Справочник.СоглашенияСКлиентами
| И ВЫРАЗИТЬ(Источник КАК Справочник.СоглашенияСКлиентами).Типовое) КАК Т
|ГДЕ
| Т.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.Действует)
|
|СГРУППИРОВАТЬ ПО
| Т.СкидкаНаценка
|;
|";
ТиповыеСоглашенияПоля = "
| ВЫБОР
| КОГДА ЕСТЬNULL(ИспользованиеВТиповыхСоглашениях.Количество, 0) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ДействуетВТиповыхСоглашениях,
| ЕСТЬNULL(ИспользованиеВТиповыхСоглашениях.Количество, 0) КАК КоличествоТиповыхСоглашений,";
ТиповыеСоглашенияСоединение = "
| {ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеВТиповыхСоглашениях КАК ИспользованиеВТиповыхСоглашениях
| ПО (ИспользованиеВТиповыхСоглашениях.СкидкаНаценка = СправочникСкидкиНаценки.Ссылка)}";
Иначе
ТиповыеСоглашенияТаблица = "";
ТиповыеСоглашенияСоединение = "";
ТиповыеСоглашенияПоля = "
| Ложь КАК ДействуетВТиповыхСоглашениях,
| 0 КАК КоличествоТиповыхСоглашений,
|";
КонецЕсли;
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&ТиповыеСоглашенияПоля,", ТиповыеСоглашенияПоля);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ВЫБРАТЬ &ТиповыеСоглашенияТаблица;", ТиповыеСоглашенияТаблица);
ЗапросТекст = СтрЗаменить(ЗапросТекст, ",&ТиповыеСоглашенияСоединение", ТиповыеСоглашенияСоединение);
КонецПроцедуры
&НаСервере
Процедура ДобавитьВЗапросТекстИнформациюПоКартамЛояльности(ЗапросТекст)
Если ИспользоватьКартыЛояльности Тогда
КартыЛояльностиТаблица = "
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Т.СкидкаНаценка КАК СкидкаНаценка,
| КОЛИЧЕСТВО(Т.Источник) КАК Количество
|ПОМЕСТИТЬ ИспользованиеВВидахКартЛояльности
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(&ТекущаяДата, Источник ССЫЛКА Справочник.ВидыКартЛояльности) КАК Т
|ГДЕ
| Т.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.Действует)
|
|СГРУППИРОВАТЬ ПО
| Т.СкидкаНаценка
|;";
КартыЛояльностиПоля = "
| ВЫБОР
| КОГДА ЕСТЬNULL(ИспользованиеВВидахКартЛояльности.Количество, 0) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ДействуетВКартахЛояльности,
| ЕСТЬNULL(ИспользованиеВВидахКартЛояльности.Количество, 0) КАК КоличествоВидовКартЛояльности,";
КартыЛояльностиСоединение = "
| {ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеВВидахКартЛояльности КАК ИспользованиеВВидахКартЛояльности
| ПО (ИспользованиеВВидахКартЛояльности.СкидкаНаценка = СправочникСкидкиНаценки.Ссылка)}";
Иначе
КартыЛояльностиТаблица = "";
КартыЛояльностиСоединение = "";
КартыЛояльностиПоля = "
| Ложь КАК ДействуетВКартахЛояльности,
| 0 КАК КоличествоВидовКартЛояльности,
|";
КонецЕсли;
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&КартыЛояльностиПоля,", КартыЛояльностиПоля);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ВЫБРАТЬ &КартыЛояльностиТаблица;", КартыЛояльностиТаблица);
ЗапросТекст = СтрЗаменить(ЗапросТекст, ",&КартыЛояльностиСоединение", КартыЛояльностиСоединение);
КонецПроцедуры
&НаСервере
Функция ТекстЗапросаДинамическогоСпискаИндивидуальныеСоглашения()
ТекстЗапроса =
"ВЫБРАТЬ
| МИНИМУМ(Т.Период) КАК Период,
| Т.Источник КАК Источник
|ПОМЕСТИТЬ Таблица
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| СкидкаНаценка = &СкидкаНаценка
| И Источник ССЫЛКА Справочник.СоглашенияСКлиентами) КАК Срез
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок КАК Т
| ПО Срез.Источник = Т.Источник
| И (Т.СкидкаНаценка = &СкидкаНаценка)
| И (Т.Период > Срез.Период)
| И (Т.Статус <> Срез.Статус)
|
|СГРУППИРОВАТЬ ПО
| Т.Источник
|;
|
|
|ВЫБРАТЬ
| СоглашенияСКлиентами.Ссылка КАК Соглашение,
| СоглашенияСКлиентами.Статус КАК СтатусСоглашения,
| СоглашенияСКлиентами.Партнер КАК Партнер,
| ЕСТЬNULL(ДействиеСкидокНаценокСрезПоследних.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.НеДействует)) КАК Статус,
| ВЫБОР
| КОГДА ДействиеСкидокНаценокСрезПоследних.Статус ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Использование,
| ЕСТЬNULL(ДействиеСкидокНаценокСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачала,
| ВЫБОР
| КОГДА ДействиеСкидокНаценокСрезПоследних.Период ЕСТЬ NULL
| ТОГДА ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ДействиеСкидокНаценокСрезПервых.Период, ДЕНЬ, -1), ДАТАВРЕМЯ(1, 1, 1))
| ИНАЧЕ ЕСТЬNULL(ДОБАВИТЬКДАТЕ(Таблица.Период, ДЕНЬ, -1), ДАТАВРЕМЯ(1, 1, 1))
| КОНЕЦ КАК ДатаОкончания
|ИЗ
| Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| СкидкаНаценка = &СкидкаНаценка
| И Источник ССЫЛКА Справочник.СоглашенияСКлиентами) КАК ДействиеСкидокНаценокСрезПоследних
| ПО (ДействиеСкидокНаценокСрезПоследних.Источник = СоглашенияСКлиентами.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Таблица
| ПО (Таблица.Источник = СоглашенияСКлиентами.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок.СрезПервых(
| &ТекущаяДата,
| СкидкаНаценка = &СкидкаНаценка
| И Источник ССЫЛКА Справочник.СоглашенияСКлиентами) КАК ДействиеСкидокНаценокСрезПервых
| ПО (ДействиеСкидокНаценокСрезПервых.Источник = СоглашенияСКлиентами.Ссылка)
|ГДЕ
| НЕ СоглашенияСКлиентами.Типовое";
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция ТекстЗапросаДинамическогоСпискаТиповыеСоглашения()
ТекстЗапроса =
"ВЫБРАТЬ
| МИНИМУМ(Т.Период) КАК Период,
| Т.Источник КАК Источник
|ПОМЕСТИТЬ Таблица
|ИЗ
| РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| СкидкаНаценка = &СкидкаНаценка
| И Источник ССЫЛКА Справочник.СоглашенияСКлиентами) КАК Срез
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок КАК Т
| ПО Срез.Источник = Т.Источник
| И (Т.СкидкаНаценка = &СкидкаНаценка)
| И (Т.Период > Срез.Период)
| И (Т.Статус <> Срез.Статус)
|
|СГРУППИРОВАТЬ ПО
| Т.Источник
|;
|
|
|ВЫБРАТЬ
| СоглашенияСКлиентами.Ссылка КАК Соглашение,
| СоглашенияСКлиентами.Ссылка.Статус КАК СтатусСоглашения,
| ЕСТЬNULL(ДействиеСкидокНаценокСрезПоследних.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыДействияСкидок.НеДействует)) КАК Статус,
| ВЫБОР
| КОГДА ДействиеСкидокНаценокСрезПоследних.Статус ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Использование,
| ЕСТЬNULL(ДействиеСкидокНаценокСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачала,
| ВЫБОР
| КОГДА ДействиеСкидокНаценокСрезПоследних.Период ЕСТЬ NULL
| ТОГДА ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ДействиеСкидокНаценокСрезПервых.Период, ДЕНЬ, -1), ДАТАВРЕМЯ(1, 1, 1))
| ИНАЧЕ ЕСТЬNULL(ДОБАВИТЬКДАТЕ(Таблица.Период, ДЕНЬ, -1), ДАТАВРЕМЯ(1, 1, 1))
| КОНЕЦ КАК ДатаОкончания
|ИЗ
| Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок.СрезПоследних(
| &ТекущаяДата,
| СкидкаНаценка = &СкидкаНаценка
| И Источник ССЫЛКА Справочник.СоглашенияСКлиентами) КАК ДействиеСкидокНаценокСрезПоследних
| ПО (ДействиеСкидокНаценокСрезПоследних.Источник = СоглашенияСКлиентами.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Таблица
| ПО (Таблица.Источник = СоглашенияСКлиентами.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействиеСкидокНаценок.СрезПервых(
| &ТекущаяДата,
| СкидкаНаценка = &СкидкаНаценка
| И Источник ССЫЛКА Справочник.СоглашенияСКлиентами) КАК ДействиеСкидокНаценокСрезПервых
| ПО (ДействиеСкидокНаценокСрезПервых.Источник = СоглашенияСКлиентами.Ссылка)
|ГДЕ
| СоглашенияСКлиентами.Типовое";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область ПереопределениеДинамическихСписков
&НаСервере
Процедура ПереопределитьСвойстваДинамическихСписков()
ПереопределитьСвойстваОсновногоСписка();
ПереопределитьСвойстваСпискаИспользованиеВТиповыхСоглашенияхСКлиентами();
ПереопределитьСвойстваСпискаИспользованиеВИндивидуальныхСоглашенияхСКлиентами();
КонецПроцедуры
&НаСервере
Процедура ПереопределитьСвойстваОсновногоСписка()
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
СвойстваСписка.ТекстЗапроса = ТекстЗапросаДинамическогоСписка();
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
КонецПроцедуры
&НаСервере
Процедура ПереопределитьСвойстваСпискаИспользованиеВТиповыхСоглашенияхСКлиентами()
Если ИспользоватьТиповыеСоглашенияСКлиентами Тогда
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
СвойстваСписка.ТекстЗапроса = ТекстЗапросаДинамическогоСпискаТиповыеСоглашения();
СвойстваСписка.ОсновнаяТаблица = "Справочник.СоглашенияСКлиентами";
СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.ИспользованиеВТиповыхСоглашенияхСКлиентами, СвойстваСписка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПереопределитьСвойстваСпискаИспользованиеВИндивидуальныхСоглашенияхСКлиентами()
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
СвойстваСписка.ТекстЗапроса = ТекстЗапросаДинамическогоСпискаИндивидуальныеСоглашения();
СвойстваСписка.ОсновнаяТаблица = "Справочник.СоглашенияСКлиентами";
СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.ИспользованиеВИндивидуальныхСоглашенияхСКлиентами, СвойстваСписка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти