Возврат ОС из аренды / Форма документа / Модуль формы

файл

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

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

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

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

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода");
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами

	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

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

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
	
КонецПроцедуры

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

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

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

	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
	ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
	ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
	ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
	ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
	ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
	ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

#Область СтраницаОсновное

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

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

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

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

	НастроитьЗависимыеЭлементыФормы(Элемент);

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

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

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

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

&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент);
	
КонецПроцедуры

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

#Область СтраницаУчетУАрендодателя

&НаКлиенте
Процедура АдресМестонахожденияПриИзменении(Элемент)
	
	ПриИзмененииПредставленияАдреса(Элемент);
	
КонецПроцедуры

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

&НаКлиенте
Процедура АдресМестонахожденияОчистка(Элемент, СтандартнаяОбработка)
	
	ПриИзмененииПредставленияАдреса(Элемент);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура СтатьяРасходовБУПриИзменении(Элемент)
	
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);

	Если ЗначениеЗаполнено(Объект.СпособОтраженияРасходовБУ) Тогда
		Объект.СпособОтраженияРасходовБУ = ПредопределенноеЗначение("Справочник.СпособыОтраженияРасходов.ПустаяСсылка");
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовБУ,СтатьяРасходовБУ");
	
КонецПроцедуры

&НаКлиенте
Процедура СтатьяРасходовБУНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура АналитикаРасходовБУПриИзменении(Элемент)

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

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

&НаКлиенте
Процедура АналитикаРасходовБУНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура АналитикаРасходовБУАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура АналитикаРасходовБУОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовБУ,НаправлениеДеятельностиБУ");

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовБУ,ПодразделениеИНаправлениеДеятельностиСовпадаютСДаннымиУчетаБУ");
	
КонецПроцедуры

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовУУ,СтатьяРасходовУУ");
	
КонецПроцедуры

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

&НаКлиенте
Процедура АналитикаРасходовУУНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

&НаКлиенте
Процедура АналитикаРасходовУУОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовУУ,НаправлениеДеятельностиУУ");

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовУУ,ПодразделениеИНаправлениеДеятельностиСовпадаютСДаннымиУчетаУУ");
	
КонецПроцедуры

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

#Область СтандартныеПодсистемы

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

	РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

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

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

&НаКлиенте
Процедура ОСОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	Если ВнеоборотныеАктивыКлиентСервер.ОбработкаВыбораЭлемента(Объект.ОС, "ОсновноеСредство", ВыбранноеЗначение).Количество() <> 0 Тогда
		ПриИзмененииОСНаСервере();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОСОсновноеСредствоПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.ОС.ТекущиеДанные;
	ПриИзмененииОСНаСервере(ТекущиеДанные.ОсновноеСредство);

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

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

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

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

&НаКлиенте
Процедура ОСАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура ОСАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

#Область ШтрихкодыИТорговоеОборудование

&НаКлиенте
Процедура ЗагрузитьДанныеИзТСД(Команда)
	
	ВыполнитьЗагрузкуДанныеИзТСД();
	
КонецПроцедуры

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

#Область УниверсальныеМеханизмы_Команды

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

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

// ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

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

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

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

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

	РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

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

#Область ПриИзмененииРеквизитов

&НаКлиенте
Процедура ПриИзмененииПредставленияАдреса(Элемент)

	ВнеоборотныеАктивыКлиент.ПриИзмененииПредставленияАдреса(
		Элемент,
		Объект.АдресМестонахождения,
		Объект.АдресМестонахожденияЗначение);

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

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

#Область ШтрихкодыИТорговоеОборудование

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

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

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

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

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

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

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

&НаСервере
Процедура ПриИзмененииОСНаСервере(ОсновноеСредство = Неопределено)
	
	ЗаполнитьШапкуПоВыбраннымОС();
	
КонецПроцедуры

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

	ВнеоборотныеАктивыСлужебный.ЗаполнитьШапкуПоВыбраннымОС("Организация,Подразделение", Объект.ОС, Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(Знач ИзмененныеРеквизитыИлиЭлемент = "")

	Если ТипЗнч(ИзмененныеРеквизитыИлиЭлемент) = Тип("Строка") Тогда
		ИзмененныеРеквизиты = ИзмененныеРеквизитыИлиЭлемент;
	Иначе
		ИзмененныеРеквизиты = ИзмененныеРеквизитыИлиЭлемент.Имя;
	КонецЕсли;

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

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

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

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

	#КонецОбласти
	
КонецПроцедуры

&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныеРеквизиты = "")

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

&НаКлиенте
Функция ТребуетсяВызовСервераДляНастройкиЭлементовФормы(СтруктураИзмененныхРеквизитов)

	Возврат СтруктураИзмененныхРеквизитов.Количество() = 0
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Дата")
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Договор")
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация");

КонецФункции

&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииРеквизитов(Форма, СтруктураИзмененныхРеквизитов)
	
	Объект = Форма.Объект;

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

&НаСервере
Процедура ИнициализироватьСлужебныеПараметрыФормы()

	НовыеСлужебныеПараметрыФормы = Новый Структура;
	НовыеСлужебныеПараметрыФормы.Вставить("ИспользуетсяУчетАрендыПоФСБУ25_2018", Ложь);
	НовыеСлужебныеПараметрыФормы.Вставить("ВозвратИзФинаренды", Ложь);
	НовыеСлужебныеПараметрыФормы.Вставить("Субаренда", Ложь);
	
	СлужебныеПараметрыФормы = Новый ФиксированнаяСтруктура(НовыеСлужебныеПараметрыФормы);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не используется>'"));
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста);
	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
	
	#КонецОбласти
	
КонецПроцедуры

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

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

	Элементы.ОССтатьяРасходов.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораСтатьи);
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьАрендованнымиНаСервере()

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

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

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

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

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

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