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

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

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Экспорт
	
	ИнициализироватьДокумент(ДанныеЗаполнения);
	
	ВзаиморасчетыСервер.ОбработкаЗаполнения(ЭтотОбъект, ДанныеЗаполнения);
	
КонецПроцедуры

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	ПодарочныеСертификатыСервер.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

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

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

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

Функция ВыборкаПодарочныхСертификатов_2_5()
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ПодарочныеСертификаты.НомерСтроки КАК НомерСтроки,
	|	ВЫРАЗИТЬ(ПодарочныеСертификаты.ПодарочныйСертификат КАК Справочник.ПодарочныеСертификаты) КАК ПодарочныйСертификат,
	|	ПодарочныеСертификаты.СуммаВВалютеСертификата КАК СуммаОстаток
	|ПОМЕСТИТЬ ТаблицаПодарочныеСертификаты
	|ИЗ
	|	&ПодарочныеСертификаты КАК ПодарочныеСертификаты
	|ГДЕ
	|	ПодарочныеСертификаты.СуммаВВалютеСертификата <> 0
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПодарочныеСертификаты.НомерСтроки КАК НомерСтроки,
	|	ПодарочныеСертификаты.ПодарочныйСертификат КАК ПодарочныйСертификат,
	|	ЕСТЬNULL(ОбъектыРасчетов.Ссылка, ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)) КАК ОбъектРасчетов,
	|	ПодарочныеСертификаты.СуммаОстаток КАК СуммаОстаток
	|ИЗ
	|	ТаблицаПодарочныеСертификаты КАК ПодарочныеСертификаты
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыРасчетов КАК ОбъектыРасчетов
	|		ПО ПодарочныеСертификаты.ПодарочныйСертификат = ОбъектыРасчетов.Объект
	|			И НЕ ОбъектыРасчетов.ПометкаУдаления
	|ГДЕ
	|	ПодарочныеСертификаты.ПодарочныйСертификат.Владелец.УчетПодарочныхСертификатов2_5";
	Запрос.УстановитьПараметр("ПодарочныеСертификаты", ПодарочныеСертификаты.Выгрузить());
	
	Возврат Запрос.Выполнить().Выбрать();
	
КонецФункции

#Область ИнициализацияИЗаполнение

Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено) Экспорт
	
	Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
	Менеджер    = Пользователи.ТекущийПользователь();
	Валюта      = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
	Автор       = Пользователи.ТекущийПользователь();
	
КонецПроцедуры

Процедура ЗаполнитьОбъектРасчетов(ВыборкаПодарочныхСертификатов_2_5)
	
	ВыборкаПодарочныхСертификатов_2_5.Сбросить();
	
	Пока ВыборкаПодарочныхСертификатов_2_5.Следующий() Цикл
		Индекс = ВыборкаПодарочныхСертификатов_2_5.НомерСтроки - 1;
		ПодарочныеСертификаты[Индекс].ОбъектРасчетов = ВыборкаПодарочныхСертификатов_2_5.ОбъектРасчетов;
	КонецЦикла;
	
КонецПроцедуры

Функция СуммыПоПодарочнымСертификатам_2_5(ВыборкаПодарочныхСертификатов_2_5)
	
	СуммыПоПодарочнымСертификатам_2_5 = 0;
	ВыборкаПодарочныхСертификатов_2_5.Сбросить();
	Пока ВыборкаПодарочныхСертификатов_2_5.Следующий() Цикл
		СуммыПоПодарочнымСертификатам_2_5 = СуммыПоПодарочнымСертификатам_2_5 + ВыборкаПодарочныхСертификатов_2_5.СуммаОстаток;
	КонецЦикла;
	
	Возврат СуммыПоПодарочнымСертификатам_2_5;
	
КонецФункции

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

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

#КонецЕсли

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