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