Ввод остатков внеоборотных активов / Расчеты по договорам аренды / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
	
	ИнициализацияПриСозданииНаСервере();

	Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
		
		ПриЧтенииСозданииНаСервере();
		
	КонецЕсли;
	
	#Область СтандартныеПодсистемы
	
	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
	
	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец ИнтеграцияС1СДокументооборотом
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);

	// СтандартныеПодсистемы.РаботаСФайлами
	ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
	ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
	РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
	// Конец СтандартныеПодсистемы.РаботаСФайлами
	#КонецОбласти
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Если СообщитьЧтоФормаУстарела Тогда
		ПодключитьОбработчикОжидания("Подключаемый_СообщитьЧтоФормаУстарела", 0.3, Истина);
	КонецЕсли;
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

	СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	
	СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
	
КонецПроцедуры

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	ОбновитьЗаголовокФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
	
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
	// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
	
	ПартнерПриИзмененииНаСервере();
	
	Если ПартнерДоИзменения <> Объект.Партнер
		Или КонтрагентДоИзменения <> Объект.Контрагент Тогда
		Если Объект.РасчетыПоДоговорамАренды.Количество() <> 0 Тогда
			ТекстВопроса = НСтр("ru = 'При изменении партнера/контрагента будут удалены расчеты. Продолжить?'");
			ОписаниеОповещения = Новый ОписаниеОповещения("КонтрагентПриИзмененииЗавершение", ЭтотОбъект);
			ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
		Иначе
			КонтрагентПриИзмененииЗавершение(КодВозвратаДиалога.Да, Неопределено);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПартнерПриИзмененииНаСервере()
	
	ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
	
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	
	Если КонтрагентДоИзменения = Объект.Контрагент Тогда
		Возврат;
	КонецЕсли;
	
	Если Объект.РасчетыПоДоговорамАренды.Количество() <> 0 Тогда
		ТекстВопроса = НСтр("ru = 'При изменении контрагента будут удалены расчеты. Продолжить?'");
		ОписаниеОповещения = Новый ОписаниеОповещения("КонтрагентПриИзмененииЗавершение", ЭтотОбъект);
		ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
	Иначе
		КонтрагентПриИзмененииЗавершение(КодВозвратаДиалога.Да, Неопределено);
	КонецЕсли; 
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВОперативномУчетеПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВБУиНУПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВУУПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры

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

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыРасчетыПоДоговорамАренды

&НаКлиенте
Процедура РасчетыПоДоговорамАрендыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	РедактироватьСведенияВСтроке();
	
КонецПроцедуры

&НаКлиенте
Процедура РасчетыПоДоговорамАрендыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	Отказ = Истина;
	РедактироватьСведенияВСтроке(Истина, Копирование);
	
КонецПроцедуры

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

&НаКлиенте
Процедура РасчетыПоДоговорамАрендыПослеУдаления(Элемент)
	
	УдалитьДанныеИзСвязанныхТаблиц();

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

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

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура РедактироватьСведения(Команда)
	
	РедактироватьСведенияВСтроке();
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура Подключаемый_ПриВыполненииКоманды(Команда)

	ВводОстатковВнеоборотныхАктивовКлиентЛокализация.ФормаРасчетыПоДоговорамАренды_ПриВыполненииКоманды(Команда, ЭтаФорма);

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

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
	 РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

#Область ПодключаемыеКоманды

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)

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

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
	
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

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

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

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

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()

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

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

&НаСервере
Процедура ПриИзмененииРеквизитов(ИзмененныеРеквизиты)

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

&НаСервере
Процедура ЗаполнитьРеквизитыВзависимостиОтСвойств(СписокСтрок)

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

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

&НаСервере
Процедура ОбновитьЗаголовокФормы()
	
	Заголовок = ВнеоборотныеАктивыВызовСервера.ПредставлениеВводаОстатков(Объект);

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

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

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

&НаСервере
Процедура ПриВыполненииКомандыЗавершениеНаСервере(Знач ИмяКоманды, Знач ДополнительныеПараметры)
	
	ВводОстатковВнеоборотныхАктивовЛокализация.ФормаРасчетыПоДоговорамАренды_ПриВыполненииКоманды(ИмяКоманды, ЭтотОбъект);
	
КонецПроцедуры

&НаСервере
Процедура ИнициализацияПриСозданииНаСервере()

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

	РедактируемыеРеквизиты = СтрСоединить(СписокРеквизитов, ",");
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура РедактироватьСведенияВСтрокеЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт

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

&НаСервере
Процедура РедактироватьСведенияВСтрокеНаСервере(Знач РезультатЗакрытия, Знач ДополнительныеПараметры)

	Модифицированность = Истина;

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

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

&НаСервере
Процедура УдалитьНеиспользуемыеСтроки(ТаблицаДокумента, ИспользуемыеКодыСтрок)
	
	СтрокиКУдалению = Новый Массив;
	Для Каждого ДанныеСтроки Из ТаблицаДокумента Цикл
		Если ИспользуемыеКодыСтрок.Получить(ДанныеСтроки.КодСтроки) = Неопределено Тогда
			СтрокиКУдалению.Добавить(ДанныеСтроки);
		КонецЕсли;
	КонецЦикла;
	Для Каждого ДанныеСтроки Из СтрокиКУдалению Цикл
		ТаблицаДокумента.Удалить(ДанныеСтроки);
	КонецЦикла;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура СообщитьЧтоФормаУстарелаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса = "ОтключитьСообщениеЧтоФормаУстарела" Тогда
		ОтключитьСообщениеЧтоФормаУстарела();
	КонецЕсли;
	
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ОтключитьСообщениеЧтоФормаУстарела()
	
	ХранилищеНастроекДанныхФорм.Сохранить(
		"Документ.ВводОстатковВнеоборотныхАктивов2_4.Форма.РасчетыПоДоговорамАренды", 
		"ДатаОтключенияСообщенияЧтоФормаУстарела",
		ТекущаяДатаСеанса());
	
КонецПроцедуры

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

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