Прекращение договора аренды / Модуль объекта

файл

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

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

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

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

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

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

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

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

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

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

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

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

#Область Заполнение

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

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

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

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

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

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

Процедура ЗаполнитьРеквизитыПередЗаписью(РежимЗаписи)

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

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

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

#КонецЕсли

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