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

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
	
	// подсистема запрета редактирования ключевых реквизитов объектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
		Номер = "";
		Дата = "";
		ПриСозданииЧтенииНаСервере();
	КонецЕсли;
	
	ЗначенияРеквизитовОбъекта = ОбщегоНазначенияУТ.СтруктураСоСвойствамиОбъектаМетаданных(Метаданные.Справочники.ПодарочныеСертификаты);
	ЗначенияРеквизитовОбъекта.Вставить("Статус");
	ЗначенияРеквизитовОбъекта.Вставить("УчетПодарочныхСертификатов2_5");
	
	ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
	ОповеститьОСозданииОбъектаРасчетов = Параметры.ОповеститьОСозданииОбъектаРасчетов;
	Если ОповеститьОСозданииОбъектаРасчетов Тогда 
		ПараметрыВыбораВида = Новый Массив;
		ПараметрыВыбораВида.Добавить(Новый ПараметрВыбора("Отбор.УчетПодарочныхСертификатов2_5", Истина));
		ПараметрыВыбораВида.Добавить(Новый ПараметрВыбора("Отбор.Организация", Объект.Организация));
		Элементы.Владелец.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораВида);
	КонецЕсли;
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);

КонецПроцедуры

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "Запись_ПодарочныеСертификаты"
		ИЛИ ИмяСобытия = "Запись_РеализацияПодарочныхСертификатов"
		ИЛИ ИмяСобытия = "Запись_ВозвратПодарочныхСертификатов"
		ИЛИ ИмяСобытия = "Запись_ПриходныйКассовыйОрдер"
		ИЛИ ИмяСобытия = "Запись_ПоступлениеБезналичныхДенежныхСредств"
		ИЛИ ИмяСобытия = "Запись_РасходныйКассовыйОрдер"
		ИЛИ ИмяСобытия = "Запись_СписаниеБезналичныхДенежныхСредств"
		ИЛИ ИмяСобытия = "Запись_ОперацияПоПлатежнойКарте"
		ИЛИ ИмяСобытия = "Запись_ЧекККМ"
		ИЛИ ИмяСобытия = "Запись_ВзаимозачетЗадолженности" Тогда
			
		ОбновитьТекущееСостояниеУстановитьВидимостьЭлементов();
		// СтандартныеПодсистемы.ПодключаемыеКоманды
		ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
		// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи);

КонецПроцедуры

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

	МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);

КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ПриСозданииЧтенииНаСервере();

	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Оповестить("Запись_ПодарочныеСертификаты", , Объект.Ссылка);
	
	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
		МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
		МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если Не ЗавершениеРаботы 
		И ЗначениеЗаполнено(Объект.Ссылка)
		И ОповеститьОСозданииОбъектаРасчетов Тогда
		ВзаиморасчетыКлиент.ФормаПриЗакрытии(ЭтотОбъект);
	КонецЕсли;
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ВладелецПриИзменении(Элемент)
	
	ВладелецПриИзмененииНаСервере();
	ПриСозданииЧтенииНаСервере();
	
КонецПроцедуры

&НаСервере
Процедура ВладелецПриИзмененииНаСервере()
	
	ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Владелец, "Организация,УчетПодарочныхСертификатов2_5");
	Организация = ЗначенияРеквизитов.Организация;
	УстановитьВидимостьЭлементаФормыОрганизация(ЗначенияРеквизитов.УчетПодарочныхСертификатов2_5);
	
КонецПроцедуры

&НаКлиенте
Процедура МагнитныйКодПриИзменении(Элемент)
	СформироватьСписокВыбораДляНаименования(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ШтрихкодПриИзменении(Элемент)
	СформироватьСписокВыбораДляНаименования(ЭтотОбъект);
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
	
	ОбщегоНазначенияУТКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект);
	
КонецПроцедуры

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

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

#Область СлужебныеПроцедурыИФункции

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

&НаСервере
Процедура ПриСозданииЧтенииНаСервере()
	
	ОбновитьТекущееСостояниеУстановитьВидимостьЭлементов();		
	СформироватьСписокВыбораДляНаименования(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура СформироватьСписокВыбораДляНаименования(Форма)
	
	Реквизиты = ОбщегоНазначенияУТВызовСервера.ЗначенияРеквизитовОбъекта(Форма.Объект.Владелец, "Валюта, Номинал");
	
	СтрокаНаименования = Строка(Форма.Объект.Владелец)
	                     + ?(ЗначениеЗаполнено(Форма.Объект.Штрихкод), " " + Строка(Форма.Объект.Штрихкод), "")
	                     + ?(ЗначениеЗаполнено(Форма.Объект.МагнитныйКод), " " + Строка(Форма.Объект.МагнитныйКод), "");
	
	Форма.Элементы.Наименование.СписокВыбора.Очистить();
	Форма.Элементы.Наименование.СписокВыбора.Добавить(СтрокаНаименования);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементаФормыОрганизация(УчетПодарочныхСертификатов2_5)
	
	Если Не ЗначениеЗаполнено(Объект.Владелец) Тогда
		Возврат;
	КонецЕсли;
		
	Если УчетПодарочныхСертификатов2_5 Тогда
		Элементы.Организация.Видимость = Истина;
	Иначе
		Элементы.Организация.Видимость = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьТекущееСостояниеУстановитьВидимостьЭлементов()
	
	Данные = ПодарочныеСертификатыВызовСервера.ПолучитьДанныеПодарочногоСертификата(Объект.Ссылка, Объект.Владелец);
	
    ДатаНачалаДействия 		= Данные.ДатаНачалаДействия;
    ДатаОкончанияДействия 	= Данные.ДатаОкончанияДействия;
	Организация 			= Данные.Организация;
	Остаток 				= Данные.Остаток;
	УчетПодарочныхСертификатов2_5 = Данные.УчетПодарочныхСертификатов2_5;
	Номер 					= "";
	Если ЗначениеЗаполнено(Данные.ДокументПродажи) Тогда
		УстановитьПривилегированныйРежим(Истина);
		ЗначенияРеквизитовДокументаПродажи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Данные.ДокументПродажи, "Номер,Дата");
		УстановитьПривилегированныйРежим(Ложь);
		Номер = ЗначенияРеквизитовДокументаПродажи.Номер;
	КонецЕсли;
	
	Статус					= Данные.СтатусИзИсторииПодарочныхСертификатов;
	Если ЗначениеЗаполнено(Объект.Владелец) И Данные.УчетПодарочныхСертификатов2_5 Тогда
		ДанныеДляВычисленияСтатуса = ПодарочныеСертификатыКлиентСервер.ДанныеДляВычисленияСтатуса();
		ЗаполнитьЗначенияСвойств(ДанныеДляВычисленияСтатуса, Данные);
		Статус = ПодарочныеСертификатыКлиентСервер.ВычислитьСтатусПодарочногоСертификата2_5(ДанныеДляВычисленияСтатуса);
	КонецЕсли;
	
	Элементы.Штрихкод.Видимость     = (Данные.ТипКарты = Перечисления.ТипыКарт.Штриховая ИЛИ Данные.ТипКарты = Перечисления.ТипыКарт.Смешанная);
	Элементы.МагнитныйКод.Видимость = (Данные.ТипКарты = Перечисления.ТипыКарт.Магнитная ИЛИ Данные.ТипКарты = Перечисления.ТипыКарт.Смешанная);
	УстановитьВидимостьЭлементаФормыОрганизация(Данные.УчетПодарочныхСертификатов2_5);
	
КонецПроцедуры

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

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

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

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

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

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

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