Правила начисления и списания бонусных баллов / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	Объект = ЭтотОбъект;
	
	Если Отказ ИЛИ Объект.ЭтоГруппа Тогда
		Возврат;
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	
	Задание = РегламентныеЗаданияСервер.Задание(Объект.РегламентноеЗадание);
	Если Задание = Неопределено Тогда
		
		ПараметрыЗадания = Новый Структура;
		ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.АвтоматическоеНачислениеИСписаниеБонусныхБаллов);
		ПараметрыЗадания.Вставить("Использование", Ложь);
		ПараметрыЗадания.Вставить("Наименование", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Автоматическое начисление и списание бонусных баллов: %1'"), 
			СокрЛП(Объект.Наименование)));
		Задание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
		Объект.РегламентноеЗадание = РегламентныеЗаданияСервер.УникальныйИдентификатор(Задание);
		
	КонецЕсли;
	
	Объект.ДополнительныеСвойства.Вставить("Задание",Задание);
	УстановитьПривилегированныйРежим(Ложь);

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

Процедура ПередУдалением(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	Объект = ЭтотОбъект;
	
	Если Отказ ИЛИ Объект.ЭтоГруппа Тогда
		Возврат;
	КонецЕсли;
	
	РегламентныеЗаданияСервер.УдалитьЗадание(Объект.РегламентноеЗадание);
	
КонецПроцедуры

Процедура ПриЗаписи(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	Объект = ЭтотОбъект;
	
	Если Отказ ИЛИ Объект.ЭтоГруппа Тогда
		Возврат;
	КонецЕсли;

	Если Объект.ДополнительныеСвойства.Свойство("Задание") Тогда
		Задание = Объект.ДополнительныеСвойства.Задание;
		Если Задание = Неопределено Тогда
			Возврат;
		КонецЕсли;
	Иначе
		Возврат;
	КонецЕсли;
	
	ПараметрыЗадания = Новый Структура;
	
	// Расписание устанавливается в форме элемента
	Если Объект.ДополнительныеСвойства.Свойство("Расписание") 
			И ТипЗнч(Объект.ДополнительныеСвойства.Расписание) = Тип("РасписаниеРегламентногоЗадания") Тогда
		ПараметрыЗадания.Вставить("Расписание", Объект.ДополнительныеСвойства.Расписание);
	КонецЕсли;
	
	// Использование устанавливается в форме элемента
	Если Объект.ПометкаУдаления Тогда
		ПараметрыЗадания.Вставить("Использование", Ложь);
	ИначеЕсли Объект.ДополнительныеСвойства.Свойство("Использование") Тогда
		ПараметрыЗадания.Вставить("Использование", Объект.ДополнительныеСвойства.Использование);
	КонецЕсли;
	
	НаименованиеЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Автоматическое начисление и списание бонусных баллов: %1'"), СокрЛП(Объект.Наименование));
	ПараметрыЗадания.Вставить("Наименование", НаименованиеЗадания);
	
	Параметры = Новый Массив;
	Параметры.Добавить(Объект.Ссылка);
	ПараметрыЗадания.Вставить("Параметры", Параметры);
	
	УстановитьПривилегированныйРежим(Истина);
	РегламентныеЗаданияСервер.ИзменитьЗадание(Объект.РегламентноеЗадание, ПараметрыЗадания);
	
КонецПроцедуры

Процедура ПриКопировании(ОбъектКопирования)
	
	РегламентноеЗадание = Неопределено;
	
КонецПроцедуры

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

#КонецЕсли

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