Начисления по кредитам и депозитам / Модуль объекта

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

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

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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	*
	|ПОМЕСТИТЬ ТаблицаДокумента
	|ИЗ
	|	&ТаблицаДокумента КАК ТаблицаДокумента
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|	
	|ВЫБРАТЬ
	|	ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
	|	Представление(ДанныеДоговора.Ссылка) КАК Договор,
	|	ТаблицаДокумента.Дата КАК ДатаНачисления,
	|	НЕ (ТаблицаДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания) КАК ДатаНеВПериоде,
	|	ДанныеДоговора.Организация <> &Организация КАК НеСовпадаютОрганизации
	|ИЗ
	|	ТаблицаДокумента КАК ТаблицаДокумента
	|	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКредитовИДепозитов КАК ДанныеДоговора
	|	ПО ТаблицаДокумента.Договор = ДанныеДоговора.Ссылка
	|ГДЕ
	|	НЕ (ТаблицаДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания)
	|	ИЛИ ДанныеДоговора.Организация <> &Организация
	|УПОРЯДОЧИТЬ ПО
	|	ТаблицаДокумента.НомерСтроки
	|;
	|");
	
	Запрос.УстановитьПараметр("ТаблицаДокумента", Начисления.Выгрузить());
	Запрос.УстановитьПараметр("Организация", Организация);
	Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
	Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		
		Если Выборка.ДатаНеВПериоде Тогда
			Текст = СтрШаблон(НСтр("ru = 'Дата начисления %1 в строке %2 не входит в заданный период начисления.'"),
				Формат(Выборка.ДатаНачисления, "ДЛФ=D"), Выборка.НомерСтроки);
			ПолеТабЧасти = "Дата";
		ИначеЕсли Выборка.НеСовпадаютОрганизации Тогда
			Текст = СтрШаблон(НСтр("ru = 'Организация договора %1 в строке %2 не совпадает с организацией %3, выбранной в документе.'"),
				Выборка.Договор, Выборка.НомерСтроки, Организация);
			ПолеТабЧасти = "Договор";
		КонецЕсли;
		
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
			Текст,
			ЭтотОбъект,
			ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Начисления", Выборка.НомерСтроки, ПолеТабЧасти),,
			Отказ);
	КонецЦикла;
	
	ПараметрыВыбораСтатейИАналитик = Документы.НачисленияКредитовИДепозитов.ПараметрыВыбораСтатейИАналитик(ХозяйственнаяОперация);
	ДоходыИРасходыСервер.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты, ПараметрыВыбораСтатейИАналитик);
	
	ИсправлениеДокументов.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	
	НачисленияКредитовИДепозитовЛокализация.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
	
	ПериодНачисления = Новый СтандартныйПериод;
	ПериодНачисления.Вариант = ВариантСтандартногоПериода.ЭтотМесяц;
	
	ДатаНачала = ПериодНачисления.ДатаНачала;
	ДатаОкончания = ПериодНачисления.ДатаОкончания;
	
	Если ТипЗнч(ДанныеЗаполнения) <> Тип("Структура")
		Или Не ДанныеЗаполнения.Свойство("Организация")
		Или Не ЗначениеЗаполнено(ДанныеЗаполнения.Организация) Тогда
		Организация = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ТекущаяОрганизация", "");
		Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
	КонецЕсли;
	
	Ответственный = Пользователи.ТекущийПользователь();
	Автор = Пользователи.ТекущийПользователь();
	
КонецПроцедуры

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

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

#КонецЕсли

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