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