Подарочные сертификаты / Форма списка / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	УстановитьУсловноеОформление();
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	ТекущаяДата = ТекущаяДатаСеанса();
	
	Если Параметры.Отбор.Свойство("УчетПодарочныхСертификатов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  Тогда
			ЭлементыОтбораНастройки.Удалить(ЭлементОтбора.Значение);
		КонецЕсли;	
	КонецЦикла;
	ОтборыУстановленныеКомандами.Очистить();
	
КонецПроцедуры

#Область Прочее

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры

// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

#КонецОбласти

#КонецОбласти

Связанные материалы